├── .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 | |  |
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 |
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 |
--------------------------------------------------------------------------------