├── .codesandbox └── ci.json ├── .editorconfig ├── .github └── workflows │ ├── cypress.yml │ └── static-export.yml ├── .gitignore ├── LICENSE ├── README.md ├── cypress.json ├── cypress ├── fixtures │ └── example.json ├── integration │ └── redirect.js ├── plugins │ └── index.js ├── support │ ├── commands.js │ └── index.js └── test-server │ ├── .gitignore │ ├── package-lock.json │ ├── package.json │ └── pages │ ├── client.js │ ├── google-302.js │ ├── google.js │ ├── index.jsx │ └── redirect.js ├── index.html ├── package-lock.json ├── package.json ├── src └── index.tsx ├── tsconfig.json └── typings.d.ts /.codesandbox/ci.json: -------------------------------------------------------------------------------- 1 | { 2 | "sandboxes": ["nextjs-redirect-ci-x2m51"] 3 | } 4 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | -------------------------------------------------------------------------------- /.github/workflows/cypress.yml: -------------------------------------------------------------------------------- 1 | name: Cypress Tests 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | cypress-run: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - name: checkout 10 | uses: actions/checkout@v1 11 | 12 | - name: npm install 13 | uses: bahmutov/npm-install@v1 14 | 15 | - name: Run tests 🧪 16 | run: npm run test:ci 17 | -------------------------------------------------------------------------------- /.github/workflows/static-export.yml: -------------------------------------------------------------------------------- 1 | name: Static export 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | cypress-run: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - name: checkout 10 | uses: actions/checkout@v1 11 | 12 | - name: npm install 13 | uses: bahmutov/npm-install@v1 14 | 15 | - name: Run tests 🧪 16 | run: npm run test:static-export 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | coverage* 4 | .nyc_output 5 | dist/ 6 | yarn.lock 7 | cypress/videos 8 | cypress/screenshots 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Pablo Varela 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 | # nextjs-redirect 2 | 3 |

4 | 5 | 6 | 7 |

8 | 9 |

10 | Redirect to any URL in NextJS both in client and server 11 |

12 | 13 | ## Install 14 | 15 | ```sh 16 | npm install nextjs-redirect 17 | ``` 18 | 19 | ## Usage 20 | 21 | Let's say you want to create a page `/donate` that redirects the user to paypal.me with a default value for the money. You create the page as you always do in NextJS (`pages/donate.js`) and then just use this component with the URL you want: 22 | 23 | ```js 24 | // pages/donate.js 25 | import redirect from 'nextjs-redirect' 26 | export default redirect('https://paypal.me/pablopunk/5') 27 | ``` 28 | 29 | You can checkout this example live in [pablopunk.com](https://pablopunk.com) 30 | 31 | ### Status code (301, 302...) 32 | 33 | By default, it will send a [301 status code](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection). This can be customized by an optional parameter: 34 | 35 | ```js 36 | redirect('https://google.es', { statusCode: 302 }) 37 | ``` 38 | 39 | ### Client side dynamic routes (as) 40 | 41 | When redirecting on the client side, if the redirected page is dynamic (`pages/user/[userId]/info.js`), the following redirect will trigger a page refresh: 42 | 43 | ```js 44 | redirect('/user/42/info') 45 | ``` 46 | 47 | In this case you can use the `asUrl` option to make a smooth transition between pages without any refresh: 48 | 49 | ```js 50 | redirect('/user/[userId]/info', { asUrl: '/user/42/info' }) 51 | ``` 52 | 53 | ### Static export 54 | 55 | This package is compatible with `next export` since version 4.0.0. See [PR #4](https://github.com/pablopunk/nextjs-redirect/pull/4) for more details. 56 | 57 | ### Custom UI component (HOC) 58 | 59 | In case the navigation is happening client-side, you can use this package as a HOC to provide your custom components/styles for the UI: 60 | 61 | ```jsx 62 | import redirect from 'nextjs-redirect' 63 | 64 | const Redirect = redirect('https://github.com/pablopunk') 65 | 66 | export default () => ( 67 | 68 | Redirecting to github! 69 | 70 | ) 71 | ``` 72 | 73 | ### Redirect to URL from parameters 74 | 75 | Let's say you have a single page called `/redirect`, and you wanna use it for all kinds of redirects: 76 | 77 | * `/redirect?to=https://google.com` 78 | * `/redirect?next=https://twitter.com` 79 | * `/redirect?url=https://pablopunk.com` 80 | 81 | Pretty cool huh!? You can do this with `nextjs-redirect` by passing the name of the parameter you want on the url. For the examples above: 82 | 83 | ```ts 84 | // NOTE: These are 3 separate examples, you can only choose one name per page 85 | redirect('to', {params: true}) 86 | redirect('next', {params: true}) 87 | redirect('url', {params: true}) 88 | ``` 89 | 90 | ## Related 91 | 92 | Working with locales routes? Take a look at [nextjs-redirect-locale](https://github.com/pablopunk/nextjs-redirect-locale). 93 | 94 | ## Native redirects 95 | 96 | There's now a native way of handling redirects on NextJS. You can read more about it [here](https://nextjs.org/blog/next-9-5#support-for-rewrites-redirects-and-headers). It requires you to modify your `next.config.js`. Personally I still think `nextjs-redirect` is a more friendly way of doing it, and also more flexible. For example you can do dynamic redirects on the server, depeding on the request, which is useful when working with locales (checkout [nextjs-redirect-locale](https://github.com/pablopunk/nextjs-redirect-locale)) and other request-dependent redirects. It also allows you make client redirects with a custom layout. 97 | 98 | ## License 99 | 100 | MIT 101 | 102 | ## Author 103 | 104 | | ![me](https://gravatar.com/avatar/fa50aeff0ddd6e63273a068b04353d9d?size=100) | 105 | | ---------------------------------------------------------------------------- | 106 | | [Pablo Varela](https://pablopunk.com) | 107 | -------------------------------------------------------------------------------- /cypress.json: -------------------------------------------------------------------------------- 1 | { 2 | "baseUrl": "http://localhost:8123", 3 | "chromeWebSecurity": false, 4 | "retries": 3 5 | } -------------------------------------------------------------------------------- /cypress/fixtures/example.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Using fixtures to represent data", 3 | "email": "hello@cypress.io", 4 | "body": "Fixtures are a great way to mock data for responses to routes" 5 | } 6 | -------------------------------------------------------------------------------- /cypress/integration/redirect.js: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | describe('nextjs-redirect', () => { 4 | it('redirects to google', () => { 5 | cy.visit('/google') 6 | cy.url().should('include', 'google.com') 7 | }) 8 | it('redirects with status 301 by default', () => { 9 | cy.request('/google').then((response) => { 10 | expect(response.redirects[0]).to.include('301:') 11 | }) 12 | }) 13 | it('redirects to dynamic custom url', () => { 14 | cy.request('/redirect?to=https://pablopunk.com').then((response) => { 15 | expect(response.redirects[0]).to.include('https://pablopunk.com') 16 | }) 17 | }) 18 | it('redirects with custom status', () => { 19 | cy.request('/google-302').then((response) => { 20 | expect(response.redirects[0]).to.include('302:') 21 | }) 22 | }) 23 | it('redirects in the client', () => { 24 | cy.visit('/client') 25 | cy.url().should('include', 'pablopunk.com') 26 | }) 27 | it('redirects with next/link', () => { 28 | cy.visit('/') 29 | cy.contains('Redirect to Google').click() 30 | cy.url().should('include', 'google.com') 31 | }) 32 | }) 33 | -------------------------------------------------------------------------------- /cypress/plugins/index.js: -------------------------------------------------------------------------------- 1 | /// 2 | // *********************************************************** 3 | // This example plugins/index.js can be used to load plugins 4 | // 5 | // You can change the location of this file or turn off loading 6 | // the plugins file with the 'pluginsFile' configuration option. 7 | // 8 | // You can read more here: 9 | // https://on.cypress.io/plugins-guide 10 | // *********************************************************** 11 | 12 | // This function is called when a project is opened or re-opened (e.g. due to 13 | // the project's config changing) 14 | 15 | /** 16 | * @type {Cypress.PluginConfig} 17 | */ 18 | // eslint-disable-next-line no-unused-vars 19 | module.exports = (on, config) => { 20 | // `on` is used to hook into various events Cypress emits 21 | // `config` is the resolved Cypress config 22 | } 23 | -------------------------------------------------------------------------------- /cypress/support/commands.js: -------------------------------------------------------------------------------- 1 | // *********************************************** 2 | // This example commands.js shows you how to 3 | // create various custom commands and overwrite 4 | // existing commands. 5 | // 6 | // For more comprehensive examples of custom 7 | // commands please read more here: 8 | // https://on.cypress.io/custom-commands 9 | // *********************************************** 10 | // 11 | // 12 | // -- This is a parent command -- 13 | // Cypress.Commands.add('login', (email, password) => { ... }) 14 | // 15 | // 16 | // -- This is a child command -- 17 | // Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) 18 | // 19 | // 20 | // -- This is a dual command -- 21 | // Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) 22 | // 23 | // 24 | // -- This will overwrite an existing command -- 25 | // Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) 26 | -------------------------------------------------------------------------------- /cypress/support/index.js: -------------------------------------------------------------------------------- 1 | // *********************************************************** 2 | // This example support/index.js is processed and 3 | // loaded automatically before your test files. 4 | // 5 | // This is a great place to put global configuration and 6 | // behavior that modifies Cypress. 7 | // 8 | // You can change the location of this file or turn off 9 | // automatically serving support files with the 10 | // 'supportFile' configuration option. 11 | // 12 | // You can read more here: 13 | // https://on.cypress.io/configuration 14 | // *********************************************************** 15 | 16 | // Import commands.js using ES2015 syntax: 17 | import './commands' 18 | 19 | // Alternatively you can use CommonJS syntax: 20 | // require('./commands') 21 | -------------------------------------------------------------------------------- /cypress/test-server/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .next 3 | out 4 | -------------------------------------------------------------------------------- /cypress/test-server/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nextjs-redirect-test", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@next/env": { 8 | "version": "12.1.0", 9 | "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.0.tgz", 10 | "integrity": "sha512-nrIgY6t17FQ9xxwH3jj0a6EOiQ/WDHUos35Hghtr+SWN/ntHIQ7UpuvSi0vaLzZVHQWaDupKI+liO5vANcDeTQ==" 11 | }, 12 | "@next/swc-android-arm64": { 13 | "version": "12.1.0", 14 | "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.1.0.tgz", 15 | "integrity": "sha512-/280MLdZe0W03stA69iL+v6I+J1ascrQ6FrXBlXGCsGzrfMaGr7fskMa0T5AhQIVQD4nA/46QQWxG//DYuFBcA==", 16 | "optional": true 17 | }, 18 | "@next/swc-darwin-arm64": { 19 | "version": "12.1.0", 20 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.0.tgz", 21 | "integrity": "sha512-R8vcXE2/iONJ1Unf5Ptqjk6LRW3bggH+8drNkkzH4FLEQkHtELhvcmJwkXcuipyQCsIakldAXhRbZmm3YN1vXg==", 22 | "optional": true 23 | }, 24 | "@next/swc-darwin-x64": { 25 | "version": "12.1.0", 26 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.0.tgz", 27 | "integrity": "sha512-ieAz0/J0PhmbZBB8+EA/JGdhRHBogF8BWaeqR7hwveb6SYEIJaDNQy0I+ZN8gF8hLj63bEDxJAs/cEhdnTq+ug==", 28 | "optional": true 29 | }, 30 | "@next/swc-linux-arm-gnueabihf": { 31 | "version": "12.1.0", 32 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.0.tgz", 33 | "integrity": "sha512-njUd9hpl6o6A5d08dC0cKAgXKCzm5fFtgGe6i0eko8IAdtAPbtHxtpre3VeSxdZvuGFh+hb0REySQP9T1ttkog==", 34 | "optional": true 35 | }, 36 | "@next/swc-linux-arm64-gnu": { 37 | "version": "12.1.0", 38 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.0.tgz", 39 | "integrity": "sha512-OqangJLkRxVxMhDtcb7Qn1xjzFA3s50EIxY7mljbSCLybU+sByPaWAHY4px97ieOlr2y4S0xdPKkQ3BCAwyo6Q==", 40 | "optional": true 41 | }, 42 | "@next/swc-linux-arm64-musl": { 43 | "version": "12.1.0", 44 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.0.tgz", 45 | "integrity": "sha512-hB8cLSt4GdmOpcwRe2UzI5UWn6HHO/vLkr5OTuNvCJ5xGDwpPXelVkYW/0+C3g5axbDW2Tym4S+MQCkkH9QfWA==", 46 | "optional": true 47 | }, 48 | "@next/swc-linux-x64-gnu": { 49 | "version": "12.1.0", 50 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.0.tgz", 51 | "integrity": "sha512-OKO4R/digvrVuweSw/uBM4nSdyzsBV5EwkUeeG4KVpkIZEe64ZwRpnFB65bC6hGwxIBnTv5NMSnJ+0K/WmG78A==", 52 | "optional": true 53 | }, 54 | "@next/swc-linux-x64-musl": { 55 | "version": "12.1.0", 56 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.0.tgz", 57 | "integrity": "sha512-JohhgAHZvOD3rQY7tlp7NlmvtvYHBYgY0x5ZCecUT6eCCcl9lv6iV3nfu82ErkxNk1H893fqH0FUpznZ/H3pSw==", 58 | "optional": true 59 | }, 60 | "@next/swc-win32-arm64-msvc": { 61 | "version": "12.1.0", 62 | "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.0.tgz", 63 | "integrity": "sha512-T/3gIE6QEfKIJ4dmJk75v9hhNiYZhQYAoYm4iVo1TgcsuaKLFa+zMPh4056AHiG6n9tn2UQ1CFE8EoybEsqsSw==", 64 | "optional": true 65 | }, 66 | "@next/swc-win32-ia32-msvc": { 67 | "version": "12.1.0", 68 | "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.0.tgz", 69 | "integrity": "sha512-iwnKgHJdqhIW19H9PRPM9j55V6RdcOo6rX+5imx832BCWzkDbyomWnlzBfr6ByUYfhohb8QuH4hSGEikpPqI0Q==", 70 | "optional": true 71 | }, 72 | "@next/swc-win32-x64-msvc": { 73 | "version": "12.1.0", 74 | "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.0.tgz", 75 | "integrity": "sha512-aBvcbMwuanDH4EMrL2TthNJy+4nP59Bimn8egqv6GHMVj0a44cU6Au4PjOhLNqEh9l+IpRGBqMTzec94UdC5xg==", 76 | "optional": true 77 | }, 78 | "caniuse-lite": { 79 | "version": "1.0.30001303", 80 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz", 81 | "integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==" 82 | }, 83 | "js-tokens": { 84 | "version": "4.0.0", 85 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 86 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 87 | }, 88 | "loose-envify": { 89 | "version": "1.4.0", 90 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 91 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 92 | "requires": { 93 | "js-tokens": "^3.0.0 || ^4.0.0" 94 | } 95 | }, 96 | "nanoid": { 97 | "version": "3.2.0", 98 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", 99 | "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==" 100 | }, 101 | "next": { 102 | "version": "12.1.0", 103 | "resolved": "https://registry.npmjs.org/next/-/next-12.1.0.tgz", 104 | "integrity": "sha512-s885kWvnIlxsUFHq9UGyIyLiuD0G3BUC/xrH0CEnH5lHEWkwQcHOORgbDF0hbrW9vr/7am4ETfX4A7M6DjrE7Q==", 105 | "requires": { 106 | "@next/env": "12.1.0", 107 | "@next/swc-android-arm64": "12.1.0", 108 | "@next/swc-darwin-arm64": "12.1.0", 109 | "@next/swc-darwin-x64": "12.1.0", 110 | "@next/swc-linux-arm-gnueabihf": "12.1.0", 111 | "@next/swc-linux-arm64-gnu": "12.1.0", 112 | "@next/swc-linux-arm64-musl": "12.1.0", 113 | "@next/swc-linux-x64-gnu": "12.1.0", 114 | "@next/swc-linux-x64-musl": "12.1.0", 115 | "@next/swc-win32-arm64-msvc": "12.1.0", 116 | "@next/swc-win32-ia32-msvc": "12.1.0", 117 | "@next/swc-win32-x64-msvc": "12.1.0", 118 | "caniuse-lite": "^1.0.30001283", 119 | "postcss": "8.4.5", 120 | "styled-jsx": "5.0.0", 121 | "use-subscription": "1.5.1" 122 | } 123 | }, 124 | "object-assign": { 125 | "version": "4.1.1", 126 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 127 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 128 | }, 129 | "picocolors": { 130 | "version": "1.0.0", 131 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 132 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 133 | }, 134 | "postcss": { 135 | "version": "8.4.5", 136 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", 137 | "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", 138 | "requires": { 139 | "nanoid": "^3.1.30", 140 | "picocolors": "^1.0.0", 141 | "source-map-js": "^1.0.1" 142 | } 143 | }, 144 | "react": { 145 | "version": "17.0.2", 146 | "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", 147 | "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", 148 | "requires": { 149 | "loose-envify": "^1.1.0", 150 | "object-assign": "^4.1.1" 151 | } 152 | }, 153 | "react-dom": { 154 | "version": "17.0.2", 155 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", 156 | "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", 157 | "requires": { 158 | "loose-envify": "^1.1.0", 159 | "object-assign": "^4.1.1", 160 | "scheduler": "^0.20.2" 161 | } 162 | }, 163 | "scheduler": { 164 | "version": "0.20.2", 165 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", 166 | "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", 167 | "requires": { 168 | "loose-envify": "^1.1.0", 169 | "object-assign": "^4.1.1" 170 | } 171 | }, 172 | "source-map-js": { 173 | "version": "1.0.2", 174 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 175 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" 176 | }, 177 | "styled-jsx": { 178 | "version": "5.0.0", 179 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0.tgz", 180 | "integrity": "sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA==" 181 | }, 182 | "use-subscription": { 183 | "version": "1.5.1", 184 | "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", 185 | "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", 186 | "requires": { 187 | "object-assign": "^4.1.1" 188 | } 189 | } 190 | } 191 | } 192 | -------------------------------------------------------------------------------- /cypress/test-server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nextjs-redirect-test", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "npm run build && next start -p 8123", 8 | "build": "next build", 9 | "dev": "next -p 8123" 10 | }, 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "next": "^12.1.0", 15 | "react": "^17.0.2", 16 | "react-dom": "^17.0.2" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /cypress/test-server/pages/client.js: -------------------------------------------------------------------------------- 1 | import redirect from '../../..' 2 | 3 | const Redirect = redirect('https://pablopunk.com') 4 | 5 | export default function Client() { 6 | return ( 7 | 8 |

Redirecting...

9 |
10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /cypress/test-server/pages/google-302.js: -------------------------------------------------------------------------------- 1 | import redirect from '../../..' 2 | export default redirect('https://google.com', { statusCode: 302 }) 3 | -------------------------------------------------------------------------------- /cypress/test-server/pages/google.js: -------------------------------------------------------------------------------- 1 | import redirect from '../../..' 2 | export default redirect('https://google.com') 3 | -------------------------------------------------------------------------------- /cypress/test-server/pages/index.jsx: -------------------------------------------------------------------------------- 1 | import Link from 'next/link' 2 | 3 | export default function Index() { 4 | return ( 5 |
6 | 7 | Redirect to Google 8 | 9 |
10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /cypress/test-server/pages/redirect.js: -------------------------------------------------------------------------------- 1 | import redirect from '../../..' 2 | export default redirect('to', { params: true }) 3 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | nextjs-redirect 10 | 11 | 15 | 16 | 17 | 18 | 19 | 20 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nextjs-redirect", 3 | "version": "6.0.1", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@cypress/request": { 8 | "version": "2.88.10", 9 | "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", 10 | "integrity": "sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==", 11 | "dev": true, 12 | "requires": { 13 | "aws-sign2": "~0.7.0", 14 | "aws4": "^1.8.0", 15 | "caseless": "~0.12.0", 16 | "combined-stream": "~1.0.6", 17 | "extend": "~3.0.2", 18 | "forever-agent": "~0.6.1", 19 | "form-data": "~2.3.2", 20 | "http-signature": "~1.3.6", 21 | "is-typedarray": "~1.0.0", 22 | "isstream": "~0.1.2", 23 | "json-stringify-safe": "~5.0.1", 24 | "mime-types": "~2.1.19", 25 | "performance-now": "^2.1.0", 26 | "qs": "~6.5.2", 27 | "safe-buffer": "^5.1.2", 28 | "tough-cookie": "~2.5.0", 29 | "tunnel-agent": "^0.6.0", 30 | "uuid": "^8.3.2" 31 | } 32 | }, 33 | "@cypress/xvfb": { 34 | "version": "1.2.4", 35 | "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", 36 | "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", 37 | "dev": true, 38 | "requires": { 39 | "debug": "^3.1.0", 40 | "lodash.once": "^4.1.1" 41 | }, 42 | "dependencies": { 43 | "debug": { 44 | "version": "3.2.7", 45 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 46 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 47 | "dev": true, 48 | "requires": { 49 | "ms": "^2.1.1" 50 | } 51 | }, 52 | "ms": { 53 | "version": "2.1.3", 54 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 55 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 56 | "dev": true 57 | } 58 | } 59 | }, 60 | "@hapi/hoek": { 61 | "version": "9.2.0", 62 | "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.0.tgz", 63 | "integrity": "sha512-sqKVVVOe5ivCaXDWivIJYVSaEgdQK9ul7a4Kity5Iw7u9+wBAPbX1RMSnLLmp7O4Vzj0WOWwMAJsTL00xwaNug==", 64 | "dev": true 65 | }, 66 | "@hapi/topo": { 67 | "version": "5.1.0", 68 | "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", 69 | "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", 70 | "dev": true, 71 | "requires": { 72 | "@hapi/hoek": "^9.0.0" 73 | } 74 | }, 75 | "@next/env": { 76 | "version": "12.1.0", 77 | "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.0.tgz", 78 | "integrity": "sha512-nrIgY6t17FQ9xxwH3jj0a6EOiQ/WDHUos35Hghtr+SWN/ntHIQ7UpuvSi0vaLzZVHQWaDupKI+liO5vANcDeTQ==", 79 | "dev": true 80 | }, 81 | "@next/swc-android-arm64": { 82 | "version": "12.1.0", 83 | "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.1.0.tgz", 84 | "integrity": "sha512-/280MLdZe0W03stA69iL+v6I+J1ascrQ6FrXBlXGCsGzrfMaGr7fskMa0T5AhQIVQD4nA/46QQWxG//DYuFBcA==", 85 | "dev": true, 86 | "optional": true 87 | }, 88 | "@next/swc-darwin-arm64": { 89 | "version": "12.1.0", 90 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.0.tgz", 91 | "integrity": "sha512-R8vcXE2/iONJ1Unf5Ptqjk6LRW3bggH+8drNkkzH4FLEQkHtELhvcmJwkXcuipyQCsIakldAXhRbZmm3YN1vXg==", 92 | "dev": true, 93 | "optional": true 94 | }, 95 | "@next/swc-darwin-x64": { 96 | "version": "12.1.0", 97 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.0.tgz", 98 | "integrity": "sha512-ieAz0/J0PhmbZBB8+EA/JGdhRHBogF8BWaeqR7hwveb6SYEIJaDNQy0I+ZN8gF8hLj63bEDxJAs/cEhdnTq+ug==", 99 | "dev": true, 100 | "optional": true 101 | }, 102 | "@next/swc-linux-arm-gnueabihf": { 103 | "version": "12.1.0", 104 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.0.tgz", 105 | "integrity": "sha512-njUd9hpl6o6A5d08dC0cKAgXKCzm5fFtgGe6i0eko8IAdtAPbtHxtpre3VeSxdZvuGFh+hb0REySQP9T1ttkog==", 106 | "dev": true, 107 | "optional": true 108 | }, 109 | "@next/swc-linux-arm64-gnu": { 110 | "version": "12.1.0", 111 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.0.tgz", 112 | "integrity": "sha512-OqangJLkRxVxMhDtcb7Qn1xjzFA3s50EIxY7mljbSCLybU+sByPaWAHY4px97ieOlr2y4S0xdPKkQ3BCAwyo6Q==", 113 | "dev": true, 114 | "optional": true 115 | }, 116 | "@next/swc-linux-arm64-musl": { 117 | "version": "12.1.0", 118 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.0.tgz", 119 | "integrity": "sha512-hB8cLSt4GdmOpcwRe2UzI5UWn6HHO/vLkr5OTuNvCJ5xGDwpPXelVkYW/0+C3g5axbDW2Tym4S+MQCkkH9QfWA==", 120 | "dev": true, 121 | "optional": true 122 | }, 123 | "@next/swc-linux-x64-gnu": { 124 | "version": "12.1.0", 125 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.0.tgz", 126 | "integrity": "sha512-OKO4R/digvrVuweSw/uBM4nSdyzsBV5EwkUeeG4KVpkIZEe64ZwRpnFB65bC6hGwxIBnTv5NMSnJ+0K/WmG78A==", 127 | "dev": true, 128 | "optional": true 129 | }, 130 | "@next/swc-linux-x64-musl": { 131 | "version": "12.1.0", 132 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.0.tgz", 133 | "integrity": "sha512-JohhgAHZvOD3rQY7tlp7NlmvtvYHBYgY0x5ZCecUT6eCCcl9lv6iV3nfu82ErkxNk1H893fqH0FUpznZ/H3pSw==", 134 | "dev": true, 135 | "optional": true 136 | }, 137 | "@next/swc-win32-arm64-msvc": { 138 | "version": "12.1.0", 139 | "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.0.tgz", 140 | "integrity": "sha512-T/3gIE6QEfKIJ4dmJk75v9hhNiYZhQYAoYm4iVo1TgcsuaKLFa+zMPh4056AHiG6n9tn2UQ1CFE8EoybEsqsSw==", 141 | "dev": true, 142 | "optional": true 143 | }, 144 | "@next/swc-win32-ia32-msvc": { 145 | "version": "12.1.0", 146 | "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.0.tgz", 147 | "integrity": "sha512-iwnKgHJdqhIW19H9PRPM9j55V6RdcOo6rX+5imx832BCWzkDbyomWnlzBfr6ByUYfhohb8QuH4hSGEikpPqI0Q==", 148 | "dev": true, 149 | "optional": true 150 | }, 151 | "@next/swc-win32-x64-msvc": { 152 | "version": "12.1.0", 153 | "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.0.tgz", 154 | "integrity": "sha512-aBvcbMwuanDH4EMrL2TthNJy+4nP59Bimn8egqv6GHMVj0a44cU6Au4PjOhLNqEh9l+IpRGBqMTzec94UdC5xg==", 155 | "dev": true, 156 | "optional": true 157 | }, 158 | "@sideway/address": { 159 | "version": "4.1.3", 160 | "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz", 161 | "integrity": "sha512-8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==", 162 | "dev": true, 163 | "requires": { 164 | "@hapi/hoek": "^9.0.0" 165 | } 166 | }, 167 | "@sideway/formula": { 168 | "version": "3.0.1", 169 | "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", 170 | "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", 171 | "dev": true 172 | }, 173 | "@sideway/pinpoint": { 174 | "version": "2.0.0", 175 | "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", 176 | "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", 177 | "dev": true 178 | }, 179 | "@sindresorhus/is": { 180 | "version": "0.14.0", 181 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", 182 | "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", 183 | "dev": true 184 | }, 185 | "@szmarczak/http-timer": { 186 | "version": "1.1.2", 187 | "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", 188 | "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", 189 | "dev": true, 190 | "requires": { 191 | "defer-to-connect": "^1.0.1" 192 | } 193 | }, 194 | "@types/cypress": { 195 | "version": "1.1.3", 196 | "resolved": "https://registry.npmjs.org/@types/cypress/-/cypress-1.1.3.tgz", 197 | "integrity": "sha512-OXe0Gw8LeCflkG1oPgFpyrYWJmEKqYncBsD/J0r17r0ETx/TnIGDNLwXt/pFYSYuYTpzcq1q3g62M9DrfsBL4g==", 198 | "dev": true, 199 | "requires": { 200 | "cypress": "*" 201 | } 202 | }, 203 | "@types/minimatch": { 204 | "version": "3.0.3", 205 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", 206 | "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", 207 | "dev": true 208 | }, 209 | "@types/node": { 210 | "version": "14.14.31", 211 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.31.tgz", 212 | "integrity": "sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==", 213 | "dev": true 214 | }, 215 | "@types/prop-types": { 216 | "version": "15.7.3", 217 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", 218 | "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==", 219 | "dev": true 220 | }, 221 | "@types/react": { 222 | "version": "16.14.4", 223 | "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.4.tgz", 224 | "integrity": "sha512-ETj7GbkPGjca/A4trkVeGvoIakmLV6ZtX3J8dcmOpzKzWVybbrOxanwaIPG71GZwImoMDY6Fq4wIe34lEqZ0FQ==", 225 | "dev": true, 226 | "requires": { 227 | "@types/prop-types": "*", 228 | "csstype": "^3.0.2" 229 | } 230 | }, 231 | "@types/sinonjs__fake-timers": { 232 | "version": "8.1.1", 233 | "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", 234 | "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", 235 | "dev": true 236 | }, 237 | "@types/sizzle": { 238 | "version": "2.3.3", 239 | "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", 240 | "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==", 241 | "dev": true 242 | }, 243 | "@types/yauzl": { 244 | "version": "2.9.2", 245 | "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", 246 | "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", 247 | "dev": true, 248 | "optional": true, 249 | "requires": { 250 | "@types/node": "*" 251 | } 252 | }, 253 | "abbrev": { 254 | "version": "1.1.1", 255 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 256 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", 257 | "dev": true 258 | }, 259 | "aggregate-error": { 260 | "version": "3.1.0", 261 | "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", 262 | "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", 263 | "dev": true, 264 | "requires": { 265 | "clean-stack": "^2.0.0", 266 | "indent-string": "^4.0.0" 267 | } 268 | }, 269 | "ansi-align": { 270 | "version": "3.0.1", 271 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", 272 | "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", 273 | "dev": true, 274 | "requires": { 275 | "string-width": "^4.1.0" 276 | } 277 | }, 278 | "ansi-colors": { 279 | "version": "4.1.1", 280 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", 281 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", 282 | "dev": true 283 | }, 284 | "ansi-escapes": { 285 | "version": "4.3.2", 286 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", 287 | "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", 288 | "dev": true, 289 | "requires": { 290 | "type-fest": "^0.21.3" 291 | }, 292 | "dependencies": { 293 | "type-fest": { 294 | "version": "0.21.3", 295 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", 296 | "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", 297 | "dev": true 298 | } 299 | } 300 | }, 301 | "ansi-regex": { 302 | "version": "5.0.1", 303 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 304 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 305 | "dev": true 306 | }, 307 | "ansi-styles": { 308 | "version": "4.3.0", 309 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 310 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 311 | "dev": true, 312 | "requires": { 313 | "color-convert": "^2.0.1" 314 | } 315 | }, 316 | "any-promise": { 317 | "version": "1.3.0", 318 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", 319 | "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", 320 | "dev": true 321 | }, 322 | "anymatch": { 323 | "version": "3.1.2", 324 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 325 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 326 | "dev": true, 327 | "requires": { 328 | "normalize-path": "^3.0.0", 329 | "picomatch": "^2.0.4" 330 | } 331 | }, 332 | "arch": { 333 | "version": "2.2.0", 334 | "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", 335 | "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", 336 | "dev": true 337 | }, 338 | "array-differ": { 339 | "version": "3.0.0", 340 | "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", 341 | "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", 342 | "dev": true 343 | }, 344 | "array-union": { 345 | "version": "2.1.0", 346 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", 347 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", 348 | "dev": true 349 | }, 350 | "arrify": { 351 | "version": "2.0.1", 352 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", 353 | "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", 354 | "dev": true 355 | }, 356 | "asn1": { 357 | "version": "0.2.6", 358 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", 359 | "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", 360 | "dev": true, 361 | "requires": { 362 | "safer-buffer": "~2.1.0" 363 | } 364 | }, 365 | "assert-plus": { 366 | "version": "1.0.0", 367 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 368 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", 369 | "dev": true 370 | }, 371 | "astral-regex": { 372 | "version": "2.0.0", 373 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", 374 | "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", 375 | "dev": true 376 | }, 377 | "async": { 378 | "version": "3.2.3", 379 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", 380 | "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", 381 | "dev": true 382 | }, 383 | "asynckit": { 384 | "version": "0.4.0", 385 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 386 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", 387 | "dev": true 388 | }, 389 | "at-least-node": { 390 | "version": "1.0.0", 391 | "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", 392 | "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", 393 | "dev": true 394 | }, 395 | "aws-sign2": { 396 | "version": "0.7.0", 397 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 398 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", 399 | "dev": true 400 | }, 401 | "aws4": { 402 | "version": "1.11.0", 403 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", 404 | "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", 405 | "dev": true 406 | }, 407 | "axios": { 408 | "version": "0.21.4", 409 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", 410 | "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", 411 | "dev": true, 412 | "requires": { 413 | "follow-redirects": "^1.14.0" 414 | } 415 | }, 416 | "balanced-match": { 417 | "version": "1.0.0", 418 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 419 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 420 | "dev": true 421 | }, 422 | "base64-js": { 423 | "version": "1.5.1", 424 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 425 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 426 | "dev": true 427 | }, 428 | "bcrypt-pbkdf": { 429 | "version": "1.0.2", 430 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 431 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 432 | "dev": true, 433 | "requires": { 434 | "tweetnacl": "^0.14.3" 435 | } 436 | }, 437 | "binary-extensions": { 438 | "version": "2.2.0", 439 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 440 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 441 | "dev": true 442 | }, 443 | "blob-util": { 444 | "version": "2.0.2", 445 | "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", 446 | "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", 447 | "dev": true 448 | }, 449 | "bluebird": { 450 | "version": "3.7.2", 451 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", 452 | "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", 453 | "dev": true 454 | }, 455 | "boxen": { 456 | "version": "5.1.2", 457 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", 458 | "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", 459 | "dev": true, 460 | "requires": { 461 | "ansi-align": "^3.0.0", 462 | "camelcase": "^6.2.0", 463 | "chalk": "^4.1.0", 464 | "cli-boxes": "^2.2.1", 465 | "string-width": "^4.2.2", 466 | "type-fest": "^0.20.2", 467 | "widest-line": "^3.1.0", 468 | "wrap-ansi": "^7.0.0" 469 | }, 470 | "dependencies": { 471 | "camelcase": { 472 | "version": "6.3.0", 473 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", 474 | "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", 475 | "dev": true 476 | }, 477 | "string-width": { 478 | "version": "4.2.3", 479 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 480 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 481 | "dev": true, 482 | "requires": { 483 | "emoji-regex": "^8.0.0", 484 | "is-fullwidth-code-point": "^3.0.0", 485 | "strip-ansi": "^6.0.1" 486 | } 487 | }, 488 | "strip-ansi": { 489 | "version": "6.0.1", 490 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 491 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 492 | "dev": true, 493 | "requires": { 494 | "ansi-regex": "^5.0.1" 495 | } 496 | }, 497 | "wrap-ansi": { 498 | "version": "7.0.0", 499 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 500 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 501 | "dev": true, 502 | "requires": { 503 | "ansi-styles": "^4.0.0", 504 | "string-width": "^4.1.0", 505 | "strip-ansi": "^6.0.0" 506 | } 507 | } 508 | } 509 | }, 510 | "brace-expansion": { 511 | "version": "1.1.11", 512 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 513 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 514 | "dev": true, 515 | "requires": { 516 | "balanced-match": "^1.0.0", 517 | "concat-map": "0.0.1" 518 | } 519 | }, 520 | "braces": { 521 | "version": "3.0.2", 522 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 523 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 524 | "dev": true, 525 | "requires": { 526 | "fill-range": "^7.0.1" 527 | } 528 | }, 529 | "buffer": { 530 | "version": "5.6.0", 531 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", 532 | "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", 533 | "dev": true, 534 | "requires": { 535 | "base64-js": "^1.0.2", 536 | "ieee754": "^1.1.4" 537 | } 538 | }, 539 | "buffer-crc32": { 540 | "version": "0.2.13", 541 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 542 | "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", 543 | "dev": true 544 | }, 545 | "cacheable-request": { 546 | "version": "6.1.0", 547 | "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", 548 | "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", 549 | "dev": true, 550 | "requires": { 551 | "clone-response": "^1.0.2", 552 | "get-stream": "^5.1.0", 553 | "http-cache-semantics": "^4.0.0", 554 | "keyv": "^3.0.0", 555 | "lowercase-keys": "^2.0.0", 556 | "normalize-url": "^4.1.0", 557 | "responselike": "^1.0.2" 558 | }, 559 | "dependencies": { 560 | "lowercase-keys": { 561 | "version": "2.0.0", 562 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", 563 | "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", 564 | "dev": true 565 | } 566 | } 567 | }, 568 | "cachedir": { 569 | "version": "2.3.0", 570 | "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", 571 | "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", 572 | "dev": true 573 | }, 574 | "camelcase": { 575 | "version": "5.3.1", 576 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 577 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", 578 | "dev": true 579 | }, 580 | "caniuse-lite": { 581 | "version": "1.0.30001303", 582 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz", 583 | "integrity": "sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ==", 584 | "dev": true 585 | }, 586 | "caseless": { 587 | "version": "0.12.0", 588 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 589 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", 590 | "dev": true 591 | }, 592 | "chalk": { 593 | "version": "4.1.2", 594 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 595 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 596 | "dev": true, 597 | "requires": { 598 | "ansi-styles": "^4.1.0", 599 | "supports-color": "^7.1.0" 600 | }, 601 | "dependencies": { 602 | "has-flag": { 603 | "version": "4.0.0", 604 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 605 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 606 | "dev": true 607 | }, 608 | "supports-color": { 609 | "version": "7.2.0", 610 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 611 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 612 | "dev": true, 613 | "requires": { 614 | "has-flag": "^4.0.0" 615 | } 616 | } 617 | } 618 | }, 619 | "check-more-types": { 620 | "version": "2.24.0", 621 | "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", 622 | "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=", 623 | "dev": true 624 | }, 625 | "chokidar": { 626 | "version": "3.5.3", 627 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 628 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 629 | "dev": true, 630 | "requires": { 631 | "anymatch": "~3.1.2", 632 | "braces": "~3.0.2", 633 | "fsevents": "~2.3.2", 634 | "glob-parent": "~5.1.2", 635 | "is-binary-path": "~2.1.0", 636 | "is-glob": "~4.0.1", 637 | "normalize-path": "~3.0.0", 638 | "readdirp": "~3.6.0" 639 | } 640 | }, 641 | "ci-info": { 642 | "version": "3.3.0", 643 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", 644 | "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", 645 | "dev": true 646 | }, 647 | "clean-stack": { 648 | "version": "2.2.0", 649 | "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", 650 | "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", 651 | "dev": true 652 | }, 653 | "cli-boxes": { 654 | "version": "2.2.1", 655 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", 656 | "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", 657 | "dev": true 658 | }, 659 | "cli-cursor": { 660 | "version": "3.1.0", 661 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", 662 | "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", 663 | "dev": true, 664 | "requires": { 665 | "restore-cursor": "^3.1.0" 666 | } 667 | }, 668 | "cli-table3": { 669 | "version": "0.6.1", 670 | "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz", 671 | "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==", 672 | "dev": true, 673 | "requires": { 674 | "colors": "1.4.0", 675 | "string-width": "^4.2.0" 676 | } 677 | }, 678 | "cli-truncate": { 679 | "version": "2.1.0", 680 | "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", 681 | "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", 682 | "dev": true, 683 | "requires": { 684 | "slice-ansi": "^3.0.0", 685 | "string-width": "^4.2.0" 686 | } 687 | }, 688 | "cliui": { 689 | "version": "6.0.0", 690 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", 691 | "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", 692 | "dev": true, 693 | "requires": { 694 | "string-width": "^4.2.0", 695 | "strip-ansi": "^6.0.0", 696 | "wrap-ansi": "^6.2.0" 697 | } 698 | }, 699 | "clone-response": { 700 | "version": "1.0.2", 701 | "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", 702 | "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", 703 | "dev": true, 704 | "requires": { 705 | "mimic-response": "^1.0.0" 706 | } 707 | }, 708 | "color-convert": { 709 | "version": "2.0.1", 710 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 711 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 712 | "dev": true, 713 | "requires": { 714 | "color-name": "~1.1.4" 715 | } 716 | }, 717 | "color-name": { 718 | "version": "1.1.4", 719 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 720 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 721 | "dev": true 722 | }, 723 | "colors": { 724 | "version": "1.4.0", 725 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", 726 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", 727 | "dev": true, 728 | "optional": true 729 | }, 730 | "combined-stream": { 731 | "version": "1.0.8", 732 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 733 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 734 | "dev": true, 735 | "requires": { 736 | "delayed-stream": "~1.0.0" 737 | } 738 | }, 739 | "commander": { 740 | "version": "4.1.1", 741 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", 742 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", 743 | "dev": true 744 | }, 745 | "common-tags": { 746 | "version": "1.8.2", 747 | "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", 748 | "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", 749 | "dev": true 750 | }, 751 | "concat-map": { 752 | "version": "0.0.1", 753 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 754 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 755 | "dev": true 756 | }, 757 | "configstore": { 758 | "version": "5.0.1", 759 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", 760 | "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", 761 | "dev": true, 762 | "requires": { 763 | "dot-prop": "^5.2.0", 764 | "graceful-fs": "^4.1.2", 765 | "make-dir": "^3.0.0", 766 | "unique-string": "^2.0.0", 767 | "write-file-atomic": "^3.0.0", 768 | "xdg-basedir": "^4.0.0" 769 | } 770 | }, 771 | "cross-spawn": { 772 | "version": "7.0.3", 773 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 774 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 775 | "dev": true, 776 | "requires": { 777 | "path-key": "^3.1.0", 778 | "shebang-command": "^2.0.0", 779 | "which": "^2.0.1" 780 | } 781 | }, 782 | "crypto-random-string": { 783 | "version": "2.0.0", 784 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", 785 | "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", 786 | "dev": true 787 | }, 788 | "csstype": { 789 | "version": "3.0.7", 790 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz", 791 | "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==", 792 | "dev": true 793 | }, 794 | "cypress": { 795 | "version": "9.3.1", 796 | "resolved": "https://registry.npmjs.org/cypress/-/cypress-9.3.1.tgz", 797 | "integrity": "sha512-BODdPesxX6bkVUnH8BVsV8I/jn57zQtO1FEOUTiuG2us3kslW7g0tcuwiny7CKCmJUZz8S/D587ppC+s58a+5Q==", 798 | "dev": true, 799 | "requires": { 800 | "@cypress/request": "^2.88.10", 801 | "@cypress/xvfb": "^1.2.4", 802 | "@types/node": "^14.14.31", 803 | "@types/sinonjs__fake-timers": "8.1.1", 804 | "@types/sizzle": "^2.3.2", 805 | "arch": "^2.2.0", 806 | "blob-util": "^2.0.2", 807 | "bluebird": "^3.7.2", 808 | "buffer": "^5.6.0", 809 | "cachedir": "^2.3.0", 810 | "chalk": "^4.1.0", 811 | "check-more-types": "^2.24.0", 812 | "cli-cursor": "^3.1.0", 813 | "cli-table3": "~0.6.1", 814 | "commander": "^5.1.0", 815 | "common-tags": "^1.8.0", 816 | "dayjs": "^1.10.4", 817 | "debug": "^4.3.2", 818 | "enquirer": "^2.3.6", 819 | "eventemitter2": "^6.4.3", 820 | "execa": "4.1.0", 821 | "executable": "^4.1.1", 822 | "extract-zip": "2.0.1", 823 | "figures": "^3.2.0", 824 | "fs-extra": "^9.1.0", 825 | "getos": "^3.2.1", 826 | "is-ci": "^3.0.0", 827 | "is-installed-globally": "~0.4.0", 828 | "lazy-ass": "^1.6.0", 829 | "listr2": "^3.8.3", 830 | "lodash": "^4.17.21", 831 | "log-symbols": "^4.0.0", 832 | "minimist": "^1.2.5", 833 | "ospath": "^1.2.2", 834 | "pretty-bytes": "^5.6.0", 835 | "proxy-from-env": "1.0.0", 836 | "request-progress": "^3.0.0", 837 | "supports-color": "^8.1.1", 838 | "tmp": "~0.2.1", 839 | "untildify": "^4.0.0", 840 | "url": "^0.11.0", 841 | "yauzl": "^2.10.0" 842 | }, 843 | "dependencies": { 844 | "chalk": { 845 | "version": "4.1.2", 846 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 847 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 848 | "dev": true, 849 | "requires": { 850 | "ansi-styles": "^4.1.0", 851 | "supports-color": "^7.1.0" 852 | }, 853 | "dependencies": { 854 | "supports-color": { 855 | "version": "7.2.0", 856 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 857 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 858 | "dev": true, 859 | "requires": { 860 | "has-flag": "^4.0.0" 861 | } 862 | } 863 | } 864 | }, 865 | "commander": { 866 | "version": "5.1.0", 867 | "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", 868 | "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", 869 | "dev": true 870 | }, 871 | "has-flag": { 872 | "version": "4.0.0", 873 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 874 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 875 | "dev": true 876 | }, 877 | "supports-color": { 878 | "version": "8.1.1", 879 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", 880 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", 881 | "dev": true, 882 | "requires": { 883 | "has-flag": "^4.0.0" 884 | } 885 | } 886 | } 887 | }, 888 | "dashdash": { 889 | "version": "1.14.1", 890 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 891 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 892 | "dev": true, 893 | "requires": { 894 | "assert-plus": "^1.0.0" 895 | } 896 | }, 897 | "dayjs": { 898 | "version": "1.10.7", 899 | "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz", 900 | "integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==", 901 | "dev": true 902 | }, 903 | "debug": { 904 | "version": "4.3.3", 905 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", 906 | "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", 907 | "dev": true, 908 | "requires": { 909 | "ms": "2.1.2" 910 | } 911 | }, 912 | "decamelize": { 913 | "version": "1.2.0", 914 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 915 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", 916 | "dev": true 917 | }, 918 | "decompress-response": { 919 | "version": "3.3.0", 920 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", 921 | "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", 922 | "dev": true, 923 | "requires": { 924 | "mimic-response": "^1.0.0" 925 | } 926 | }, 927 | "deep-extend": { 928 | "version": "0.6.0", 929 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", 930 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", 931 | "dev": true 932 | }, 933 | "defer-to-connect": { 934 | "version": "1.1.3", 935 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", 936 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", 937 | "dev": true 938 | }, 939 | "delayed-stream": { 940 | "version": "1.0.0", 941 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 942 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", 943 | "dev": true 944 | }, 945 | "dot-prop": { 946 | "version": "5.3.0", 947 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", 948 | "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", 949 | "dev": true, 950 | "requires": { 951 | "is-obj": "^2.0.0" 952 | } 953 | }, 954 | "dts-bundle-generator": { 955 | "version": "4.3.0", 956 | "resolved": "https://registry.npmjs.org/dts-bundle-generator/-/dts-bundle-generator-4.3.0.tgz", 957 | "integrity": "sha512-gA4y4lyEoXxS9ojPSsq+TGcZxuCbZDKubwsI4hJ8ptgrufcKrPDR8OLylLyWD3k9LbO3JIIVOxXpWrE6ZUc4UA==", 958 | "dev": true, 959 | "requires": { 960 | "typescript": ">=2.6.1", 961 | "yargs": "^15.3.1" 962 | } 963 | }, 964 | "duplexer": { 965 | "version": "0.1.2", 966 | "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", 967 | "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", 968 | "dev": true 969 | }, 970 | "duplexer3": { 971 | "version": "0.1.4", 972 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 973 | "integrity": "sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==", 974 | "dev": true 975 | }, 976 | "ecc-jsbn": { 977 | "version": "0.1.2", 978 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 979 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 980 | "dev": true, 981 | "requires": { 982 | "jsbn": "~0.1.0", 983 | "safer-buffer": "^2.1.0" 984 | } 985 | }, 986 | "emoji-regex": { 987 | "version": "8.0.0", 988 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 989 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 990 | "dev": true 991 | }, 992 | "end-of-stream": { 993 | "version": "1.4.4", 994 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 995 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 996 | "dev": true, 997 | "requires": { 998 | "once": "^1.4.0" 999 | } 1000 | }, 1001 | "enquirer": { 1002 | "version": "2.3.6", 1003 | "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", 1004 | "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", 1005 | "dev": true, 1006 | "requires": { 1007 | "ansi-colors": "^4.1.1" 1008 | } 1009 | }, 1010 | "escape-goat": { 1011 | "version": "2.1.1", 1012 | "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", 1013 | "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", 1014 | "dev": true 1015 | }, 1016 | "escape-string-regexp": { 1017 | "version": "1.0.5", 1018 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1019 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 1020 | "dev": true 1021 | }, 1022 | "event-stream": { 1023 | "version": "3.3.4", 1024 | "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", 1025 | "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", 1026 | "dev": true, 1027 | "requires": { 1028 | "duplexer": "~0.1.1", 1029 | "from": "~0", 1030 | "map-stream": "~0.1.0", 1031 | "pause-stream": "0.0.11", 1032 | "split": "0.3", 1033 | "stream-combiner": "~0.0.4", 1034 | "through": "~2.3.1" 1035 | } 1036 | }, 1037 | "eventemitter2": { 1038 | "version": "6.4.5", 1039 | "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz", 1040 | "integrity": "sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==", 1041 | "dev": true 1042 | }, 1043 | "execa": { 1044 | "version": "4.1.0", 1045 | "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", 1046 | "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", 1047 | "dev": true, 1048 | "requires": { 1049 | "cross-spawn": "^7.0.0", 1050 | "get-stream": "^5.0.0", 1051 | "human-signals": "^1.1.1", 1052 | "is-stream": "^2.0.0", 1053 | "merge-stream": "^2.0.0", 1054 | "npm-run-path": "^4.0.0", 1055 | "onetime": "^5.1.0", 1056 | "signal-exit": "^3.0.2", 1057 | "strip-final-newline": "^2.0.0" 1058 | } 1059 | }, 1060 | "executable": { 1061 | "version": "4.1.1", 1062 | "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", 1063 | "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", 1064 | "dev": true, 1065 | "requires": { 1066 | "pify": "^2.2.0" 1067 | } 1068 | }, 1069 | "extend": { 1070 | "version": "3.0.2", 1071 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 1072 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", 1073 | "dev": true 1074 | }, 1075 | "extract-zip": { 1076 | "version": "2.0.1", 1077 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", 1078 | "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", 1079 | "dev": true, 1080 | "requires": { 1081 | "@types/yauzl": "^2.9.1", 1082 | "debug": "^4.1.1", 1083 | "get-stream": "^5.1.0", 1084 | "yauzl": "^2.10.0" 1085 | } 1086 | }, 1087 | "extsprintf": { 1088 | "version": "1.3.0", 1089 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 1090 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", 1091 | "dev": true 1092 | }, 1093 | "fd-slicer": { 1094 | "version": "1.1.0", 1095 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", 1096 | "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", 1097 | "dev": true, 1098 | "requires": { 1099 | "pend": "~1.2.0" 1100 | } 1101 | }, 1102 | "figures": { 1103 | "version": "3.2.0", 1104 | "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", 1105 | "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", 1106 | "dev": true, 1107 | "requires": { 1108 | "escape-string-regexp": "^1.0.5" 1109 | } 1110 | }, 1111 | "fill-range": { 1112 | "version": "7.0.1", 1113 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1114 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1115 | "dev": true, 1116 | "requires": { 1117 | "to-regex-range": "^5.0.1" 1118 | } 1119 | }, 1120 | "find-up": { 1121 | "version": "4.1.0", 1122 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 1123 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 1124 | "dev": true, 1125 | "requires": { 1126 | "locate-path": "^5.0.0", 1127 | "path-exists": "^4.0.0" 1128 | } 1129 | }, 1130 | "follow-redirects": { 1131 | "version": "1.14.8", 1132 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", 1133 | "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", 1134 | "dev": true 1135 | }, 1136 | "forever-agent": { 1137 | "version": "0.6.1", 1138 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 1139 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", 1140 | "dev": true 1141 | }, 1142 | "form-data": { 1143 | "version": "2.3.3", 1144 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 1145 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 1146 | "dev": true, 1147 | "requires": { 1148 | "asynckit": "^0.4.0", 1149 | "combined-stream": "^1.0.6", 1150 | "mime-types": "^2.1.12" 1151 | } 1152 | }, 1153 | "from": { 1154 | "version": "0.1.7", 1155 | "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", 1156 | "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", 1157 | "dev": true 1158 | }, 1159 | "fs-extra": { 1160 | "version": "9.1.0", 1161 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", 1162 | "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", 1163 | "dev": true, 1164 | "requires": { 1165 | "at-least-node": "^1.0.0", 1166 | "graceful-fs": "^4.2.0", 1167 | "jsonfile": "^6.0.1", 1168 | "universalify": "^2.0.0" 1169 | } 1170 | }, 1171 | "fs.realpath": { 1172 | "version": "1.0.0", 1173 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1174 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1175 | "dev": true 1176 | }, 1177 | "fsevents": { 1178 | "version": "2.3.2", 1179 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1180 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1181 | "dev": true, 1182 | "optional": true 1183 | }, 1184 | "get-caller-file": { 1185 | "version": "2.0.5", 1186 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 1187 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", 1188 | "dev": true 1189 | }, 1190 | "get-stream": { 1191 | "version": "5.2.0", 1192 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", 1193 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", 1194 | "dev": true, 1195 | "requires": { 1196 | "pump": "^3.0.0" 1197 | } 1198 | }, 1199 | "getos": { 1200 | "version": "3.2.1", 1201 | "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", 1202 | "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", 1203 | "dev": true, 1204 | "requires": { 1205 | "async": "^3.2.0" 1206 | } 1207 | }, 1208 | "getpass": { 1209 | "version": "0.1.7", 1210 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1211 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1212 | "dev": true, 1213 | "requires": { 1214 | "assert-plus": "^1.0.0" 1215 | } 1216 | }, 1217 | "glob": { 1218 | "version": "7.1.6", 1219 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 1220 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 1221 | "dev": true, 1222 | "requires": { 1223 | "fs.realpath": "^1.0.0", 1224 | "inflight": "^1.0.4", 1225 | "inherits": "2", 1226 | "minimatch": "^3.0.4", 1227 | "once": "^1.3.0", 1228 | "path-is-absolute": "^1.0.0" 1229 | } 1230 | }, 1231 | "glob-parent": { 1232 | "version": "5.1.2", 1233 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1234 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1235 | "dev": true, 1236 | "requires": { 1237 | "is-glob": "^4.0.1" 1238 | } 1239 | }, 1240 | "global-dirs": { 1241 | "version": "3.0.0", 1242 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", 1243 | "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", 1244 | "dev": true, 1245 | "requires": { 1246 | "ini": "2.0.0" 1247 | } 1248 | }, 1249 | "got": { 1250 | "version": "9.6.0", 1251 | "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", 1252 | "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", 1253 | "dev": true, 1254 | "requires": { 1255 | "@sindresorhus/is": "^0.14.0", 1256 | "@szmarczak/http-timer": "^1.1.2", 1257 | "cacheable-request": "^6.0.0", 1258 | "decompress-response": "^3.3.0", 1259 | "duplexer3": "^0.1.4", 1260 | "get-stream": "^4.1.0", 1261 | "lowercase-keys": "^1.0.1", 1262 | "mimic-response": "^1.0.1", 1263 | "p-cancelable": "^1.0.0", 1264 | "to-readable-stream": "^1.0.0", 1265 | "url-parse-lax": "^3.0.0" 1266 | }, 1267 | "dependencies": { 1268 | "get-stream": { 1269 | "version": "4.1.0", 1270 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 1271 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 1272 | "dev": true, 1273 | "requires": { 1274 | "pump": "^3.0.0" 1275 | } 1276 | } 1277 | } 1278 | }, 1279 | "graceful-fs": { 1280 | "version": "4.2.8", 1281 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", 1282 | "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", 1283 | "dev": true 1284 | }, 1285 | "has-flag": { 1286 | "version": "3.0.0", 1287 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1288 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 1289 | "dev": true 1290 | }, 1291 | "has-yarn": { 1292 | "version": "2.1.0", 1293 | "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", 1294 | "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", 1295 | "dev": true 1296 | }, 1297 | "http-cache-semantics": { 1298 | "version": "4.1.1", 1299 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", 1300 | "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", 1301 | "dev": true 1302 | }, 1303 | "http-signature": { 1304 | "version": "1.3.6", 1305 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", 1306 | "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", 1307 | "dev": true, 1308 | "requires": { 1309 | "assert-plus": "^1.0.0", 1310 | "jsprim": "^2.0.2", 1311 | "sshpk": "^1.14.1" 1312 | } 1313 | }, 1314 | "human-signals": { 1315 | "version": "1.1.1", 1316 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", 1317 | "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", 1318 | "dev": true 1319 | }, 1320 | "husky": { 1321 | "version": "5.1.1", 1322 | "resolved": "https://registry.npmjs.org/husky/-/husky-5.1.1.tgz", 1323 | "integrity": "sha512-80LZ736V0Nr4/st0c2COYaMbEQhHNmAbLMN8J/kLk7/mo0QdUkUGNDjv/7jVkhug377Wh8wfbWyaVXEJ/h2B/Q==", 1324 | "dev": true 1325 | }, 1326 | "ieee754": { 1327 | "version": "1.2.1", 1328 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 1329 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 1330 | "dev": true 1331 | }, 1332 | "ignore": { 1333 | "version": "5.1.8", 1334 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", 1335 | "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", 1336 | "dev": true 1337 | }, 1338 | "ignore-by-default": { 1339 | "version": "1.0.1", 1340 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", 1341 | "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", 1342 | "dev": true 1343 | }, 1344 | "import-lazy": { 1345 | "version": "2.1.0", 1346 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", 1347 | "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", 1348 | "dev": true 1349 | }, 1350 | "imurmurhash": { 1351 | "version": "0.1.4", 1352 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1353 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 1354 | "dev": true 1355 | }, 1356 | "indent-string": { 1357 | "version": "4.0.0", 1358 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", 1359 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", 1360 | "dev": true 1361 | }, 1362 | "inflight": { 1363 | "version": "1.0.6", 1364 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1365 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1366 | "dev": true, 1367 | "requires": { 1368 | "once": "^1.3.0", 1369 | "wrappy": "1" 1370 | } 1371 | }, 1372 | "inherits": { 1373 | "version": "2.0.4", 1374 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1375 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1376 | "dev": true 1377 | }, 1378 | "ini": { 1379 | "version": "2.0.0", 1380 | "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", 1381 | "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", 1382 | "dev": true 1383 | }, 1384 | "is-binary-path": { 1385 | "version": "2.1.0", 1386 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 1387 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1388 | "dev": true, 1389 | "requires": { 1390 | "binary-extensions": "^2.0.0" 1391 | } 1392 | }, 1393 | "is-ci": { 1394 | "version": "3.0.1", 1395 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", 1396 | "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", 1397 | "dev": true, 1398 | "requires": { 1399 | "ci-info": "^3.2.0" 1400 | } 1401 | }, 1402 | "is-extglob": { 1403 | "version": "2.1.1", 1404 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1405 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1406 | "dev": true 1407 | }, 1408 | "is-fullwidth-code-point": { 1409 | "version": "3.0.0", 1410 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1411 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 1412 | "dev": true 1413 | }, 1414 | "is-glob": { 1415 | "version": "4.0.3", 1416 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1417 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1418 | "dev": true, 1419 | "requires": { 1420 | "is-extglob": "^2.1.1" 1421 | } 1422 | }, 1423 | "is-installed-globally": { 1424 | "version": "0.4.0", 1425 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", 1426 | "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", 1427 | "dev": true, 1428 | "requires": { 1429 | "global-dirs": "^3.0.0", 1430 | "is-path-inside": "^3.0.2" 1431 | } 1432 | }, 1433 | "is-npm": { 1434 | "version": "5.0.0", 1435 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", 1436 | "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", 1437 | "dev": true 1438 | }, 1439 | "is-number": { 1440 | "version": "7.0.0", 1441 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1442 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1443 | "dev": true 1444 | }, 1445 | "is-obj": { 1446 | "version": "2.0.0", 1447 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", 1448 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", 1449 | "dev": true 1450 | }, 1451 | "is-path-inside": { 1452 | "version": "3.0.3", 1453 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", 1454 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", 1455 | "dev": true 1456 | }, 1457 | "is-stream": { 1458 | "version": "2.0.0", 1459 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", 1460 | "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", 1461 | "dev": true 1462 | }, 1463 | "is-typedarray": { 1464 | "version": "1.0.0", 1465 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1466 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 1467 | "dev": true 1468 | }, 1469 | "is-unicode-supported": { 1470 | "version": "0.1.0", 1471 | "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", 1472 | "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", 1473 | "dev": true 1474 | }, 1475 | "is-yarn-global": { 1476 | "version": "0.3.0", 1477 | "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", 1478 | "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", 1479 | "dev": true 1480 | }, 1481 | "isexe": { 1482 | "version": "2.0.0", 1483 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1484 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1485 | "dev": true 1486 | }, 1487 | "isstream": { 1488 | "version": "0.1.2", 1489 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 1490 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", 1491 | "dev": true 1492 | }, 1493 | "joi": { 1494 | "version": "17.5.0", 1495 | "resolved": "https://registry.npmjs.org/joi/-/joi-17.5.0.tgz", 1496 | "integrity": "sha512-R7hR50COp7StzLnDi4ywOXHrBrgNXuUUfJWIR5lPY5Bm/pOD3jZaTwpluUXVLRWcoWZxkrHBBJ5hLxgnlehbdw==", 1497 | "dev": true, 1498 | "requires": { 1499 | "@hapi/hoek": "^9.0.0", 1500 | "@hapi/topo": "^5.0.0", 1501 | "@sideway/address": "^4.1.3", 1502 | "@sideway/formula": "^3.0.0", 1503 | "@sideway/pinpoint": "^2.0.0" 1504 | } 1505 | }, 1506 | "js-tokens": { 1507 | "version": "4.0.0", 1508 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1509 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 1510 | "dev": true 1511 | }, 1512 | "jsbn": { 1513 | "version": "0.1.1", 1514 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 1515 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 1516 | "dev": true 1517 | }, 1518 | "json-buffer": { 1519 | "version": "3.0.0", 1520 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", 1521 | "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", 1522 | "dev": true 1523 | }, 1524 | "json-schema": { 1525 | "version": "0.4.0", 1526 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", 1527 | "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", 1528 | "dev": true 1529 | }, 1530 | "json-stringify-safe": { 1531 | "version": "5.0.1", 1532 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 1533 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 1534 | "dev": true 1535 | }, 1536 | "jsonfile": { 1537 | "version": "6.1.0", 1538 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", 1539 | "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", 1540 | "dev": true, 1541 | "requires": { 1542 | "graceful-fs": "^4.1.6", 1543 | "universalify": "^2.0.0" 1544 | } 1545 | }, 1546 | "jsprim": { 1547 | "version": "2.0.2", 1548 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", 1549 | "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", 1550 | "dev": true, 1551 | "requires": { 1552 | "assert-plus": "1.0.0", 1553 | "extsprintf": "1.3.0", 1554 | "json-schema": "0.4.0", 1555 | "verror": "1.10.0" 1556 | } 1557 | }, 1558 | "keyv": { 1559 | "version": "3.1.0", 1560 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", 1561 | "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", 1562 | "dev": true, 1563 | "requires": { 1564 | "json-buffer": "3.0.0" 1565 | } 1566 | }, 1567 | "latest-version": { 1568 | "version": "5.1.0", 1569 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", 1570 | "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", 1571 | "dev": true, 1572 | "requires": { 1573 | "package-json": "^6.3.0" 1574 | } 1575 | }, 1576 | "lazy-ass": { 1577 | "version": "1.6.0", 1578 | "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", 1579 | "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=", 1580 | "dev": true 1581 | }, 1582 | "lines-and-columns": { 1583 | "version": "1.1.6", 1584 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", 1585 | "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", 1586 | "dev": true 1587 | }, 1588 | "listr2": { 1589 | "version": "3.14.0", 1590 | "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", 1591 | "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", 1592 | "dev": true, 1593 | "requires": { 1594 | "cli-truncate": "^2.1.0", 1595 | "colorette": "^2.0.16", 1596 | "log-update": "^4.0.0", 1597 | "p-map": "^4.0.0", 1598 | "rfdc": "^1.3.0", 1599 | "rxjs": "^7.5.1", 1600 | "through": "^2.3.8", 1601 | "wrap-ansi": "^7.0.0" 1602 | }, 1603 | "dependencies": { 1604 | "colorette": { 1605 | "version": "2.0.16", 1606 | "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", 1607 | "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", 1608 | "dev": true 1609 | }, 1610 | "wrap-ansi": { 1611 | "version": "7.0.0", 1612 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 1613 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 1614 | "dev": true, 1615 | "requires": { 1616 | "ansi-styles": "^4.0.0", 1617 | "string-width": "^4.1.0", 1618 | "strip-ansi": "^6.0.0" 1619 | } 1620 | } 1621 | } 1622 | }, 1623 | "locate-path": { 1624 | "version": "5.0.0", 1625 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 1626 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 1627 | "dev": true, 1628 | "requires": { 1629 | "p-locate": "^4.1.0" 1630 | } 1631 | }, 1632 | "lodash": { 1633 | "version": "4.17.21", 1634 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 1635 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 1636 | "dev": true 1637 | }, 1638 | "lodash.once": { 1639 | "version": "4.1.1", 1640 | "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", 1641 | "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", 1642 | "dev": true 1643 | }, 1644 | "log-symbols": { 1645 | "version": "4.1.0", 1646 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", 1647 | "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", 1648 | "dev": true, 1649 | "requires": { 1650 | "chalk": "^4.1.0", 1651 | "is-unicode-supported": "^0.1.0" 1652 | }, 1653 | "dependencies": { 1654 | "chalk": { 1655 | "version": "4.1.2", 1656 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 1657 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 1658 | "dev": true, 1659 | "requires": { 1660 | "ansi-styles": "^4.1.0", 1661 | "supports-color": "^7.1.0" 1662 | } 1663 | }, 1664 | "has-flag": { 1665 | "version": "4.0.0", 1666 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1667 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1668 | "dev": true 1669 | }, 1670 | "supports-color": { 1671 | "version": "7.2.0", 1672 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1673 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1674 | "dev": true, 1675 | "requires": { 1676 | "has-flag": "^4.0.0" 1677 | } 1678 | } 1679 | } 1680 | }, 1681 | "log-update": { 1682 | "version": "4.0.0", 1683 | "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", 1684 | "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", 1685 | "dev": true, 1686 | "requires": { 1687 | "ansi-escapes": "^4.3.0", 1688 | "cli-cursor": "^3.1.0", 1689 | "slice-ansi": "^4.0.0", 1690 | "wrap-ansi": "^6.2.0" 1691 | }, 1692 | "dependencies": { 1693 | "slice-ansi": { 1694 | "version": "4.0.0", 1695 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", 1696 | "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", 1697 | "dev": true, 1698 | "requires": { 1699 | "ansi-styles": "^4.0.0", 1700 | "astral-regex": "^2.0.0", 1701 | "is-fullwidth-code-point": "^3.0.0" 1702 | } 1703 | } 1704 | } 1705 | }, 1706 | "loose-envify": { 1707 | "version": "1.4.0", 1708 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1709 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1710 | "dev": true, 1711 | "requires": { 1712 | "js-tokens": "^3.0.0 || ^4.0.0" 1713 | } 1714 | }, 1715 | "lowercase-keys": { 1716 | "version": "1.0.1", 1717 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", 1718 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", 1719 | "dev": true 1720 | }, 1721 | "lru-cache": { 1722 | "version": "6.0.0", 1723 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", 1724 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", 1725 | "dev": true, 1726 | "requires": { 1727 | "yallist": "^4.0.0" 1728 | } 1729 | }, 1730 | "make-dir": { 1731 | "version": "3.1.0", 1732 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", 1733 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", 1734 | "dev": true, 1735 | "requires": { 1736 | "semver": "^6.0.0" 1737 | }, 1738 | "dependencies": { 1739 | "semver": { 1740 | "version": "6.3.0", 1741 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1742 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1743 | "dev": true 1744 | } 1745 | } 1746 | }, 1747 | "map-stream": { 1748 | "version": "0.1.0", 1749 | "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", 1750 | "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", 1751 | "dev": true 1752 | }, 1753 | "merge-stream": { 1754 | "version": "2.0.0", 1755 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 1756 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 1757 | "dev": true 1758 | }, 1759 | "mime-db": { 1760 | "version": "1.51.0", 1761 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", 1762 | "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", 1763 | "dev": true 1764 | }, 1765 | "mime-types": { 1766 | "version": "2.1.34", 1767 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", 1768 | "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", 1769 | "dev": true, 1770 | "requires": { 1771 | "mime-db": "1.51.0" 1772 | } 1773 | }, 1774 | "mimic-fn": { 1775 | "version": "2.1.0", 1776 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 1777 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 1778 | "dev": true 1779 | }, 1780 | "mimic-response": { 1781 | "version": "1.0.1", 1782 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", 1783 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", 1784 | "dev": true 1785 | }, 1786 | "minimatch": { 1787 | "version": "3.1.2", 1788 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1789 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1790 | "dev": true, 1791 | "requires": { 1792 | "brace-expansion": "^1.1.7" 1793 | } 1794 | }, 1795 | "minimist": { 1796 | "version": "1.2.6", 1797 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 1798 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 1799 | "dev": true 1800 | }, 1801 | "mri": { 1802 | "version": "1.1.6", 1803 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz", 1804 | "integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==", 1805 | "dev": true 1806 | }, 1807 | "ms": { 1808 | "version": "2.1.2", 1809 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1810 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1811 | "dev": true 1812 | }, 1813 | "multimatch": { 1814 | "version": "4.0.0", 1815 | "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", 1816 | "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", 1817 | "dev": true, 1818 | "requires": { 1819 | "@types/minimatch": "^3.0.3", 1820 | "array-differ": "^3.0.0", 1821 | "array-union": "^2.1.0", 1822 | "arrify": "^2.0.1", 1823 | "minimatch": "^3.0.4" 1824 | } 1825 | }, 1826 | "mz": { 1827 | "version": "2.7.0", 1828 | "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", 1829 | "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", 1830 | "dev": true, 1831 | "requires": { 1832 | "any-promise": "^1.0.0", 1833 | "object-assign": "^4.0.1", 1834 | "thenify-all": "^1.0.0" 1835 | } 1836 | }, 1837 | "nanoid": { 1838 | "version": "3.2.0", 1839 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", 1840 | "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", 1841 | "dev": true 1842 | }, 1843 | "next": { 1844 | "version": "12.1.0", 1845 | "resolved": "https://registry.npmjs.org/next/-/next-12.1.0.tgz", 1846 | "integrity": "sha512-s885kWvnIlxsUFHq9UGyIyLiuD0G3BUC/xrH0CEnH5lHEWkwQcHOORgbDF0hbrW9vr/7am4ETfX4A7M6DjrE7Q==", 1847 | "dev": true, 1848 | "requires": { 1849 | "@next/env": "12.1.0", 1850 | "@next/swc-android-arm64": "12.1.0", 1851 | "@next/swc-darwin-arm64": "12.1.0", 1852 | "@next/swc-darwin-x64": "12.1.0", 1853 | "@next/swc-linux-arm-gnueabihf": "12.1.0", 1854 | "@next/swc-linux-arm64-gnu": "12.1.0", 1855 | "@next/swc-linux-arm64-musl": "12.1.0", 1856 | "@next/swc-linux-x64-gnu": "12.1.0", 1857 | "@next/swc-linux-x64-musl": "12.1.0", 1858 | "@next/swc-win32-arm64-msvc": "12.1.0", 1859 | "@next/swc-win32-ia32-msvc": "12.1.0", 1860 | "@next/swc-win32-x64-msvc": "12.1.0", 1861 | "caniuse-lite": "^1.0.30001283", 1862 | "postcss": "8.4.5", 1863 | "styled-jsx": "5.0.0", 1864 | "use-subscription": "1.5.1" 1865 | } 1866 | }, 1867 | "node-modules-regexp": { 1868 | "version": "1.0.0", 1869 | "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", 1870 | "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", 1871 | "dev": true 1872 | }, 1873 | "nodemon": { 1874 | "version": "2.0.16", 1875 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz", 1876 | "integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==", 1877 | "dev": true, 1878 | "requires": { 1879 | "chokidar": "^3.5.2", 1880 | "debug": "^3.2.7", 1881 | "ignore-by-default": "^1.0.1", 1882 | "minimatch": "^3.0.4", 1883 | "pstree.remy": "^1.1.8", 1884 | "semver": "^5.7.1", 1885 | "supports-color": "^5.5.0", 1886 | "touch": "^3.1.0", 1887 | "undefsafe": "^2.0.5", 1888 | "update-notifier": "^5.1.0" 1889 | }, 1890 | "dependencies": { 1891 | "debug": { 1892 | "version": "3.2.7", 1893 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 1894 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 1895 | "dev": true, 1896 | "requires": { 1897 | "ms": "^2.1.1" 1898 | } 1899 | } 1900 | } 1901 | }, 1902 | "nopt": { 1903 | "version": "1.0.10", 1904 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", 1905 | "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", 1906 | "dev": true, 1907 | "requires": { 1908 | "abbrev": "1" 1909 | } 1910 | }, 1911 | "normalize-path": { 1912 | "version": "3.0.0", 1913 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1914 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1915 | "dev": true 1916 | }, 1917 | "normalize-url": { 1918 | "version": "4.5.1", 1919 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", 1920 | "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", 1921 | "dev": true 1922 | }, 1923 | "npm-run-path": { 1924 | "version": "4.0.1", 1925 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 1926 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 1927 | "dev": true, 1928 | "requires": { 1929 | "path-key": "^3.0.0" 1930 | } 1931 | }, 1932 | "object-assign": { 1933 | "version": "4.1.1", 1934 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1935 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 1936 | "dev": true 1937 | }, 1938 | "once": { 1939 | "version": "1.4.0", 1940 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1941 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1942 | "dev": true, 1943 | "requires": { 1944 | "wrappy": "1" 1945 | } 1946 | }, 1947 | "onetime": { 1948 | "version": "5.1.2", 1949 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 1950 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 1951 | "dev": true, 1952 | "requires": { 1953 | "mimic-fn": "^2.1.0" 1954 | } 1955 | }, 1956 | "ospath": { 1957 | "version": "1.2.2", 1958 | "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", 1959 | "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", 1960 | "dev": true 1961 | }, 1962 | "p-cancelable": { 1963 | "version": "1.1.0", 1964 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", 1965 | "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", 1966 | "dev": true 1967 | }, 1968 | "p-limit": { 1969 | "version": "2.3.0", 1970 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 1971 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1972 | "dev": true, 1973 | "requires": { 1974 | "p-try": "^2.0.0" 1975 | } 1976 | }, 1977 | "p-locate": { 1978 | "version": "4.1.0", 1979 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 1980 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 1981 | "dev": true, 1982 | "requires": { 1983 | "p-limit": "^2.2.0" 1984 | } 1985 | }, 1986 | "p-map": { 1987 | "version": "4.0.0", 1988 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", 1989 | "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", 1990 | "dev": true, 1991 | "requires": { 1992 | "aggregate-error": "^3.0.0" 1993 | } 1994 | }, 1995 | "p-try": { 1996 | "version": "2.2.0", 1997 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 1998 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 1999 | "dev": true 2000 | }, 2001 | "package-json": { 2002 | "version": "6.5.0", 2003 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", 2004 | "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", 2005 | "dev": true, 2006 | "requires": { 2007 | "got": "^9.6.0", 2008 | "registry-auth-token": "^4.0.0", 2009 | "registry-url": "^5.0.0", 2010 | "semver": "^6.2.0" 2011 | }, 2012 | "dependencies": { 2013 | "semver": { 2014 | "version": "6.3.0", 2015 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 2016 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 2017 | "dev": true 2018 | } 2019 | } 2020 | }, 2021 | "path-exists": { 2022 | "version": "4.0.0", 2023 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 2024 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 2025 | "dev": true 2026 | }, 2027 | "path-is-absolute": { 2028 | "version": "1.0.1", 2029 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2030 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 2031 | "dev": true 2032 | }, 2033 | "path-key": { 2034 | "version": "3.1.1", 2035 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 2036 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 2037 | "dev": true 2038 | }, 2039 | "pause-stream": { 2040 | "version": "0.0.11", 2041 | "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", 2042 | "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", 2043 | "dev": true, 2044 | "requires": { 2045 | "through": "~2.3" 2046 | } 2047 | }, 2048 | "pend": { 2049 | "version": "1.2.0", 2050 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 2051 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", 2052 | "dev": true 2053 | }, 2054 | "performance-now": { 2055 | "version": "2.1.0", 2056 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 2057 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", 2058 | "dev": true 2059 | }, 2060 | "picocolors": { 2061 | "version": "1.0.0", 2062 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 2063 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 2064 | "dev": true 2065 | }, 2066 | "picomatch": { 2067 | "version": "2.3.1", 2068 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 2069 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 2070 | "dev": true 2071 | }, 2072 | "pify": { 2073 | "version": "2.3.0", 2074 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 2075 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", 2076 | "dev": true 2077 | }, 2078 | "pirates": { 2079 | "version": "4.0.1", 2080 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", 2081 | "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", 2082 | "dev": true, 2083 | "requires": { 2084 | "node-modules-regexp": "^1.0.0" 2085 | } 2086 | }, 2087 | "postcss": { 2088 | "version": "8.4.5", 2089 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", 2090 | "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", 2091 | "dev": true, 2092 | "requires": { 2093 | "nanoid": "^3.1.30", 2094 | "picocolors": "^1.0.0", 2095 | "source-map-js": "^1.0.1" 2096 | } 2097 | }, 2098 | "prepend-http": { 2099 | "version": "2.0.0", 2100 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", 2101 | "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", 2102 | "dev": true 2103 | }, 2104 | "prettier": { 2105 | "version": "2.2.1", 2106 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", 2107 | "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", 2108 | "dev": true 2109 | }, 2110 | "pretty-bytes": { 2111 | "version": "5.6.0", 2112 | "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", 2113 | "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", 2114 | "dev": true 2115 | }, 2116 | "pretty-quick": { 2117 | "version": "3.1.0", 2118 | "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-3.1.0.tgz", 2119 | "integrity": "sha512-DtxIxksaUWCgPFN7E1ZZk4+Aav3CCuRdhrDSFZENb404sYMtuo9Zka823F+Mgeyt8Zt3bUiCjFzzWYE9LYqkmQ==", 2120 | "dev": true, 2121 | "requires": { 2122 | "chalk": "^3.0.0", 2123 | "execa": "^4.0.0", 2124 | "find-up": "^4.1.0", 2125 | "ignore": "^5.1.4", 2126 | "mri": "^1.1.5", 2127 | "multimatch": "^4.0.0" 2128 | }, 2129 | "dependencies": { 2130 | "chalk": { 2131 | "version": "3.0.0", 2132 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", 2133 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", 2134 | "dev": true, 2135 | "requires": { 2136 | "ansi-styles": "^4.1.0", 2137 | "supports-color": "^7.1.0" 2138 | } 2139 | }, 2140 | "has-flag": { 2141 | "version": "4.0.0", 2142 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2143 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2144 | "dev": true 2145 | }, 2146 | "supports-color": { 2147 | "version": "7.2.0", 2148 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 2149 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 2150 | "dev": true, 2151 | "requires": { 2152 | "has-flag": "^4.0.0" 2153 | } 2154 | } 2155 | } 2156 | }, 2157 | "proxy-from-env": { 2158 | "version": "1.0.0", 2159 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", 2160 | "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", 2161 | "dev": true 2162 | }, 2163 | "ps-tree": { 2164 | "version": "1.2.0", 2165 | "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", 2166 | "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", 2167 | "dev": true, 2168 | "requires": { 2169 | "event-stream": "=3.3.4" 2170 | } 2171 | }, 2172 | "psl": { 2173 | "version": "1.8.0", 2174 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", 2175 | "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", 2176 | "dev": true 2177 | }, 2178 | "pstree.remy": { 2179 | "version": "1.1.8", 2180 | "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", 2181 | "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", 2182 | "dev": true 2183 | }, 2184 | "pump": { 2185 | "version": "3.0.0", 2186 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 2187 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 2188 | "dev": true, 2189 | "requires": { 2190 | "end-of-stream": "^1.1.0", 2191 | "once": "^1.3.1" 2192 | } 2193 | }, 2194 | "punycode": { 2195 | "version": "2.1.1", 2196 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 2197 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 2198 | "dev": true 2199 | }, 2200 | "pupa": { 2201 | "version": "2.1.1", 2202 | "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", 2203 | "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", 2204 | "dev": true, 2205 | "requires": { 2206 | "escape-goat": "^2.0.0" 2207 | } 2208 | }, 2209 | "qs": { 2210 | "version": "6.5.3", 2211 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", 2212 | "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", 2213 | "dev": true 2214 | }, 2215 | "rc": { 2216 | "version": "1.2.8", 2217 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", 2218 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", 2219 | "dev": true, 2220 | "requires": { 2221 | "deep-extend": "^0.6.0", 2222 | "ini": "~1.3.0", 2223 | "minimist": "^1.2.0", 2224 | "strip-json-comments": "~2.0.1" 2225 | }, 2226 | "dependencies": { 2227 | "ini": { 2228 | "version": "1.3.8", 2229 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", 2230 | "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", 2231 | "dev": true 2232 | } 2233 | } 2234 | }, 2235 | "react": { 2236 | "version": "17.0.2", 2237 | "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", 2238 | "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", 2239 | "dev": true, 2240 | "requires": { 2241 | "loose-envify": "^1.1.0", 2242 | "object-assign": "^4.1.1" 2243 | } 2244 | }, 2245 | "readdirp": { 2246 | "version": "3.6.0", 2247 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 2248 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 2249 | "dev": true, 2250 | "requires": { 2251 | "picomatch": "^2.2.1" 2252 | } 2253 | }, 2254 | "registry-auth-token": { 2255 | "version": "4.2.1", 2256 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", 2257 | "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", 2258 | "dev": true, 2259 | "requires": { 2260 | "rc": "^1.2.8" 2261 | } 2262 | }, 2263 | "registry-url": { 2264 | "version": "5.1.0", 2265 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", 2266 | "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", 2267 | "dev": true, 2268 | "requires": { 2269 | "rc": "^1.2.8" 2270 | } 2271 | }, 2272 | "request-progress": { 2273 | "version": "3.0.0", 2274 | "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", 2275 | "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=", 2276 | "dev": true, 2277 | "requires": { 2278 | "throttleit": "^1.0.0" 2279 | } 2280 | }, 2281 | "require-directory": { 2282 | "version": "2.1.1", 2283 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 2284 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", 2285 | "dev": true 2286 | }, 2287 | "require-main-filename": { 2288 | "version": "2.0.0", 2289 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 2290 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", 2291 | "dev": true 2292 | }, 2293 | "responselike": { 2294 | "version": "1.0.2", 2295 | "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", 2296 | "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", 2297 | "dev": true, 2298 | "requires": { 2299 | "lowercase-keys": "^1.0.0" 2300 | } 2301 | }, 2302 | "restore-cursor": { 2303 | "version": "3.1.0", 2304 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", 2305 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", 2306 | "dev": true, 2307 | "requires": { 2308 | "onetime": "^5.1.0", 2309 | "signal-exit": "^3.0.2" 2310 | } 2311 | }, 2312 | "rfdc": { 2313 | "version": "1.3.0", 2314 | "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", 2315 | "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", 2316 | "dev": true 2317 | }, 2318 | "rimraf": { 2319 | "version": "3.0.2", 2320 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", 2321 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", 2322 | "dev": true, 2323 | "requires": { 2324 | "glob": "^7.1.3" 2325 | } 2326 | }, 2327 | "rxjs": { 2328 | "version": "7.5.2", 2329 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz", 2330 | "integrity": "sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==", 2331 | "dev": true, 2332 | "requires": { 2333 | "tslib": "^2.1.0" 2334 | } 2335 | }, 2336 | "safe-buffer": { 2337 | "version": "5.2.1", 2338 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 2339 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 2340 | "dev": true 2341 | }, 2342 | "safer-buffer": { 2343 | "version": "2.1.2", 2344 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 2345 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 2346 | "dev": true 2347 | }, 2348 | "semver": { 2349 | "version": "5.7.1", 2350 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 2351 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 2352 | "dev": true 2353 | }, 2354 | "semver-diff": { 2355 | "version": "3.1.1", 2356 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", 2357 | "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", 2358 | "dev": true, 2359 | "requires": { 2360 | "semver": "^6.3.0" 2361 | }, 2362 | "dependencies": { 2363 | "semver": { 2364 | "version": "6.3.0", 2365 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 2366 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 2367 | "dev": true 2368 | } 2369 | } 2370 | }, 2371 | "set-blocking": { 2372 | "version": "2.0.0", 2373 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 2374 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", 2375 | "dev": true 2376 | }, 2377 | "shebang-command": { 2378 | "version": "2.0.0", 2379 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 2380 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 2381 | "dev": true, 2382 | "requires": { 2383 | "shebang-regex": "^3.0.0" 2384 | } 2385 | }, 2386 | "shebang-regex": { 2387 | "version": "3.0.0", 2388 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 2389 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 2390 | "dev": true 2391 | }, 2392 | "signal-exit": { 2393 | "version": "3.0.3", 2394 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 2395 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", 2396 | "dev": true 2397 | }, 2398 | "slice-ansi": { 2399 | "version": "3.0.0", 2400 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", 2401 | "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", 2402 | "dev": true, 2403 | "requires": { 2404 | "ansi-styles": "^4.0.0", 2405 | "astral-regex": "^2.0.0", 2406 | "is-fullwidth-code-point": "^3.0.0" 2407 | } 2408 | }, 2409 | "source-map-js": { 2410 | "version": "1.0.2", 2411 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 2412 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 2413 | "dev": true 2414 | }, 2415 | "split": { 2416 | "version": "0.3.3", 2417 | "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", 2418 | "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", 2419 | "dev": true, 2420 | "requires": { 2421 | "through": "2" 2422 | } 2423 | }, 2424 | "sshpk": { 2425 | "version": "1.17.0", 2426 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", 2427 | "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", 2428 | "dev": true, 2429 | "requires": { 2430 | "asn1": "~0.2.3", 2431 | "assert-plus": "^1.0.0", 2432 | "bcrypt-pbkdf": "^1.0.0", 2433 | "dashdash": "^1.12.0", 2434 | "ecc-jsbn": "~0.1.1", 2435 | "getpass": "^0.1.1", 2436 | "jsbn": "~0.1.0", 2437 | "safer-buffer": "^2.0.2", 2438 | "tweetnacl": "~0.14.0" 2439 | } 2440 | }, 2441 | "start-server-and-test": { 2442 | "version": "1.14.0", 2443 | "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-1.14.0.tgz", 2444 | "integrity": "sha512-on5ELuxO2K0t8EmNj9MtVlFqwBMxfWOhu4U7uZD1xccVpFlOQKR93CSe0u98iQzfNxRyaNTb/CdadbNllplTsw==", 2445 | "dev": true, 2446 | "requires": { 2447 | "bluebird": "3.7.2", 2448 | "check-more-types": "2.24.0", 2449 | "debug": "4.3.2", 2450 | "execa": "5.1.1", 2451 | "lazy-ass": "1.6.0", 2452 | "ps-tree": "1.2.0", 2453 | "wait-on": "6.0.0" 2454 | }, 2455 | "dependencies": { 2456 | "debug": { 2457 | "version": "4.3.2", 2458 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", 2459 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", 2460 | "dev": true, 2461 | "requires": { 2462 | "ms": "2.1.2" 2463 | } 2464 | }, 2465 | "execa": { 2466 | "version": "5.1.1", 2467 | "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", 2468 | "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", 2469 | "dev": true, 2470 | "requires": { 2471 | "cross-spawn": "^7.0.3", 2472 | "get-stream": "^6.0.0", 2473 | "human-signals": "^2.1.0", 2474 | "is-stream": "^2.0.0", 2475 | "merge-stream": "^2.0.0", 2476 | "npm-run-path": "^4.0.1", 2477 | "onetime": "^5.1.2", 2478 | "signal-exit": "^3.0.3", 2479 | "strip-final-newline": "^2.0.0" 2480 | } 2481 | }, 2482 | "get-stream": { 2483 | "version": "6.0.1", 2484 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", 2485 | "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", 2486 | "dev": true 2487 | }, 2488 | "human-signals": { 2489 | "version": "2.1.0", 2490 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", 2491 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", 2492 | "dev": true 2493 | } 2494 | } 2495 | }, 2496 | "stream-combiner": { 2497 | "version": "0.0.4", 2498 | "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", 2499 | "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", 2500 | "dev": true, 2501 | "requires": { 2502 | "duplexer": "~0.1.1" 2503 | } 2504 | }, 2505 | "string-width": { 2506 | "version": "4.2.0", 2507 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", 2508 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", 2509 | "dev": true, 2510 | "requires": { 2511 | "emoji-regex": "^8.0.0", 2512 | "is-fullwidth-code-point": "^3.0.0", 2513 | "strip-ansi": "^6.0.0" 2514 | } 2515 | }, 2516 | "strip-ansi": { 2517 | "version": "6.0.0", 2518 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 2519 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 2520 | "dev": true, 2521 | "requires": { 2522 | "ansi-regex": "^5.0.0" 2523 | } 2524 | }, 2525 | "strip-final-newline": { 2526 | "version": "2.0.0", 2527 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 2528 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 2529 | "dev": true 2530 | }, 2531 | "strip-json-comments": { 2532 | "version": "2.0.1", 2533 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 2534 | "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", 2535 | "dev": true 2536 | }, 2537 | "styled-jsx": { 2538 | "version": "5.0.0", 2539 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0.tgz", 2540 | "integrity": "sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA==", 2541 | "dev": true 2542 | }, 2543 | "sucrase": { 2544 | "version": "3.20.3", 2545 | "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.20.3.tgz", 2546 | "integrity": "sha512-azqwq0/Bs6RzLAdb4dXxsCgMtAaD2hzmUr4UhSfsxO46JFPAwMnnb441B/qsudZiS6Ylea3JXZe3Q497lsgXzQ==", 2547 | "dev": true, 2548 | "requires": { 2549 | "commander": "^4.0.0", 2550 | "glob": "7.1.6", 2551 | "lines-and-columns": "^1.1.6", 2552 | "mz": "^2.7.0", 2553 | "pirates": "^4.0.1", 2554 | "ts-interface-checker": "^0.1.9" 2555 | } 2556 | }, 2557 | "supports-color": { 2558 | "version": "5.5.0", 2559 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 2560 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 2561 | "dev": true, 2562 | "requires": { 2563 | "has-flag": "^3.0.0" 2564 | } 2565 | }, 2566 | "thenify": { 2567 | "version": "3.3.1", 2568 | "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", 2569 | "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", 2570 | "dev": true, 2571 | "requires": { 2572 | "any-promise": "^1.0.0" 2573 | } 2574 | }, 2575 | "thenify-all": { 2576 | "version": "1.6.0", 2577 | "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", 2578 | "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", 2579 | "dev": true, 2580 | "requires": { 2581 | "thenify": ">= 3.1.0 < 4" 2582 | } 2583 | }, 2584 | "throttleit": { 2585 | "version": "1.0.0", 2586 | "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", 2587 | "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", 2588 | "dev": true 2589 | }, 2590 | "through": { 2591 | "version": "2.3.8", 2592 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2593 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 2594 | "dev": true 2595 | }, 2596 | "tmp": { 2597 | "version": "0.2.1", 2598 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", 2599 | "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", 2600 | "dev": true, 2601 | "requires": { 2602 | "rimraf": "^3.0.0" 2603 | } 2604 | }, 2605 | "to-readable-stream": { 2606 | "version": "1.0.0", 2607 | "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", 2608 | "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", 2609 | "dev": true 2610 | }, 2611 | "to-regex-range": { 2612 | "version": "5.0.1", 2613 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2614 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2615 | "dev": true, 2616 | "requires": { 2617 | "is-number": "^7.0.0" 2618 | } 2619 | }, 2620 | "touch": { 2621 | "version": "3.1.0", 2622 | "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", 2623 | "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", 2624 | "dev": true, 2625 | "requires": { 2626 | "nopt": "~1.0.10" 2627 | } 2628 | }, 2629 | "tough-cookie": { 2630 | "version": "2.5.0", 2631 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", 2632 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", 2633 | "dev": true, 2634 | "requires": { 2635 | "psl": "^1.1.28", 2636 | "punycode": "^2.1.1" 2637 | } 2638 | }, 2639 | "ts-interface-checker": { 2640 | "version": "0.1.13", 2641 | "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", 2642 | "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", 2643 | "dev": true 2644 | }, 2645 | "tslib": { 2646 | "version": "2.3.1", 2647 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", 2648 | "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", 2649 | "dev": true 2650 | }, 2651 | "tunnel-agent": { 2652 | "version": "0.6.0", 2653 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 2654 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 2655 | "dev": true, 2656 | "requires": { 2657 | "safe-buffer": "^5.0.1" 2658 | } 2659 | }, 2660 | "tweetnacl": { 2661 | "version": "0.14.5", 2662 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 2663 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 2664 | "dev": true 2665 | }, 2666 | "type-fest": { 2667 | "version": "0.20.2", 2668 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", 2669 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", 2670 | "dev": true 2671 | }, 2672 | "typedarray-to-buffer": { 2673 | "version": "3.1.5", 2674 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", 2675 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", 2676 | "dev": true, 2677 | "requires": { 2678 | "is-typedarray": "^1.0.0" 2679 | } 2680 | }, 2681 | "typescript": { 2682 | "version": "4.2.2", 2683 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.2.tgz", 2684 | "integrity": "sha512-tbb+NVrLfnsJy3M59lsDgrzWIflR4d4TIUjz+heUnHZwdF7YsrMTKoRERiIvI2lvBG95dfpLxB21WZhys1bgaQ==", 2685 | "dev": true 2686 | }, 2687 | "undefsafe": { 2688 | "version": "2.0.5", 2689 | "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", 2690 | "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", 2691 | "dev": true 2692 | }, 2693 | "unique-string": { 2694 | "version": "2.0.0", 2695 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", 2696 | "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", 2697 | "dev": true, 2698 | "requires": { 2699 | "crypto-random-string": "^2.0.0" 2700 | } 2701 | }, 2702 | "universalify": { 2703 | "version": "2.0.0", 2704 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", 2705 | "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", 2706 | "dev": true 2707 | }, 2708 | "untildify": { 2709 | "version": "4.0.0", 2710 | "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", 2711 | "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", 2712 | "dev": true 2713 | }, 2714 | "update-notifier": { 2715 | "version": "5.1.0", 2716 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", 2717 | "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", 2718 | "dev": true, 2719 | "requires": { 2720 | "boxen": "^5.0.0", 2721 | "chalk": "^4.1.0", 2722 | "configstore": "^5.0.1", 2723 | "has-yarn": "^2.1.0", 2724 | "import-lazy": "^2.1.0", 2725 | "is-ci": "^2.0.0", 2726 | "is-installed-globally": "^0.4.0", 2727 | "is-npm": "^5.0.0", 2728 | "is-yarn-global": "^0.3.0", 2729 | "latest-version": "^5.1.0", 2730 | "pupa": "^2.1.1", 2731 | "semver": "^7.3.4", 2732 | "semver-diff": "^3.1.1", 2733 | "xdg-basedir": "^4.0.0" 2734 | }, 2735 | "dependencies": { 2736 | "ci-info": { 2737 | "version": "2.0.0", 2738 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", 2739 | "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", 2740 | "dev": true 2741 | }, 2742 | "is-ci": { 2743 | "version": "2.0.0", 2744 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", 2745 | "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", 2746 | "dev": true, 2747 | "requires": { 2748 | "ci-info": "^2.0.0" 2749 | } 2750 | }, 2751 | "semver": { 2752 | "version": "7.3.7", 2753 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", 2754 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", 2755 | "dev": true, 2756 | "requires": { 2757 | "lru-cache": "^6.0.0" 2758 | } 2759 | } 2760 | } 2761 | }, 2762 | "url": { 2763 | "version": "0.11.0", 2764 | "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", 2765 | "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", 2766 | "dev": true, 2767 | "requires": { 2768 | "punycode": "1.3.2", 2769 | "querystring": "0.2.0" 2770 | }, 2771 | "dependencies": { 2772 | "punycode": { 2773 | "version": "1.3.2", 2774 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", 2775 | "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", 2776 | "dev": true 2777 | }, 2778 | "querystring": { 2779 | "version": "0.2.0", 2780 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", 2781 | "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", 2782 | "dev": true 2783 | } 2784 | } 2785 | }, 2786 | "url-parse-lax": { 2787 | "version": "3.0.0", 2788 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", 2789 | "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", 2790 | "dev": true, 2791 | "requires": { 2792 | "prepend-http": "^2.0.0" 2793 | } 2794 | }, 2795 | "use-subscription": { 2796 | "version": "1.5.1", 2797 | "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", 2798 | "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", 2799 | "dev": true, 2800 | "requires": { 2801 | "object-assign": "^4.1.1" 2802 | } 2803 | }, 2804 | "uuid": { 2805 | "version": "8.3.2", 2806 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", 2807 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", 2808 | "dev": true 2809 | }, 2810 | "verror": { 2811 | "version": "1.10.0", 2812 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 2813 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 2814 | "dev": true, 2815 | "requires": { 2816 | "assert-plus": "^1.0.0", 2817 | "core-util-is": "1.0.2", 2818 | "extsprintf": "^1.2.0" 2819 | }, 2820 | "dependencies": { 2821 | "core-util-is": { 2822 | "version": "1.0.2", 2823 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 2824 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 2825 | "dev": true 2826 | } 2827 | } 2828 | }, 2829 | "wait-on": { 2830 | "version": "6.0.0", 2831 | "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.0.tgz", 2832 | "integrity": "sha512-tnUJr9p5r+bEYXPUdRseolmz5XqJTTj98JgOsfBn7Oz2dxfE2g3zw1jE+Mo8lopM3j3et/Mq1yW7kKX6qw7RVw==", 2833 | "dev": true, 2834 | "requires": { 2835 | "axios": "^0.21.1", 2836 | "joi": "^17.4.0", 2837 | "lodash": "^4.17.21", 2838 | "minimist": "^1.2.5", 2839 | "rxjs": "^7.1.0" 2840 | } 2841 | }, 2842 | "which": { 2843 | "version": "2.0.2", 2844 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 2845 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 2846 | "dev": true, 2847 | "requires": { 2848 | "isexe": "^2.0.0" 2849 | } 2850 | }, 2851 | "which-module": { 2852 | "version": "2.0.0", 2853 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 2854 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", 2855 | "dev": true 2856 | }, 2857 | "widest-line": { 2858 | "version": "3.1.0", 2859 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", 2860 | "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", 2861 | "dev": true, 2862 | "requires": { 2863 | "string-width": "^4.0.0" 2864 | } 2865 | }, 2866 | "wrap-ansi": { 2867 | "version": "6.2.0", 2868 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", 2869 | "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", 2870 | "dev": true, 2871 | "requires": { 2872 | "ansi-styles": "^4.0.0", 2873 | "string-width": "^4.1.0", 2874 | "strip-ansi": "^6.0.0" 2875 | } 2876 | }, 2877 | "wrappy": { 2878 | "version": "1.0.2", 2879 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2880 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2881 | "dev": true 2882 | }, 2883 | "write-file-atomic": { 2884 | "version": "3.0.3", 2885 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", 2886 | "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", 2887 | "dev": true, 2888 | "requires": { 2889 | "imurmurhash": "^0.1.4", 2890 | "is-typedarray": "^1.0.0", 2891 | "signal-exit": "^3.0.2", 2892 | "typedarray-to-buffer": "^3.1.5" 2893 | } 2894 | }, 2895 | "xdg-basedir": { 2896 | "version": "4.0.0", 2897 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", 2898 | "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", 2899 | "dev": true 2900 | }, 2901 | "y18n": { 2902 | "version": "4.0.1", 2903 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", 2904 | "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", 2905 | "dev": true 2906 | }, 2907 | "yallist": { 2908 | "version": "4.0.0", 2909 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", 2910 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", 2911 | "dev": true 2912 | }, 2913 | "yargs": { 2914 | "version": "15.4.1", 2915 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", 2916 | "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", 2917 | "dev": true, 2918 | "requires": { 2919 | "cliui": "^6.0.0", 2920 | "decamelize": "^1.2.0", 2921 | "find-up": "^4.1.0", 2922 | "get-caller-file": "^2.0.1", 2923 | "require-directory": "^2.1.1", 2924 | "require-main-filename": "^2.0.0", 2925 | "set-blocking": "^2.0.0", 2926 | "string-width": "^4.2.0", 2927 | "which-module": "^2.0.0", 2928 | "y18n": "^4.0.0", 2929 | "yargs-parser": "^18.1.2" 2930 | } 2931 | }, 2932 | "yargs-parser": { 2933 | "version": "18.1.3", 2934 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", 2935 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", 2936 | "dev": true, 2937 | "requires": { 2938 | "camelcase": "^5.0.0", 2939 | "decamelize": "^1.2.0" 2940 | } 2941 | }, 2942 | "yauzl": { 2943 | "version": "2.10.0", 2944 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", 2945 | "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", 2946 | "dev": true, 2947 | "requires": { 2948 | "buffer-crc32": "~0.2.3", 2949 | "fd-slicer": "~1.1.0" 2950 | } 2951 | } 2952 | } 2953 | } 2954 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nextjs-redirect", 3 | "description": "Redirect to any URL in NextJS both in client and server", 4 | "version": "6.0.1", 5 | "author": "Pablo Varela ", 6 | "bugs": { 7 | "url": "https://github.com/pablopunk/nextjs-redirect/issues", 8 | "email": "pablo@pablopunk.com" 9 | }, 10 | "contributors": [ 11 | "Pablo Varela " 12 | ], 13 | "peerDependencies": { 14 | "next": "*", 15 | "react": "*" 16 | }, 17 | "devDependencies": { 18 | "@types/cypress": "^1.1.3", 19 | "@types/node": "^14.0.13", 20 | "@types/react": "^16.9.36", 21 | "cypress": "^9.3.1", 22 | "dts-bundle-generator": "^4.3.0", 23 | "husky": "*", 24 | "next": "*", 25 | "nodemon": "^2.0.16", 26 | "prettier": "*", 27 | "pretty-quick": "*", 28 | "react": "*", 29 | "start-server-and-test": "^1.14.0", 30 | "sucrase": "^3.20.3" 31 | }, 32 | "homepage": "https://github.com/pablopunk/nextjs-redirect", 33 | "keywords": [ 34 | "nextjs", 35 | "redirect", 36 | "zeit", 37 | "vercel", 38 | "react", 39 | "component", 40 | "automatic", 41 | "simple", 42 | "url", 43 | "302" 44 | ], 45 | "license": "MIT", 46 | "husky": { 47 | "hooks": { 48 | "pre-commit": "npm run build && pretty-quick --staged" 49 | } 50 | }, 51 | "prettier": { 52 | "semi": false, 53 | "singleQuote": true, 54 | "tabWidth": 2 55 | }, 56 | "repository": { 57 | "type": "git", 58 | "url": "https://github.com/pablopunk/nextjs-redirect" 59 | }, 60 | "scripts": { 61 | "build": "sucrase src -d dist --transforms imports,typescript,jsx && npm run generate-types", 62 | "dev": "nodemon --watch src/* --exec 'npm run build'", 63 | "generate-types": "dts-bundle-generator -o typings.d.ts src/index.tsx", 64 | "prepare": "npm run build", 65 | "cypress": "cypress open", 66 | "cypress:ci": "cypress run", 67 | "start-test-server": "npm run build && cd cypress/test-server && npm i && npm start", 68 | "start-test-server-dev": "cd cypress/test-server && npm run dev", 69 | "test:dev": "start-server-and-test start-test-server-dev http://localhost:8123 cypress", 70 | "test:ci": "start-server-and-test start-test-server http://localhost:8123 cypress:ci", 71 | "test:static-export": "cd cypress/test-server && npm i && npm run build && npx next export" 72 | }, 73 | "main": "./dist/index.js", 74 | "types": "./typings.d.ts", 75 | "files": [ 76 | "dist/index.js", 77 | "typings.d.ts" 78 | ] 79 | } 80 | -------------------------------------------------------------------------------- /src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import Router from 'next/router' 3 | import Head from 'next/head' 4 | 5 | const PARAMS_ERROR = 6 | "Option {params: true} require the url to be the name of the param to search for: `redirect('to', {params:true})` will work with `/redirect?to=https://example.com`" 7 | 8 | const getParamFromClient = (paramName: string) => { 9 | if (typeof window === 'undefined') { 10 | return '' 11 | } 12 | 13 | const url = new URL(window.location.href) 14 | const paramValue = url.searchParams.get(paramName) 15 | 16 | if (!paramValue) { 17 | throw new Error(PARAMS_ERROR) 18 | } 19 | 20 | return paramValue 21 | } 22 | 23 | export default ( 24 | redirectUrl: string, 25 | options?: { asUrl?: string; statusCode?: number; params?: boolean } 26 | ) => 27 | class extends React.Component { 28 | // Redirects on the server side first if possible 29 | static async getInitialProps({ res, query }) { 30 | if (res?.writeHead) { 31 | let url = redirectUrl 32 | 33 | if (options?.params === true) { 34 | const param = redirectUrl 35 | if (!query?.[param]) { 36 | throw new Error(PARAMS_ERROR) 37 | } 38 | url = query[param] 39 | } 40 | res.writeHead(options?.statusCode ?? 301, { Location: url }) 41 | res.end() 42 | } else if (typeof window !== 'undefined') { 43 | let url = redirectUrl 44 | 45 | if (options?.params === true) { 46 | url = getParamFromClient(url) 47 | } 48 | window.location.href = url 49 | } 50 | 51 | return {} 52 | } 53 | 54 | // Redirects on the client with JavaScript if no server 55 | componentDidMount() { 56 | if (options?.params === true) { 57 | window.location.href = getParamFromClient(redirectUrl) 58 | } else if (options?.asUrl != null) { 59 | Router.push(redirectUrl, options.asUrl, { shallow: true }) 60 | } else if (redirectUrl[0] === '/') { 61 | Router.push(redirectUrl) 62 | } else { 63 | window.location.href = redirectUrl 64 | } 65 | } 66 | 67 | render() { 68 | let href = options?.asUrl ?? redirectUrl 69 | 70 | if (options?.params != null) { 71 | href = getParamFromClient(redirectUrl) 72 | } 73 | 74 | return ( 75 | <> 76 | 77 | {/* Redirects with meta refresh if no JavaScript support */} 78 | 81 | {(options?.statusCode === undefined || 82 | options?.statusCode === 301) && ( 83 | 84 | )} 85 | 86 | {/* Provides a redirect link if no meta refresh support; or children if provided */} 87 | {this.props.children ? ( 88 | this.props.children 89 | ) : ( 90 |

91 | Redirecting to {href}… 92 |

93 | )} 94 | 95 | ) 96 | } 97 | } 98 | 99 | const getParamFromURL = (url: string, param: string) => {} 100 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "jsx": "react", 4 | "target": "es5", 5 | "lib": ["dom", "dom.iterable", "esnext"], 6 | "skipLibCheck": true, 7 | "strict": false, 8 | "noEmit": true, 9 | "esModuleInterop": true, 10 | "module": "esnext", 11 | "moduleResolution": "node", 12 | "allowJs": true 13 | }, 14 | "exclude": ["node_modules"], 15 | "include": ["./src/*.tsx", "./cypress/integration/*.js"] 16 | } 17 | -------------------------------------------------------------------------------- /typings.d.ts: -------------------------------------------------------------------------------- 1 | // Generated by dts-bundle-generator v4.3.0 2 | 3 | /// 4 | /// 5 | 6 | declare const _default: (redirectUrl: string, options?: { 7 | asUrl?: string; 8 | statusCode?: number; 9 | params?: boolean; 10 | }) => { 11 | new (props: {} | Readonly<{}>): { 12 | componentDidMount(): void; 13 | render(): JSX.Element; 14 | context: any; 15 | setState(state: {} | ((prevState: Readonly<{}>, props: Readonly<{}>) => {} | Pick<{}, K>) | Pick<{}, K>, callback?: () => void): void; 16 | forceUpdate(callback?: () => void): void; 17 | readonly props: Readonly<{}> & Readonly<{ 18 | children?: React.ReactNode; 19 | }>; 20 | state: Readonly<{}>; 21 | refs: { 22 | [key: string]: React.ReactInstance; 23 | }; 24 | shouldComponentUpdate?(nextProps: Readonly<{}>, nextState: Readonly<{}>, nextContext: any): boolean; 25 | componentWillUnmount?(): void; 26 | componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void; 27 | getSnapshotBeforeUpdate?(prevProps: Readonly<{}>, prevState: Readonly<{}>): any; 28 | componentDidUpdate?(prevProps: Readonly<{}>, prevState: Readonly<{}>, snapshot?: any): void; 29 | componentWillMount?(): void; 30 | UNSAFE_componentWillMount?(): void; 31 | componentWillReceiveProps?(nextProps: Readonly<{}>, nextContext: any): void; 32 | UNSAFE_componentWillReceiveProps?(nextProps: Readonly<{}>, nextContext: any): void; 33 | componentWillUpdate?(nextProps: Readonly<{}>, nextState: Readonly<{}>, nextContext: any): void; 34 | UNSAFE_componentWillUpdate?(nextProps: Readonly<{}>, nextState: Readonly<{}>, nextContext: any): void; 35 | }; 36 | new (props: {}, context: any): { 37 | componentDidMount(): void; 38 | render(): JSX.Element; 39 | context: any; 40 | setState(state: {} | ((prevState: Readonly<{}>, props: Readonly<{}>) => {} | Pick<{}, K>) | Pick<{}, K>, callback?: () => void): void; 41 | forceUpdate(callback?: () => void): void; 42 | readonly props: Readonly<{}> & Readonly<{ 43 | children?: React.ReactNode; 44 | }>; 45 | state: Readonly<{}>; 46 | refs: { 47 | [key: string]: React.ReactInstance; 48 | }; 49 | shouldComponentUpdate?(nextProps: Readonly<{}>, nextState: Readonly<{}>, nextContext: any): boolean; 50 | componentWillUnmount?(): void; 51 | componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void; 52 | getSnapshotBeforeUpdate?(prevProps: Readonly<{}>, prevState: Readonly<{}>): any; 53 | componentDidUpdate?(prevProps: Readonly<{}>, prevState: Readonly<{}>, snapshot?: any): void; 54 | componentWillMount?(): void; 55 | UNSAFE_componentWillMount?(): void; 56 | componentWillReceiveProps?(nextProps: Readonly<{}>, nextContext: any): void; 57 | UNSAFE_componentWillReceiveProps?(nextProps: Readonly<{}>, nextContext: any): void; 58 | componentWillUpdate?(nextProps: Readonly<{}>, nextState: Readonly<{}>, nextContext: any): void; 59 | UNSAFE_componentWillUpdate?(nextProps: Readonly<{}>, nextState: Readonly<{}>, nextContext: any): void; 60 | }; 61 | getInitialProps({ res, query }: { 62 | res: any; 63 | query: any; 64 | }): Promise<{}>; 65 | contextType?: React.Context; 66 | }; 67 | export default _default; 68 | 69 | export {}; 70 | --------------------------------------------------------------------------------