├── .env.sample
├── .eslintrc.json
├── .github
└── workflows
│ └── ci.yml
├── .gitignore
├── LICENSE
├── README.md
├── next-env.d.ts
├── next.config.js
├── package-lock.json
├── package.json
├── public
├── favicon.ico
├── next.svg
├── thirteen.svg
└── vercel.svg
├── src
├── lib
│ ├── passport.ts
│ └── router.ts
├── pages
│ ├── _app.tsx
│ ├── _document.tsx
│ ├── api
│ │ └── auth
│ │ │ ├── login.ts
│ │ │ ├── logout.ts
│ │ │ └── return.ts
│ └── index.tsx
└── styles
│ └── globals.css
└── tsconfig.json
/.env.sample:
--------------------------------------------------------------------------------
1 | DOMAIN=http://localhost:3000
2 | SESSION_SECRET=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
3 | STEAM_API_KEY=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
4 |
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "next/core-web-vitals"
3 | }
4 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 |
3 | on: [push, pull_request]
4 |
5 | jobs:
6 | build:
7 | runs-on: ubuntu-latest
8 |
9 | steps:
10 | - uses: actions/checkout@v3
11 |
12 | - name: Use Node.js ${{ matrix.node-version }}
13 | uses: actions/setup-node@v3
14 | with:
15 | node-version: ${{ matrix.node-version }}
16 |
17 | - name: Create temp session secret
18 | run: echo "SESSION_SECRET=abcdefghijklmnopqrstuvwxyz1234567890" > .env
19 |
20 | - name: Clean install
21 | run: npm ci
22 |
23 | - name: Run build
24 | run: npm run build --if-present
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | *.pem
21 | .env
22 |
23 | # debug
24 | npm-debug.log*
25 | yarn-debug.log*
26 | yarn-error.log*
27 | .pnpm-debug.log*
28 |
29 | # local env files
30 | .env*.local
31 |
32 | # vercel
33 | .vercel
34 |
35 | # typescript
36 | *.tsbuildinfo
37 | next-env.d.ts
38 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Hilliam T.
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 Steam Authentication
2 | ### 📖 Table of Contents
3 | - [👋 Introduction](#-introduction)
4 | - [🔌 Getting Started](#-getting-started)
5 | - [⚙️ How It Works](#%EF%B8%8F-how-it-works)
6 | - [💡 Improvements to Make](#-improvements-to-make)
7 | - [📚 Helpful Resources](#-helpful-resources)
8 |
9 | ## 👋 Introduction
10 | NextJS is a React-based web framework that aims to deliver websites as statically as possible. This can provide many performance and development benefits over a framework like [Express](https://github.com/expressjs/express#readme).
11 |
12 | Setting up authentication can be tricky, especially with OpenID login systems such as Steam (there are not many implementations avaiable, let alone in NextJS). This repository is an example of how one may go about injecting Steam user authentication. This allows you to use Steam authentication with a NextJS API backend, and implement such components into your own project
13 |
14 |
15 |
16 | ## 🔌 Getting Started
17 |
18 | After downloading the project, you should install all of the required dependencies.
19 |
20 | $ npm install
21 |
22 | Fill in a `.env` file with the following keys filled, much like `.env.sample` (Remove `.sample` off the file name)
23 |
24 | DOMAIN=http://localhost:3000 # Where this app will run
25 | SESSION_SECRET=ABCD # 32+ char random string
26 | STEAM_API_KEY= # Your Steam API Key
27 |
28 |
29 | You can run the web application in `development` mode.
30 |
31 | $ npm run dev
32 |
33 | You can also test the web application for `production` if you feel the need.
34 |
35 | $ npm run build
36 | $ npm start
37 |
38 | ## ⚙️ How It Works
39 | - You make a request to the api/steam/login endpoint
40 | - Redirects you to steam oauth with a clientID (somehow) via the passport middleware in `passport.ts`
41 | - After you authenticate your account, it redirects you to the frontend with a cookie being sent to the backend.
42 | - The router directs the data received from the authentication, and sends it to the frontend via `getServerSideProps`. You can access it via the `user` parameter in the Index function `index.tsx`.
43 |
44 |
45 | ## 💡 Improvements To Make
46 | This is only one example of authenticating a user with their Steam account via NextJS. There are some fixes that can be added to better development and cleanliness without making significant changes.
47 |
48 | ##### Isolating Middleware
49 | `path` is set within `login.ts`, `logout.ts` and `return.ts` or the middleware will apply to all routes. An alternative solution will need to ensure that middleware set on an API route only runs on that API route. Removing `path` from each route handler will cause constantly redirect you back to Steam's login page.
50 |
51 | ##### Avoiding Manual Request Population
52 | `router` works in parallel with NextJS's native router. However, it needs to be explicitly activated per React page, as seen in `Index.getServerSideProps` where it will populate the `Request` object with any additional fields picked up. This can be repetitive in nature so having `router` run natively or just once for all pages would be ideal. **`getServerSideProps` receives the request of the steam profile data on the frontend.**
53 |
54 | ## "How to make the Steam auth a component?"
55 |
56 | You can copy and paste the component structure on `index.tsx`to another component of your choice (say, `steam.tsx`), just ensure you have the props paramater in both the component and the page file (`index.tsx`) to allow `getServerSideProps` to inject the request object cookie from the backend. (You only need `getServerSideProps` on the `index.tsx`, or page of the rendered content).
57 |
58 | Example
59 |
60 |
61 | **Here is our Here is Steam.tsx, our component-ized Steam authentication.**
62 |
63 | ```ts
64 |
65 |
66 | import Link from "next/link";
67 | import router from "@/lib/auth/router";
68 | import type { SteamProfile } from '@/lib/state/state'
69 |
70 |
71 | export default function Steam({ user }: {user: SteamProfile}) {
72 | console.log(user)
73 | return
74 | {user
75 | ?
76 | Welcome back!
77 | From logging in, your SteamID is {user.id}.
78 | You can call other APIs to get more information within `getServerSideProps` or within `lib/passport.ts`.
79 | Logout
80 |
81 |
82 | :
83 | Welcome!
84 | Login
85 |
86 | }
87 |
;
88 | }
89 | ```
90 |
91 | **Now here is our index.tsx, passing the request object to the Steam function.**
92 |
93 | ```ts
94 | import router from '@/lib/auth/router'
95 | import type { SteamProfile } from '@/lib/passport'
96 | import type { NextSteamAuthApiRequest } from "../lib/router";
97 |
98 |
99 | import Steam from '@/lib/components/auth/Steam';
100 |
101 | export default function Home({ user }: {user: SteamProfile}) {
102 | return (
103 | <>
104 |
105 |
106 | >
107 | )
108 | }
109 |
110 | export async function getServerSideProps({ req, res}:{req: NextSteamAuthApiRequest, res: NextApiResponse}) {
111 | await router.run(req, res);
112 | return { props: { user: req.user || null } };
113 | }
114 | ```
115 |
116 | ## 📚 Helpful Resources
117 | - [Authentication in NextJS](https://nextjs.org/docs/authentication)
118 | - [getServerSideProps](https://nextjs.org/docs/basic-features/data-fetching/get-server-side-props)
119 | - [next-connect](https://github.com/hoangvvo/next-connect)
120 | - [NextJS with Passport](https://github.com/vercel/next.js/tree/canary/examples/with-passport)
121 | - [NextJS with Passport and Next Connect](https://github.com/vercel/next.js/tree/canary/examples/with-passport-and-next-connect)
122 | - [passport-steam](https://github.com/liamcurry/passport-steam) ([Example Usage](https://github.com/liamcurry/passport-steam/tree/master/examples/signon))
123 | - [steam-login](https://github.com/dialupnoises/steam-login)
124 |
--------------------------------------------------------------------------------
/next-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
4 | // NOTE: This file should not be edited
5 | // see https://nextjs.org/docs/basic-features/typescript for more information.
6 |
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {
3 | reactStrictMode: true,
4 | }
5 |
6 | module.exports = nextConfig
7 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "next-auth-steam",
3 | "version": "0.1.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "next-auth-steam",
9 | "version": "0.1.0",
10 | "dependencies": {
11 | "@next/font": "13.1.6",
12 | "@types/node": "18.13.0",
13 | "@types/react": "18.0.28",
14 | "@types/react-dom": "18.0.10",
15 | "cookie-session": "^2.0.0",
16 | "crypto": "^1.0.1",
17 | "dotenv": "^16.0.3",
18 | "eslint": "8.34.0",
19 | "eslint-config-next": "13.1.6",
20 | "next": "13.1.6",
21 | "next-connect": "^0.13.0",
22 | "passport": "^0.4.1",
23 | "passport-steam": "^1.0.15",
24 | "react": "18.2.0",
25 | "react-dom": "18.2.0",
26 | "typescript": "4.9.5"
27 | },
28 | "devDependencies": {
29 | "@types/cookie-session": "^2.0.44",
30 | "@types/passport": "^1.0.11",
31 | "@types/passport-steam": "^1.0.1"
32 | }
33 | },
34 | "node_modules/@babel/runtime": {
35 | "version": "7.20.13",
36 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz",
37 | "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==",
38 | "dependencies": {
39 | "regenerator-runtime": "^0.13.11"
40 | },
41 | "engines": {
42 | "node": ">=6.9.0"
43 | }
44 | },
45 | "node_modules/@eslint/eslintrc": {
46 | "version": "1.4.1",
47 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
48 | "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
49 | "dependencies": {
50 | "ajv": "^6.12.4",
51 | "debug": "^4.3.2",
52 | "espree": "^9.4.0",
53 | "globals": "^13.19.0",
54 | "ignore": "^5.2.0",
55 | "import-fresh": "^3.2.1",
56 | "js-yaml": "^4.1.0",
57 | "minimatch": "^3.1.2",
58 | "strip-json-comments": "^3.1.1"
59 | },
60 | "engines": {
61 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
62 | },
63 | "funding": {
64 | "url": "https://opencollective.com/eslint"
65 | }
66 | },
67 | "node_modules/@humanwhocodes/config-array": {
68 | "version": "0.11.8",
69 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
70 | "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
71 | "dependencies": {
72 | "@humanwhocodes/object-schema": "^1.2.1",
73 | "debug": "^4.1.1",
74 | "minimatch": "^3.0.5"
75 | },
76 | "engines": {
77 | "node": ">=10.10.0"
78 | }
79 | },
80 | "node_modules/@humanwhocodes/module-importer": {
81 | "version": "1.0.1",
82 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
83 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
84 | "engines": {
85 | "node": ">=12.22"
86 | },
87 | "funding": {
88 | "type": "github",
89 | "url": "https://github.com/sponsors/nzakas"
90 | }
91 | },
92 | "node_modules/@humanwhocodes/object-schema": {
93 | "version": "1.2.1",
94 | "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
95 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
96 | },
97 | "node_modules/@next/env": {
98 | "version": "13.1.6",
99 | "resolved": "https://registry.npmjs.org/@next/env/-/env-13.1.6.tgz",
100 | "integrity": "sha512-s+W9Fdqh5MFk6ECrbnVmmAOwxKQuhGMT7xXHrkYIBMBcTiOqNWhv5KbJIboKR5STXxNXl32hllnvKaffzFaWQg=="
101 | },
102 | "node_modules/@next/eslint-plugin-next": {
103 | "version": "13.1.6",
104 | "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.1.6.tgz",
105 | "integrity": "sha512-o7cauUYsXjzSJkay8wKjpKJf2uLzlggCsGUkPu3lP09Pv97jYlekTC20KJrjQKmSv5DXV0R/uks2ZXhqjNkqAw==",
106 | "dependencies": {
107 | "glob": "7.1.7"
108 | }
109 | },
110 | "node_modules/@next/font": {
111 | "version": "13.1.6",
112 | "resolved": "https://registry.npmjs.org/@next/font/-/font-13.1.6.tgz",
113 | "integrity": "sha512-AITjmeb1RgX1HKMCiA39ztx2mxeAyxl4ljv2UoSBUGAbFFMg8MO7YAvjHCgFhD39hL7YTbFjol04e/BPBH5RzQ=="
114 | },
115 | "node_modules/@next/swc-android-arm-eabi": {
116 | "version": "13.1.6",
117 | "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.1.6.tgz",
118 | "integrity": "sha512-F3/6Z8LH/pGlPzR1AcjPFxx35mPqjE5xZcf+IL+KgbW9tMkp7CYi1y7qKrEWU7W4AumxX/8OINnDQWLiwLasLQ==",
119 | "cpu": [
120 | "arm"
121 | ],
122 | "optional": true,
123 | "os": [
124 | "android"
125 | ],
126 | "engines": {
127 | "node": ">= 10"
128 | }
129 | },
130 | "node_modules/@next/swc-android-arm64": {
131 | "version": "13.1.6",
132 | "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-13.1.6.tgz",
133 | "integrity": "sha512-cMwQjnB8vrYkWyK/H0Rf2c2pKIH4RGjpKUDvbjVAit6SbwPDpmaijLio0LWFV3/tOnY6kvzbL62lndVA0mkYpw==",
134 | "cpu": [
135 | "arm64"
136 | ],
137 | "optional": true,
138 | "os": [
139 | "android"
140 | ],
141 | "engines": {
142 | "node": ">= 10"
143 | }
144 | },
145 | "node_modules/@next/swc-darwin-arm64": {
146 | "version": "13.1.6",
147 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.1.6.tgz",
148 | "integrity": "sha512-KKRQH4DDE4kONXCvFMNBZGDb499Hs+xcFAwvj+rfSUssIDrZOlyfJNy55rH5t2Qxed1e4K80KEJgsxKQN1/fyw==",
149 | "cpu": [
150 | "arm64"
151 | ],
152 | "optional": true,
153 | "os": [
154 | "darwin"
155 | ],
156 | "engines": {
157 | "node": ">= 10"
158 | }
159 | },
160 | "node_modules/@next/swc-darwin-x64": {
161 | "version": "13.1.6",
162 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.1.6.tgz",
163 | "integrity": "sha512-/uOky5PaZDoaU99ohjtNcDTJ6ks/gZ5ykTQDvNZDjIoCxFe3+t06bxsTPY6tAO6uEAw5f6vVFX5H5KLwhrkZCA==",
164 | "cpu": [
165 | "x64"
166 | ],
167 | "optional": true,
168 | "os": [
169 | "darwin"
170 | ],
171 | "engines": {
172 | "node": ">= 10"
173 | }
174 | },
175 | "node_modules/@next/swc-freebsd-x64": {
176 | "version": "13.1.6",
177 | "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.1.6.tgz",
178 | "integrity": "sha512-qaEALZeV7to6weSXk3Br80wtFQ7cFTpos/q+m9XVRFggu+8Ib895XhMWdJBzew6aaOcMvYR6KQ6JmHA2/eMzWw==",
179 | "cpu": [
180 | "x64"
181 | ],
182 | "optional": true,
183 | "os": [
184 | "freebsd"
185 | ],
186 | "engines": {
187 | "node": ">= 10"
188 | }
189 | },
190 | "node_modules/@next/swc-linux-arm-gnueabihf": {
191 | "version": "13.1.6",
192 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.1.6.tgz",
193 | "integrity": "sha512-OybkbC58A1wJ+JrJSOjGDvZzrVEQA4sprJejGqMwiZyLqhr9Eo8FXF0y6HL+m1CPCpPhXEHz/2xKoYsl16kNqw==",
194 | "cpu": [
195 | "arm"
196 | ],
197 | "optional": true,
198 | "os": [
199 | "linux"
200 | ],
201 | "engines": {
202 | "node": ">= 10"
203 | }
204 | },
205 | "node_modules/@next/swc-linux-arm64-gnu": {
206 | "version": "13.1.6",
207 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.1.6.tgz",
208 | "integrity": "sha512-yCH+yDr7/4FDuWv6+GiYrPI9kcTAO3y48UmaIbrKy8ZJpi7RehJe3vIBRUmLrLaNDH3rY1rwoHi471NvR5J5NQ==",
209 | "cpu": [
210 | "arm64"
211 | ],
212 | "optional": true,
213 | "os": [
214 | "linux"
215 | ],
216 | "engines": {
217 | "node": ">= 10"
218 | }
219 | },
220 | "node_modules/@next/swc-linux-arm64-musl": {
221 | "version": "13.1.6",
222 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.1.6.tgz",
223 | "integrity": "sha512-ECagB8LGX25P9Mrmlc7Q/TQBb9rGScxHbv/kLqqIWs2fIXy6Y/EiBBiM72NTwuXUFCNrWR4sjUPSooVBJJ3ESQ==",
224 | "cpu": [
225 | "arm64"
226 | ],
227 | "optional": true,
228 | "os": [
229 | "linux"
230 | ],
231 | "engines": {
232 | "node": ">= 10"
233 | }
234 | },
235 | "node_modules/@next/swc-linux-x64-gnu": {
236 | "version": "13.1.6",
237 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.1.6.tgz",
238 | "integrity": "sha512-GT5w2mruk90V/I5g6ScuueE7fqj/d8Bui2qxdw6lFxmuTgMeol5rnzAv4uAoVQgClOUO/MULilzlODg9Ib3Y4Q==",
239 | "cpu": [
240 | "x64"
241 | ],
242 | "optional": true,
243 | "os": [
244 | "linux"
245 | ],
246 | "engines": {
247 | "node": ">= 10"
248 | }
249 | },
250 | "node_modules/@next/swc-linux-x64-musl": {
251 | "version": "13.1.6",
252 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.1.6.tgz",
253 | "integrity": "sha512-keFD6KvwOPzmat4TCnlnuxJCQepPN+8j3Nw876FtULxo8005Y9Ghcl7ACcR8GoiKoddAq8gxNBrpjoxjQRHeAQ==",
254 | "cpu": [
255 | "x64"
256 | ],
257 | "optional": true,
258 | "os": [
259 | "linux"
260 | ],
261 | "engines": {
262 | "node": ">= 10"
263 | }
264 | },
265 | "node_modules/@next/swc-win32-arm64-msvc": {
266 | "version": "13.1.6",
267 | "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.1.6.tgz",
268 | "integrity": "sha512-OwertslIiGQluFvHyRDzBCIB07qJjqabAmINlXUYt7/sY7Q7QPE8xVi5beBxX/rxTGPIbtyIe3faBE6Z2KywhQ==",
269 | "cpu": [
270 | "arm64"
271 | ],
272 | "optional": true,
273 | "os": [
274 | "win32"
275 | ],
276 | "engines": {
277 | "node": ">= 10"
278 | }
279 | },
280 | "node_modules/@next/swc-win32-ia32-msvc": {
281 | "version": "13.1.6",
282 | "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.1.6.tgz",
283 | "integrity": "sha512-g8zowiuP8FxUR9zslPmlju7qYbs2XBtTLVSxVikPtUDQedhcls39uKYLvOOd1JZg0ehyhopobRoH1q+MHlIN/w==",
284 | "cpu": [
285 | "ia32"
286 | ],
287 | "optional": true,
288 | "os": [
289 | "win32"
290 | ],
291 | "engines": {
292 | "node": ">= 10"
293 | }
294 | },
295 | "node_modules/@next/swc-win32-x64-msvc": {
296 | "version": "13.1.6",
297 | "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.1.6.tgz",
298 | "integrity": "sha512-Ls2OL9hi3YlJKGNdKv8k3X/lLgc3VmLG3a/DeTkAd+lAituJp8ZHmRmm9f9SL84fT3CotlzcgbdaCDfFwFA6bA==",
299 | "cpu": [
300 | "x64"
301 | ],
302 | "optional": true,
303 | "os": [
304 | "win32"
305 | ],
306 | "engines": {
307 | "node": ">= 10"
308 | }
309 | },
310 | "node_modules/@nodelib/fs.scandir": {
311 | "version": "2.1.5",
312 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
313 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
314 | "dependencies": {
315 | "@nodelib/fs.stat": "2.0.5",
316 | "run-parallel": "^1.1.9"
317 | },
318 | "engines": {
319 | "node": ">= 8"
320 | }
321 | },
322 | "node_modules/@nodelib/fs.stat": {
323 | "version": "2.0.5",
324 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
325 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
326 | "engines": {
327 | "node": ">= 8"
328 | }
329 | },
330 | "node_modules/@nodelib/fs.walk": {
331 | "version": "1.2.8",
332 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
333 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
334 | "dependencies": {
335 | "@nodelib/fs.scandir": "2.1.5",
336 | "fastq": "^1.6.0"
337 | },
338 | "engines": {
339 | "node": ">= 8"
340 | }
341 | },
342 | "node_modules/@passport-next/passport-openid": {
343 | "version": "1.0.0",
344 | "resolved": "https://registry.npmjs.org/@passport-next/passport-openid/-/passport-openid-1.0.0.tgz",
345 | "integrity": "sha512-W9uj4Ui/ZK/iBUNzSNxPWDQ8wCD1tUddGEVSGm0FN0B7ewo3yBQLGMoW3i3UqcwEzxdyGbAj06ohAhNQIXC4VA==",
346 | "dependencies": {
347 | "@passport-next/passport-strategy": "1.x.x",
348 | "openid": "2.x.x"
349 | },
350 | "engines": {
351 | "node": ">=6"
352 | }
353 | },
354 | "node_modules/@passport-next/passport-strategy": {
355 | "version": "1.1.0",
356 | "resolved": "https://registry.npmjs.org/@passport-next/passport-strategy/-/passport-strategy-1.1.0.tgz",
357 | "integrity": "sha512-2KhFjtPueJG6xVj2HnqXt9BlANOfYCVLyu+pXYjPGBDT8yk+vQwc/6tsceIj+mayKcoxMau2JimggXRPHgoc8w==",
358 | "engines": {
359 | "node": ">= 6.0.0"
360 | }
361 | },
362 | "node_modules/@pkgr/utils": {
363 | "version": "2.3.1",
364 | "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz",
365 | "integrity": "sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==",
366 | "dependencies": {
367 | "cross-spawn": "^7.0.3",
368 | "is-glob": "^4.0.3",
369 | "open": "^8.4.0",
370 | "picocolors": "^1.0.0",
371 | "tiny-glob": "^0.2.9",
372 | "tslib": "^2.4.0"
373 | },
374 | "engines": {
375 | "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
376 | },
377 | "funding": {
378 | "url": "https://opencollective.com/unts"
379 | }
380 | },
381 | "node_modules/@rushstack/eslint-patch": {
382 | "version": "1.2.0",
383 | "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz",
384 | "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg=="
385 | },
386 | "node_modules/@swc/helpers": {
387 | "version": "0.4.14",
388 | "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz",
389 | "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==",
390 | "dependencies": {
391 | "tslib": "^2.4.0"
392 | }
393 | },
394 | "node_modules/@types/body-parser": {
395 | "version": "1.19.2",
396 | "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
397 | "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
398 | "dev": true,
399 | "dependencies": {
400 | "@types/connect": "*",
401 | "@types/node": "*"
402 | }
403 | },
404 | "node_modules/@types/connect": {
405 | "version": "3.4.35",
406 | "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
407 | "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
408 | "dev": true,
409 | "dependencies": {
410 | "@types/node": "*"
411 | }
412 | },
413 | "node_modules/@types/cookie-session": {
414 | "version": "2.0.44",
415 | "resolved": "https://registry.npmjs.org/@types/cookie-session/-/cookie-session-2.0.44.tgz",
416 | "integrity": "sha512-3DheOZ41pql6raSIkqEPphJdhA2dX2bkS+s2Qacv8YMKkoCbAIEXbsDil7351ARzMqvfyDUGNeHGiRZveIzhqQ==",
417 | "dev": true,
418 | "dependencies": {
419 | "@types/express": "*",
420 | "@types/keygrip": "*"
421 | }
422 | },
423 | "node_modules/@types/express": {
424 | "version": "4.17.17",
425 | "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz",
426 | "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==",
427 | "dev": true,
428 | "dependencies": {
429 | "@types/body-parser": "*",
430 | "@types/express-serve-static-core": "^4.17.33",
431 | "@types/qs": "*",
432 | "@types/serve-static": "*"
433 | }
434 | },
435 | "node_modules/@types/express-serve-static-core": {
436 | "version": "4.17.33",
437 | "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz",
438 | "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==",
439 | "dev": true,
440 | "dependencies": {
441 | "@types/node": "*",
442 | "@types/qs": "*",
443 | "@types/range-parser": "*"
444 | }
445 | },
446 | "node_modules/@types/json5": {
447 | "version": "0.0.29",
448 | "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
449 | "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
450 | },
451 | "node_modules/@types/keygrip": {
452 | "version": "1.0.2",
453 | "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz",
454 | "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==",
455 | "dev": true
456 | },
457 | "node_modules/@types/mime": {
458 | "version": "3.0.1",
459 | "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
460 | "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==",
461 | "dev": true
462 | },
463 | "node_modules/@types/node": {
464 | "version": "18.13.0",
465 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.13.0.tgz",
466 | "integrity": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg=="
467 | },
468 | "node_modules/@types/passport": {
469 | "version": "1.0.11",
470 | "resolved": "https://registry.npmjs.org/@types/passport/-/passport-1.0.11.tgz",
471 | "integrity": "sha512-pz1cx9ptZvozyGKKKIPLcVDVHwae4hrH5d6g5J+DkMRRjR3cVETb4jMabhXAUbg3Ov7T22nFHEgaK2jj+5CBpw==",
472 | "dev": true,
473 | "dependencies": {
474 | "@types/express": "*"
475 | }
476 | },
477 | "node_modules/@types/passport-steam": {
478 | "version": "1.0.1",
479 | "resolved": "https://registry.npmjs.org/@types/passport-steam/-/passport-steam-1.0.1.tgz",
480 | "integrity": "sha512-dgqJLk0SxquRE8rbF3FLVtkCUvGqKdzSeLmeVQ3SQlzCSiiT0UnA9oJz8fFjUjZ/j673SvzYkRLQ1OKP7oA0XQ==",
481 | "dev": true
482 | },
483 | "node_modules/@types/prop-types": {
484 | "version": "15.7.5",
485 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
486 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
487 | },
488 | "node_modules/@types/qs": {
489 | "version": "6.9.7",
490 | "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
491 | "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
492 | "dev": true
493 | },
494 | "node_modules/@types/range-parser": {
495 | "version": "1.2.4",
496 | "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
497 | "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
498 | "dev": true
499 | },
500 | "node_modules/@types/react": {
501 | "version": "18.0.28",
502 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz",
503 | "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==",
504 | "dependencies": {
505 | "@types/prop-types": "*",
506 | "@types/scheduler": "*",
507 | "csstype": "^3.0.2"
508 | }
509 | },
510 | "node_modules/@types/react-dom": {
511 | "version": "18.0.10",
512 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.10.tgz",
513 | "integrity": "sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==",
514 | "dependencies": {
515 | "@types/react": "*"
516 | }
517 | },
518 | "node_modules/@types/scheduler": {
519 | "version": "0.16.2",
520 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
521 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
522 | },
523 | "node_modules/@types/serve-static": {
524 | "version": "1.15.0",
525 | "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz",
526 | "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==",
527 | "dev": true,
528 | "dependencies": {
529 | "@types/mime": "*",
530 | "@types/node": "*"
531 | }
532 | },
533 | "node_modules/@typescript-eslint/parser": {
534 | "version": "5.52.0",
535 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.52.0.tgz",
536 | "integrity": "sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==",
537 | "dependencies": {
538 | "@typescript-eslint/scope-manager": "5.52.0",
539 | "@typescript-eslint/types": "5.52.0",
540 | "@typescript-eslint/typescript-estree": "5.52.0",
541 | "debug": "^4.3.4"
542 | },
543 | "engines": {
544 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
545 | },
546 | "funding": {
547 | "type": "opencollective",
548 | "url": "https://opencollective.com/typescript-eslint"
549 | },
550 | "peerDependencies": {
551 | "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
552 | },
553 | "peerDependenciesMeta": {
554 | "typescript": {
555 | "optional": true
556 | }
557 | }
558 | },
559 | "node_modules/@typescript-eslint/scope-manager": {
560 | "version": "5.52.0",
561 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz",
562 | "integrity": "sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw==",
563 | "dependencies": {
564 | "@typescript-eslint/types": "5.52.0",
565 | "@typescript-eslint/visitor-keys": "5.52.0"
566 | },
567 | "engines": {
568 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
569 | },
570 | "funding": {
571 | "type": "opencollective",
572 | "url": "https://opencollective.com/typescript-eslint"
573 | }
574 | },
575 | "node_modules/@typescript-eslint/types": {
576 | "version": "5.52.0",
577 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.52.0.tgz",
578 | "integrity": "sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ==",
579 | "engines": {
580 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
581 | },
582 | "funding": {
583 | "type": "opencollective",
584 | "url": "https://opencollective.com/typescript-eslint"
585 | }
586 | },
587 | "node_modules/@typescript-eslint/typescript-estree": {
588 | "version": "5.52.0",
589 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz",
590 | "integrity": "sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ==",
591 | "dependencies": {
592 | "@typescript-eslint/types": "5.52.0",
593 | "@typescript-eslint/visitor-keys": "5.52.0",
594 | "debug": "^4.3.4",
595 | "globby": "^11.1.0",
596 | "is-glob": "^4.0.3",
597 | "semver": "^7.3.7",
598 | "tsutils": "^3.21.0"
599 | },
600 | "engines": {
601 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
602 | },
603 | "funding": {
604 | "type": "opencollective",
605 | "url": "https://opencollective.com/typescript-eslint"
606 | },
607 | "peerDependenciesMeta": {
608 | "typescript": {
609 | "optional": true
610 | }
611 | }
612 | },
613 | "node_modules/@typescript-eslint/visitor-keys": {
614 | "version": "5.52.0",
615 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz",
616 | "integrity": "sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA==",
617 | "dependencies": {
618 | "@typescript-eslint/types": "5.52.0",
619 | "eslint-visitor-keys": "^3.3.0"
620 | },
621 | "engines": {
622 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
623 | },
624 | "funding": {
625 | "type": "opencollective",
626 | "url": "https://opencollective.com/typescript-eslint"
627 | }
628 | },
629 | "node_modules/acorn": {
630 | "version": "8.8.2",
631 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
632 | "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
633 | "bin": {
634 | "acorn": "bin/acorn"
635 | },
636 | "engines": {
637 | "node": ">=0.4.0"
638 | }
639 | },
640 | "node_modules/acorn-jsx": {
641 | "version": "5.3.2",
642 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
643 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
644 | "peerDependencies": {
645 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
646 | }
647 | },
648 | "node_modules/ajv": {
649 | "version": "6.12.6",
650 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
651 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
652 | "dependencies": {
653 | "fast-deep-equal": "^3.1.1",
654 | "fast-json-stable-stringify": "^2.0.0",
655 | "json-schema-traverse": "^0.4.1",
656 | "uri-js": "^4.2.2"
657 | },
658 | "funding": {
659 | "type": "github",
660 | "url": "https://github.com/sponsors/epoberezkin"
661 | }
662 | },
663 | "node_modules/ansi-regex": {
664 | "version": "5.0.1",
665 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
666 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
667 | "engines": {
668 | "node": ">=8"
669 | }
670 | },
671 | "node_modules/ansi-styles": {
672 | "version": "4.3.0",
673 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
674 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
675 | "dependencies": {
676 | "color-convert": "^2.0.1"
677 | },
678 | "engines": {
679 | "node": ">=8"
680 | },
681 | "funding": {
682 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
683 | }
684 | },
685 | "node_modules/argparse": {
686 | "version": "2.0.1",
687 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
688 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
689 | },
690 | "node_modules/aria-query": {
691 | "version": "5.1.3",
692 | "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz",
693 | "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==",
694 | "dependencies": {
695 | "deep-equal": "^2.0.5"
696 | }
697 | },
698 | "node_modules/array-includes": {
699 | "version": "3.1.6",
700 | "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
701 | "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
702 | "dependencies": {
703 | "call-bind": "^1.0.2",
704 | "define-properties": "^1.1.4",
705 | "es-abstract": "^1.20.4",
706 | "get-intrinsic": "^1.1.3",
707 | "is-string": "^1.0.7"
708 | },
709 | "engines": {
710 | "node": ">= 0.4"
711 | },
712 | "funding": {
713 | "url": "https://github.com/sponsors/ljharb"
714 | }
715 | },
716 | "node_modules/array-union": {
717 | "version": "2.1.0",
718 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
719 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
720 | "engines": {
721 | "node": ">=8"
722 | }
723 | },
724 | "node_modules/array.prototype.flat": {
725 | "version": "1.3.1",
726 | "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
727 | "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
728 | "dependencies": {
729 | "call-bind": "^1.0.2",
730 | "define-properties": "^1.1.4",
731 | "es-abstract": "^1.20.4",
732 | "es-shim-unscopables": "^1.0.0"
733 | },
734 | "engines": {
735 | "node": ">= 0.4"
736 | },
737 | "funding": {
738 | "url": "https://github.com/sponsors/ljharb"
739 | }
740 | },
741 | "node_modules/array.prototype.flatmap": {
742 | "version": "1.3.1",
743 | "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
744 | "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
745 | "dependencies": {
746 | "call-bind": "^1.0.2",
747 | "define-properties": "^1.1.4",
748 | "es-abstract": "^1.20.4",
749 | "es-shim-unscopables": "^1.0.0"
750 | },
751 | "engines": {
752 | "node": ">= 0.4"
753 | },
754 | "funding": {
755 | "url": "https://github.com/sponsors/ljharb"
756 | }
757 | },
758 | "node_modules/array.prototype.tosorted": {
759 | "version": "1.1.1",
760 | "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz",
761 | "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==",
762 | "dependencies": {
763 | "call-bind": "^1.0.2",
764 | "define-properties": "^1.1.4",
765 | "es-abstract": "^1.20.4",
766 | "es-shim-unscopables": "^1.0.0",
767 | "get-intrinsic": "^1.1.3"
768 | }
769 | },
770 | "node_modules/ast-types-flow": {
771 | "version": "0.0.7",
772 | "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
773 | "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag=="
774 | },
775 | "node_modules/available-typed-arrays": {
776 | "version": "1.0.5",
777 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
778 | "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
779 | "engines": {
780 | "node": ">= 0.4"
781 | },
782 | "funding": {
783 | "url": "https://github.com/sponsors/ljharb"
784 | }
785 | },
786 | "node_modules/axe-core": {
787 | "version": "4.6.3",
788 | "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz",
789 | "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==",
790 | "engines": {
791 | "node": ">=4"
792 | }
793 | },
794 | "node_modules/axios": {
795 | "version": "0.21.4",
796 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
797 | "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
798 | "dependencies": {
799 | "follow-redirects": "^1.14.0"
800 | }
801 | },
802 | "node_modules/axobject-query": {
803 | "version": "3.1.1",
804 | "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz",
805 | "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==",
806 | "dependencies": {
807 | "deep-equal": "^2.0.5"
808 | }
809 | },
810 | "node_modules/balanced-match": {
811 | "version": "1.0.2",
812 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
813 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
814 | },
815 | "node_modules/brace-expansion": {
816 | "version": "1.1.11",
817 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
818 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
819 | "dependencies": {
820 | "balanced-match": "^1.0.0",
821 | "concat-map": "0.0.1"
822 | }
823 | },
824 | "node_modules/braces": {
825 | "version": "3.0.2",
826 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
827 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
828 | "dependencies": {
829 | "fill-range": "^7.0.1"
830 | },
831 | "engines": {
832 | "node": ">=8"
833 | }
834 | },
835 | "node_modules/call-bind": {
836 | "version": "1.0.2",
837 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
838 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
839 | "dependencies": {
840 | "function-bind": "^1.1.1",
841 | "get-intrinsic": "^1.0.2"
842 | },
843 | "funding": {
844 | "url": "https://github.com/sponsors/ljharb"
845 | }
846 | },
847 | "node_modules/callsites": {
848 | "version": "3.1.0",
849 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
850 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
851 | "engines": {
852 | "node": ">=6"
853 | }
854 | },
855 | "node_modules/caniuse-lite": {
856 | "version": "1.0.30001451",
857 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001451.tgz",
858 | "integrity": "sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==",
859 | "funding": [
860 | {
861 | "type": "opencollective",
862 | "url": "https://opencollective.com/browserslist"
863 | },
864 | {
865 | "type": "tidelift",
866 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
867 | }
868 | ]
869 | },
870 | "node_modules/chalk": {
871 | "version": "4.1.2",
872 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
873 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
874 | "dependencies": {
875 | "ansi-styles": "^4.1.0",
876 | "supports-color": "^7.1.0"
877 | },
878 | "engines": {
879 | "node": ">=10"
880 | },
881 | "funding": {
882 | "url": "https://github.com/chalk/chalk?sponsor=1"
883 | }
884 | },
885 | "node_modules/client-only": {
886 | "version": "0.0.1",
887 | "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
888 | "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
889 | },
890 | "node_modules/color-convert": {
891 | "version": "2.0.1",
892 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
893 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
894 | "dependencies": {
895 | "color-name": "~1.1.4"
896 | },
897 | "engines": {
898 | "node": ">=7.0.0"
899 | }
900 | },
901 | "node_modules/color-name": {
902 | "version": "1.1.4",
903 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
904 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
905 | },
906 | "node_modules/concat-map": {
907 | "version": "0.0.1",
908 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
909 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
910 | },
911 | "node_modules/cookie-session": {
912 | "version": "2.0.0",
913 | "resolved": "https://registry.npmjs.org/cookie-session/-/cookie-session-2.0.0.tgz",
914 | "integrity": "sha512-hKvgoThbw00zQOleSlUr2qpvuNweoqBtxrmx0UFosx6AGi9lYtLoA+RbsvknrEX8Pr6MDbdWAb2j6SnMn+lPsg==",
915 | "dependencies": {
916 | "cookies": "0.8.0",
917 | "debug": "3.2.7",
918 | "on-headers": "~1.0.2",
919 | "safe-buffer": "5.2.1"
920 | },
921 | "engines": {
922 | "node": ">= 0.10"
923 | }
924 | },
925 | "node_modules/cookie-session/node_modules/debug": {
926 | "version": "3.2.7",
927 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
928 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
929 | "dependencies": {
930 | "ms": "^2.1.1"
931 | }
932 | },
933 | "node_modules/cookies": {
934 | "version": "0.8.0",
935 | "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
936 | "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==",
937 | "dependencies": {
938 | "depd": "~2.0.0",
939 | "keygrip": "~1.1.0"
940 | },
941 | "engines": {
942 | "node": ">= 0.8"
943 | }
944 | },
945 | "node_modules/cross-spawn": {
946 | "version": "7.0.3",
947 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
948 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
949 | "dependencies": {
950 | "path-key": "^3.1.0",
951 | "shebang-command": "^2.0.0",
952 | "which": "^2.0.1"
953 | },
954 | "engines": {
955 | "node": ">= 8"
956 | }
957 | },
958 | "node_modules/crypto": {
959 | "version": "1.0.1",
960 | "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz",
961 | "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==",
962 | "deprecated": "This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in."
963 | },
964 | "node_modules/csstype": {
965 | "version": "3.1.1",
966 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
967 | "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
968 | },
969 | "node_modules/damerau-levenshtein": {
970 | "version": "1.0.8",
971 | "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
972 | "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="
973 | },
974 | "node_modules/debug": {
975 | "version": "4.3.4",
976 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
977 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
978 | "dependencies": {
979 | "ms": "2.1.2"
980 | },
981 | "engines": {
982 | "node": ">=6.0"
983 | },
984 | "peerDependenciesMeta": {
985 | "supports-color": {
986 | "optional": true
987 | }
988 | }
989 | },
990 | "node_modules/deep-equal": {
991 | "version": "2.2.0",
992 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz",
993 | "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==",
994 | "dependencies": {
995 | "call-bind": "^1.0.2",
996 | "es-get-iterator": "^1.1.2",
997 | "get-intrinsic": "^1.1.3",
998 | "is-arguments": "^1.1.1",
999 | "is-array-buffer": "^3.0.1",
1000 | "is-date-object": "^1.0.5",
1001 | "is-regex": "^1.1.4",
1002 | "is-shared-array-buffer": "^1.0.2",
1003 | "isarray": "^2.0.5",
1004 | "object-is": "^1.1.5",
1005 | "object-keys": "^1.1.1",
1006 | "object.assign": "^4.1.4",
1007 | "regexp.prototype.flags": "^1.4.3",
1008 | "side-channel": "^1.0.4",
1009 | "which-boxed-primitive": "^1.0.2",
1010 | "which-collection": "^1.0.1",
1011 | "which-typed-array": "^1.1.9"
1012 | },
1013 | "funding": {
1014 | "url": "https://github.com/sponsors/ljharb"
1015 | }
1016 | },
1017 | "node_modules/deep-is": {
1018 | "version": "0.1.4",
1019 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
1020 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
1021 | },
1022 | "node_modules/define-lazy-prop": {
1023 | "version": "2.0.0",
1024 | "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
1025 | "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
1026 | "engines": {
1027 | "node": ">=8"
1028 | }
1029 | },
1030 | "node_modules/define-properties": {
1031 | "version": "1.2.0",
1032 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
1033 | "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
1034 | "dependencies": {
1035 | "has-property-descriptors": "^1.0.0",
1036 | "object-keys": "^1.1.1"
1037 | },
1038 | "engines": {
1039 | "node": ">= 0.4"
1040 | },
1041 | "funding": {
1042 | "url": "https://github.com/sponsors/ljharb"
1043 | }
1044 | },
1045 | "node_modules/depd": {
1046 | "version": "2.0.0",
1047 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
1048 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
1049 | "engines": {
1050 | "node": ">= 0.8"
1051 | }
1052 | },
1053 | "node_modules/dir-glob": {
1054 | "version": "3.0.1",
1055 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
1056 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
1057 | "dependencies": {
1058 | "path-type": "^4.0.0"
1059 | },
1060 | "engines": {
1061 | "node": ">=8"
1062 | }
1063 | },
1064 | "node_modules/doctrine": {
1065 | "version": "3.0.0",
1066 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
1067 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
1068 | "dependencies": {
1069 | "esutils": "^2.0.2"
1070 | },
1071 | "engines": {
1072 | "node": ">=6.0.0"
1073 | }
1074 | },
1075 | "node_modules/dotenv": {
1076 | "version": "16.0.3",
1077 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
1078 | "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==",
1079 | "engines": {
1080 | "node": ">=12"
1081 | }
1082 | },
1083 | "node_modules/emoji-regex": {
1084 | "version": "9.2.2",
1085 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
1086 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
1087 | },
1088 | "node_modules/enhanced-resolve": {
1089 | "version": "5.12.0",
1090 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz",
1091 | "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==",
1092 | "dependencies": {
1093 | "graceful-fs": "^4.2.4",
1094 | "tapable": "^2.2.0"
1095 | },
1096 | "engines": {
1097 | "node": ">=10.13.0"
1098 | }
1099 | },
1100 | "node_modules/es-abstract": {
1101 | "version": "1.21.1",
1102 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
1103 | "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
1104 | "dependencies": {
1105 | "available-typed-arrays": "^1.0.5",
1106 | "call-bind": "^1.0.2",
1107 | "es-set-tostringtag": "^2.0.1",
1108 | "es-to-primitive": "^1.2.1",
1109 | "function-bind": "^1.1.1",
1110 | "function.prototype.name": "^1.1.5",
1111 | "get-intrinsic": "^1.1.3",
1112 | "get-symbol-description": "^1.0.0",
1113 | "globalthis": "^1.0.3",
1114 | "gopd": "^1.0.1",
1115 | "has": "^1.0.3",
1116 | "has-property-descriptors": "^1.0.0",
1117 | "has-proto": "^1.0.1",
1118 | "has-symbols": "^1.0.3",
1119 | "internal-slot": "^1.0.4",
1120 | "is-array-buffer": "^3.0.1",
1121 | "is-callable": "^1.2.7",
1122 | "is-negative-zero": "^2.0.2",
1123 | "is-regex": "^1.1.4",
1124 | "is-shared-array-buffer": "^1.0.2",
1125 | "is-string": "^1.0.7",
1126 | "is-typed-array": "^1.1.10",
1127 | "is-weakref": "^1.0.2",
1128 | "object-inspect": "^1.12.2",
1129 | "object-keys": "^1.1.1",
1130 | "object.assign": "^4.1.4",
1131 | "regexp.prototype.flags": "^1.4.3",
1132 | "safe-regex-test": "^1.0.0",
1133 | "string.prototype.trimend": "^1.0.6",
1134 | "string.prototype.trimstart": "^1.0.6",
1135 | "typed-array-length": "^1.0.4",
1136 | "unbox-primitive": "^1.0.2",
1137 | "which-typed-array": "^1.1.9"
1138 | },
1139 | "engines": {
1140 | "node": ">= 0.4"
1141 | },
1142 | "funding": {
1143 | "url": "https://github.com/sponsors/ljharb"
1144 | }
1145 | },
1146 | "node_modules/es-get-iterator": {
1147 | "version": "1.1.3",
1148 | "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz",
1149 | "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==",
1150 | "dependencies": {
1151 | "call-bind": "^1.0.2",
1152 | "get-intrinsic": "^1.1.3",
1153 | "has-symbols": "^1.0.3",
1154 | "is-arguments": "^1.1.1",
1155 | "is-map": "^2.0.2",
1156 | "is-set": "^2.0.2",
1157 | "is-string": "^1.0.7",
1158 | "isarray": "^2.0.5",
1159 | "stop-iteration-iterator": "^1.0.0"
1160 | },
1161 | "funding": {
1162 | "url": "https://github.com/sponsors/ljharb"
1163 | }
1164 | },
1165 | "node_modules/es-set-tostringtag": {
1166 | "version": "2.0.1",
1167 | "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
1168 | "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
1169 | "dependencies": {
1170 | "get-intrinsic": "^1.1.3",
1171 | "has": "^1.0.3",
1172 | "has-tostringtag": "^1.0.0"
1173 | },
1174 | "engines": {
1175 | "node": ">= 0.4"
1176 | }
1177 | },
1178 | "node_modules/es-shim-unscopables": {
1179 | "version": "1.0.0",
1180 | "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
1181 | "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
1182 | "dependencies": {
1183 | "has": "^1.0.3"
1184 | }
1185 | },
1186 | "node_modules/es-to-primitive": {
1187 | "version": "1.2.1",
1188 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
1189 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
1190 | "dependencies": {
1191 | "is-callable": "^1.1.4",
1192 | "is-date-object": "^1.0.1",
1193 | "is-symbol": "^1.0.2"
1194 | },
1195 | "engines": {
1196 | "node": ">= 0.4"
1197 | },
1198 | "funding": {
1199 | "url": "https://github.com/sponsors/ljharb"
1200 | }
1201 | },
1202 | "node_modules/escape-string-regexp": {
1203 | "version": "4.0.0",
1204 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
1205 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
1206 | "engines": {
1207 | "node": ">=10"
1208 | },
1209 | "funding": {
1210 | "url": "https://github.com/sponsors/sindresorhus"
1211 | }
1212 | },
1213 | "node_modules/eslint": {
1214 | "version": "8.34.0",
1215 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.34.0.tgz",
1216 | "integrity": "sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==",
1217 | "dependencies": {
1218 | "@eslint/eslintrc": "^1.4.1",
1219 | "@humanwhocodes/config-array": "^0.11.8",
1220 | "@humanwhocodes/module-importer": "^1.0.1",
1221 | "@nodelib/fs.walk": "^1.2.8",
1222 | "ajv": "^6.10.0",
1223 | "chalk": "^4.0.0",
1224 | "cross-spawn": "^7.0.2",
1225 | "debug": "^4.3.2",
1226 | "doctrine": "^3.0.0",
1227 | "escape-string-regexp": "^4.0.0",
1228 | "eslint-scope": "^7.1.1",
1229 | "eslint-utils": "^3.0.0",
1230 | "eslint-visitor-keys": "^3.3.0",
1231 | "espree": "^9.4.0",
1232 | "esquery": "^1.4.0",
1233 | "esutils": "^2.0.2",
1234 | "fast-deep-equal": "^3.1.3",
1235 | "file-entry-cache": "^6.0.1",
1236 | "find-up": "^5.0.0",
1237 | "glob-parent": "^6.0.2",
1238 | "globals": "^13.19.0",
1239 | "grapheme-splitter": "^1.0.4",
1240 | "ignore": "^5.2.0",
1241 | "import-fresh": "^3.0.0",
1242 | "imurmurhash": "^0.1.4",
1243 | "is-glob": "^4.0.0",
1244 | "is-path-inside": "^3.0.3",
1245 | "js-sdsl": "^4.1.4",
1246 | "js-yaml": "^4.1.0",
1247 | "json-stable-stringify-without-jsonify": "^1.0.1",
1248 | "levn": "^0.4.1",
1249 | "lodash.merge": "^4.6.2",
1250 | "minimatch": "^3.1.2",
1251 | "natural-compare": "^1.4.0",
1252 | "optionator": "^0.9.1",
1253 | "regexpp": "^3.2.0",
1254 | "strip-ansi": "^6.0.1",
1255 | "strip-json-comments": "^3.1.0",
1256 | "text-table": "^0.2.0"
1257 | },
1258 | "bin": {
1259 | "eslint": "bin/eslint.js"
1260 | },
1261 | "engines": {
1262 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1263 | },
1264 | "funding": {
1265 | "url": "https://opencollective.com/eslint"
1266 | }
1267 | },
1268 | "node_modules/eslint-config-next": {
1269 | "version": "13.1.6",
1270 | "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.1.6.tgz",
1271 | "integrity": "sha512-0cg7h5wztg/SoLAlxljZ0ZPUQ7i6QKqRiP4M2+MgTZtxWwNKb2JSwNc18nJ6/kXBI6xYvPraTbQSIhAuVw6czw==",
1272 | "dependencies": {
1273 | "@next/eslint-plugin-next": "13.1.6",
1274 | "@rushstack/eslint-patch": "^1.1.3",
1275 | "@typescript-eslint/parser": "^5.42.0",
1276 | "eslint-import-resolver-node": "^0.3.6",
1277 | "eslint-import-resolver-typescript": "^3.5.2",
1278 | "eslint-plugin-import": "^2.26.0",
1279 | "eslint-plugin-jsx-a11y": "^6.5.1",
1280 | "eslint-plugin-react": "^7.31.7",
1281 | "eslint-plugin-react-hooks": "^4.5.0"
1282 | },
1283 | "peerDependencies": {
1284 | "eslint": "^7.23.0 || ^8.0.0",
1285 | "typescript": ">=3.3.1"
1286 | },
1287 | "peerDependenciesMeta": {
1288 | "typescript": {
1289 | "optional": true
1290 | }
1291 | }
1292 | },
1293 | "node_modules/eslint-import-resolver-node": {
1294 | "version": "0.3.7",
1295 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
1296 | "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==",
1297 | "dependencies": {
1298 | "debug": "^3.2.7",
1299 | "is-core-module": "^2.11.0",
1300 | "resolve": "^1.22.1"
1301 | }
1302 | },
1303 | "node_modules/eslint-import-resolver-node/node_modules/debug": {
1304 | "version": "3.2.7",
1305 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
1306 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
1307 | "dependencies": {
1308 | "ms": "^2.1.1"
1309 | }
1310 | },
1311 | "node_modules/eslint-import-resolver-typescript": {
1312 | "version": "3.5.3",
1313 | "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.3.tgz",
1314 | "integrity": "sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ==",
1315 | "dependencies": {
1316 | "debug": "^4.3.4",
1317 | "enhanced-resolve": "^5.10.0",
1318 | "get-tsconfig": "^4.2.0",
1319 | "globby": "^13.1.2",
1320 | "is-core-module": "^2.10.0",
1321 | "is-glob": "^4.0.3",
1322 | "synckit": "^0.8.4"
1323 | },
1324 | "engines": {
1325 | "node": "^14.18.0 || >=16.0.0"
1326 | },
1327 | "funding": {
1328 | "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts"
1329 | },
1330 | "peerDependencies": {
1331 | "eslint": "*",
1332 | "eslint-plugin-import": "*"
1333 | }
1334 | },
1335 | "node_modules/eslint-import-resolver-typescript/node_modules/globby": {
1336 | "version": "13.1.3",
1337 | "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz",
1338 | "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==",
1339 | "dependencies": {
1340 | "dir-glob": "^3.0.1",
1341 | "fast-glob": "^3.2.11",
1342 | "ignore": "^5.2.0",
1343 | "merge2": "^1.4.1",
1344 | "slash": "^4.0.0"
1345 | },
1346 | "engines": {
1347 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
1348 | },
1349 | "funding": {
1350 | "url": "https://github.com/sponsors/sindresorhus"
1351 | }
1352 | },
1353 | "node_modules/eslint-import-resolver-typescript/node_modules/slash": {
1354 | "version": "4.0.0",
1355 | "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
1356 | "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
1357 | "engines": {
1358 | "node": ">=12"
1359 | },
1360 | "funding": {
1361 | "url": "https://github.com/sponsors/sindresorhus"
1362 | }
1363 | },
1364 | "node_modules/eslint-module-utils": {
1365 | "version": "2.7.4",
1366 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz",
1367 | "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==",
1368 | "dependencies": {
1369 | "debug": "^3.2.7"
1370 | },
1371 | "engines": {
1372 | "node": ">=4"
1373 | },
1374 | "peerDependenciesMeta": {
1375 | "eslint": {
1376 | "optional": true
1377 | }
1378 | }
1379 | },
1380 | "node_modules/eslint-module-utils/node_modules/debug": {
1381 | "version": "3.2.7",
1382 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
1383 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
1384 | "dependencies": {
1385 | "ms": "^2.1.1"
1386 | }
1387 | },
1388 | "node_modules/eslint-plugin-import": {
1389 | "version": "2.27.5",
1390 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz",
1391 | "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==",
1392 | "dependencies": {
1393 | "array-includes": "^3.1.6",
1394 | "array.prototype.flat": "^1.3.1",
1395 | "array.prototype.flatmap": "^1.3.1",
1396 | "debug": "^3.2.7",
1397 | "doctrine": "^2.1.0",
1398 | "eslint-import-resolver-node": "^0.3.7",
1399 | "eslint-module-utils": "^2.7.4",
1400 | "has": "^1.0.3",
1401 | "is-core-module": "^2.11.0",
1402 | "is-glob": "^4.0.3",
1403 | "minimatch": "^3.1.2",
1404 | "object.values": "^1.1.6",
1405 | "resolve": "^1.22.1",
1406 | "semver": "^6.3.0",
1407 | "tsconfig-paths": "^3.14.1"
1408 | },
1409 | "engines": {
1410 | "node": ">=4"
1411 | },
1412 | "peerDependencies": {
1413 | "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
1414 | }
1415 | },
1416 | "node_modules/eslint-plugin-import/node_modules/debug": {
1417 | "version": "3.2.7",
1418 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
1419 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
1420 | "dependencies": {
1421 | "ms": "^2.1.1"
1422 | }
1423 | },
1424 | "node_modules/eslint-plugin-import/node_modules/doctrine": {
1425 | "version": "2.1.0",
1426 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
1427 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
1428 | "dependencies": {
1429 | "esutils": "^2.0.2"
1430 | },
1431 | "engines": {
1432 | "node": ">=0.10.0"
1433 | }
1434 | },
1435 | "node_modules/eslint-plugin-import/node_modules/semver": {
1436 | "version": "6.3.0",
1437 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1438 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1439 | "bin": {
1440 | "semver": "bin/semver.js"
1441 | }
1442 | },
1443 | "node_modules/eslint-plugin-jsx-a11y": {
1444 | "version": "6.7.1",
1445 | "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz",
1446 | "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==",
1447 | "dependencies": {
1448 | "@babel/runtime": "^7.20.7",
1449 | "aria-query": "^5.1.3",
1450 | "array-includes": "^3.1.6",
1451 | "array.prototype.flatmap": "^1.3.1",
1452 | "ast-types-flow": "^0.0.7",
1453 | "axe-core": "^4.6.2",
1454 | "axobject-query": "^3.1.1",
1455 | "damerau-levenshtein": "^1.0.8",
1456 | "emoji-regex": "^9.2.2",
1457 | "has": "^1.0.3",
1458 | "jsx-ast-utils": "^3.3.3",
1459 | "language-tags": "=1.0.5",
1460 | "minimatch": "^3.1.2",
1461 | "object.entries": "^1.1.6",
1462 | "object.fromentries": "^2.0.6",
1463 | "semver": "^6.3.0"
1464 | },
1465 | "engines": {
1466 | "node": ">=4.0"
1467 | },
1468 | "peerDependencies": {
1469 | "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
1470 | }
1471 | },
1472 | "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": {
1473 | "version": "6.3.0",
1474 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1475 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1476 | "bin": {
1477 | "semver": "bin/semver.js"
1478 | }
1479 | },
1480 | "node_modules/eslint-plugin-react": {
1481 | "version": "7.32.2",
1482 | "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz",
1483 | "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==",
1484 | "dependencies": {
1485 | "array-includes": "^3.1.6",
1486 | "array.prototype.flatmap": "^1.3.1",
1487 | "array.prototype.tosorted": "^1.1.1",
1488 | "doctrine": "^2.1.0",
1489 | "estraverse": "^5.3.0",
1490 | "jsx-ast-utils": "^2.4.1 || ^3.0.0",
1491 | "minimatch": "^3.1.2",
1492 | "object.entries": "^1.1.6",
1493 | "object.fromentries": "^2.0.6",
1494 | "object.hasown": "^1.1.2",
1495 | "object.values": "^1.1.6",
1496 | "prop-types": "^15.8.1",
1497 | "resolve": "^2.0.0-next.4",
1498 | "semver": "^6.3.0",
1499 | "string.prototype.matchall": "^4.0.8"
1500 | },
1501 | "engines": {
1502 | "node": ">=4"
1503 | },
1504 | "peerDependencies": {
1505 | "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
1506 | }
1507 | },
1508 | "node_modules/eslint-plugin-react-hooks": {
1509 | "version": "4.6.0",
1510 | "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
1511 | "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
1512 | "engines": {
1513 | "node": ">=10"
1514 | },
1515 | "peerDependencies": {
1516 | "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
1517 | }
1518 | },
1519 | "node_modules/eslint-plugin-react/node_modules/doctrine": {
1520 | "version": "2.1.0",
1521 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
1522 | "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
1523 | "dependencies": {
1524 | "esutils": "^2.0.2"
1525 | },
1526 | "engines": {
1527 | "node": ">=0.10.0"
1528 | }
1529 | },
1530 | "node_modules/eslint-plugin-react/node_modules/resolve": {
1531 | "version": "2.0.0-next.4",
1532 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz",
1533 | "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==",
1534 | "dependencies": {
1535 | "is-core-module": "^2.9.0",
1536 | "path-parse": "^1.0.7",
1537 | "supports-preserve-symlinks-flag": "^1.0.0"
1538 | },
1539 | "bin": {
1540 | "resolve": "bin/resolve"
1541 | },
1542 | "funding": {
1543 | "url": "https://github.com/sponsors/ljharb"
1544 | }
1545 | },
1546 | "node_modules/eslint-plugin-react/node_modules/semver": {
1547 | "version": "6.3.0",
1548 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1549 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1550 | "bin": {
1551 | "semver": "bin/semver.js"
1552 | }
1553 | },
1554 | "node_modules/eslint-scope": {
1555 | "version": "7.1.1",
1556 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
1557 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
1558 | "dependencies": {
1559 | "esrecurse": "^4.3.0",
1560 | "estraverse": "^5.2.0"
1561 | },
1562 | "engines": {
1563 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1564 | }
1565 | },
1566 | "node_modules/eslint-utils": {
1567 | "version": "3.0.0",
1568 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
1569 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
1570 | "dependencies": {
1571 | "eslint-visitor-keys": "^2.0.0"
1572 | },
1573 | "engines": {
1574 | "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
1575 | },
1576 | "funding": {
1577 | "url": "https://github.com/sponsors/mysticatea"
1578 | },
1579 | "peerDependencies": {
1580 | "eslint": ">=5"
1581 | }
1582 | },
1583 | "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
1584 | "version": "2.1.0",
1585 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
1586 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
1587 | "engines": {
1588 | "node": ">=10"
1589 | }
1590 | },
1591 | "node_modules/eslint-visitor-keys": {
1592 | "version": "3.3.0",
1593 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
1594 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
1595 | "engines": {
1596 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1597 | }
1598 | },
1599 | "node_modules/espree": {
1600 | "version": "9.4.1",
1601 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
1602 | "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
1603 | "dependencies": {
1604 | "acorn": "^8.8.0",
1605 | "acorn-jsx": "^5.3.2",
1606 | "eslint-visitor-keys": "^3.3.0"
1607 | },
1608 | "engines": {
1609 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1610 | },
1611 | "funding": {
1612 | "url": "https://opencollective.com/eslint"
1613 | }
1614 | },
1615 | "node_modules/esquery": {
1616 | "version": "1.4.0",
1617 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
1618 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
1619 | "dependencies": {
1620 | "estraverse": "^5.1.0"
1621 | },
1622 | "engines": {
1623 | "node": ">=0.10"
1624 | }
1625 | },
1626 | "node_modules/esrecurse": {
1627 | "version": "4.3.0",
1628 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
1629 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
1630 | "dependencies": {
1631 | "estraverse": "^5.2.0"
1632 | },
1633 | "engines": {
1634 | "node": ">=4.0"
1635 | }
1636 | },
1637 | "node_modules/estraverse": {
1638 | "version": "5.3.0",
1639 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
1640 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
1641 | "engines": {
1642 | "node": ">=4.0"
1643 | }
1644 | },
1645 | "node_modules/esutils": {
1646 | "version": "2.0.3",
1647 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1648 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1649 | "engines": {
1650 | "node": ">=0.10.0"
1651 | }
1652 | },
1653 | "node_modules/fast-deep-equal": {
1654 | "version": "3.1.3",
1655 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1656 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
1657 | },
1658 | "node_modules/fast-glob": {
1659 | "version": "3.2.12",
1660 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
1661 | "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
1662 | "dependencies": {
1663 | "@nodelib/fs.stat": "^2.0.2",
1664 | "@nodelib/fs.walk": "^1.2.3",
1665 | "glob-parent": "^5.1.2",
1666 | "merge2": "^1.3.0",
1667 | "micromatch": "^4.0.4"
1668 | },
1669 | "engines": {
1670 | "node": ">=8.6.0"
1671 | }
1672 | },
1673 | "node_modules/fast-glob/node_modules/glob-parent": {
1674 | "version": "5.1.2",
1675 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1676 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1677 | "dependencies": {
1678 | "is-glob": "^4.0.1"
1679 | },
1680 | "engines": {
1681 | "node": ">= 6"
1682 | }
1683 | },
1684 | "node_modules/fast-json-stable-stringify": {
1685 | "version": "2.1.0",
1686 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
1687 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
1688 | },
1689 | "node_modules/fast-levenshtein": {
1690 | "version": "2.0.6",
1691 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
1692 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
1693 | },
1694 | "node_modules/fastq": {
1695 | "version": "1.15.0",
1696 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
1697 | "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
1698 | "dependencies": {
1699 | "reusify": "^1.0.4"
1700 | }
1701 | },
1702 | "node_modules/file-entry-cache": {
1703 | "version": "6.0.1",
1704 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
1705 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
1706 | "dependencies": {
1707 | "flat-cache": "^3.0.4"
1708 | },
1709 | "engines": {
1710 | "node": "^10.12.0 || >=12.0.0"
1711 | }
1712 | },
1713 | "node_modules/fill-range": {
1714 | "version": "7.0.1",
1715 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1716 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1717 | "dependencies": {
1718 | "to-regex-range": "^5.0.1"
1719 | },
1720 | "engines": {
1721 | "node": ">=8"
1722 | }
1723 | },
1724 | "node_modules/find-up": {
1725 | "version": "5.0.0",
1726 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
1727 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
1728 | "dependencies": {
1729 | "locate-path": "^6.0.0",
1730 | "path-exists": "^4.0.0"
1731 | },
1732 | "engines": {
1733 | "node": ">=10"
1734 | },
1735 | "funding": {
1736 | "url": "https://github.com/sponsors/sindresorhus"
1737 | }
1738 | },
1739 | "node_modules/flat-cache": {
1740 | "version": "3.0.4",
1741 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
1742 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
1743 | "dependencies": {
1744 | "flatted": "^3.1.0",
1745 | "rimraf": "^3.0.2"
1746 | },
1747 | "engines": {
1748 | "node": "^10.12.0 || >=12.0.0"
1749 | }
1750 | },
1751 | "node_modules/flatted": {
1752 | "version": "3.2.7",
1753 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
1754 | "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ=="
1755 | },
1756 | "node_modules/follow-redirects": {
1757 | "version": "1.15.2",
1758 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
1759 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
1760 | "funding": [
1761 | {
1762 | "type": "individual",
1763 | "url": "https://github.com/sponsors/RubenVerborgh"
1764 | }
1765 | ],
1766 | "engines": {
1767 | "node": ">=4.0"
1768 | },
1769 | "peerDependenciesMeta": {
1770 | "debug": {
1771 | "optional": true
1772 | }
1773 | }
1774 | },
1775 | "node_modules/for-each": {
1776 | "version": "0.3.3",
1777 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
1778 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
1779 | "dependencies": {
1780 | "is-callable": "^1.1.3"
1781 | }
1782 | },
1783 | "node_modules/fs.realpath": {
1784 | "version": "1.0.0",
1785 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1786 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
1787 | },
1788 | "node_modules/function-bind": {
1789 | "version": "1.1.1",
1790 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1791 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
1792 | },
1793 | "node_modules/function.prototype.name": {
1794 | "version": "1.1.5",
1795 | "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
1796 | "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
1797 | "dependencies": {
1798 | "call-bind": "^1.0.2",
1799 | "define-properties": "^1.1.3",
1800 | "es-abstract": "^1.19.0",
1801 | "functions-have-names": "^1.2.2"
1802 | },
1803 | "engines": {
1804 | "node": ">= 0.4"
1805 | },
1806 | "funding": {
1807 | "url": "https://github.com/sponsors/ljharb"
1808 | }
1809 | },
1810 | "node_modules/functions-have-names": {
1811 | "version": "1.2.3",
1812 | "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
1813 | "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
1814 | "funding": {
1815 | "url": "https://github.com/sponsors/ljharb"
1816 | }
1817 | },
1818 | "node_modules/get-intrinsic": {
1819 | "version": "1.2.0",
1820 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
1821 | "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
1822 | "dependencies": {
1823 | "function-bind": "^1.1.1",
1824 | "has": "^1.0.3",
1825 | "has-symbols": "^1.0.3"
1826 | },
1827 | "funding": {
1828 | "url": "https://github.com/sponsors/ljharb"
1829 | }
1830 | },
1831 | "node_modules/get-symbol-description": {
1832 | "version": "1.0.0",
1833 | "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
1834 | "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
1835 | "dependencies": {
1836 | "call-bind": "^1.0.2",
1837 | "get-intrinsic": "^1.1.1"
1838 | },
1839 | "engines": {
1840 | "node": ">= 0.4"
1841 | },
1842 | "funding": {
1843 | "url": "https://github.com/sponsors/ljharb"
1844 | }
1845 | },
1846 | "node_modules/get-tsconfig": {
1847 | "version": "4.4.0",
1848 | "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.4.0.tgz",
1849 | "integrity": "sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==",
1850 | "funding": {
1851 | "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
1852 | }
1853 | },
1854 | "node_modules/glob": {
1855 | "version": "7.1.7",
1856 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
1857 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
1858 | "dependencies": {
1859 | "fs.realpath": "^1.0.0",
1860 | "inflight": "^1.0.4",
1861 | "inherits": "2",
1862 | "minimatch": "^3.0.4",
1863 | "once": "^1.3.0",
1864 | "path-is-absolute": "^1.0.0"
1865 | },
1866 | "engines": {
1867 | "node": "*"
1868 | },
1869 | "funding": {
1870 | "url": "https://github.com/sponsors/isaacs"
1871 | }
1872 | },
1873 | "node_modules/glob-parent": {
1874 | "version": "6.0.2",
1875 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
1876 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
1877 | "dependencies": {
1878 | "is-glob": "^4.0.3"
1879 | },
1880 | "engines": {
1881 | "node": ">=10.13.0"
1882 | }
1883 | },
1884 | "node_modules/globals": {
1885 | "version": "13.20.0",
1886 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
1887 | "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
1888 | "dependencies": {
1889 | "type-fest": "^0.20.2"
1890 | },
1891 | "engines": {
1892 | "node": ">=8"
1893 | },
1894 | "funding": {
1895 | "url": "https://github.com/sponsors/sindresorhus"
1896 | }
1897 | },
1898 | "node_modules/globalthis": {
1899 | "version": "1.0.3",
1900 | "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
1901 | "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
1902 | "dependencies": {
1903 | "define-properties": "^1.1.3"
1904 | },
1905 | "engines": {
1906 | "node": ">= 0.4"
1907 | },
1908 | "funding": {
1909 | "url": "https://github.com/sponsors/ljharb"
1910 | }
1911 | },
1912 | "node_modules/globalyzer": {
1913 | "version": "0.1.0",
1914 | "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
1915 | "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q=="
1916 | },
1917 | "node_modules/globby": {
1918 | "version": "11.1.0",
1919 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
1920 | "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
1921 | "dependencies": {
1922 | "array-union": "^2.1.0",
1923 | "dir-glob": "^3.0.1",
1924 | "fast-glob": "^3.2.9",
1925 | "ignore": "^5.2.0",
1926 | "merge2": "^1.4.1",
1927 | "slash": "^3.0.0"
1928 | },
1929 | "engines": {
1930 | "node": ">=10"
1931 | },
1932 | "funding": {
1933 | "url": "https://github.com/sponsors/sindresorhus"
1934 | }
1935 | },
1936 | "node_modules/globrex": {
1937 | "version": "0.1.2",
1938 | "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
1939 | "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg=="
1940 | },
1941 | "node_modules/gopd": {
1942 | "version": "1.0.1",
1943 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
1944 | "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
1945 | "dependencies": {
1946 | "get-intrinsic": "^1.1.3"
1947 | },
1948 | "funding": {
1949 | "url": "https://github.com/sponsors/ljharb"
1950 | }
1951 | },
1952 | "node_modules/graceful-fs": {
1953 | "version": "4.2.10",
1954 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
1955 | "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
1956 | },
1957 | "node_modules/grapheme-splitter": {
1958 | "version": "1.0.4",
1959 | "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
1960 | "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ=="
1961 | },
1962 | "node_modules/has": {
1963 | "version": "1.0.3",
1964 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1965 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1966 | "dependencies": {
1967 | "function-bind": "^1.1.1"
1968 | },
1969 | "engines": {
1970 | "node": ">= 0.4.0"
1971 | }
1972 | },
1973 | "node_modules/has-bigints": {
1974 | "version": "1.0.2",
1975 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
1976 | "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
1977 | "funding": {
1978 | "url": "https://github.com/sponsors/ljharb"
1979 | }
1980 | },
1981 | "node_modules/has-flag": {
1982 | "version": "4.0.0",
1983 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1984 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1985 | "engines": {
1986 | "node": ">=8"
1987 | }
1988 | },
1989 | "node_modules/has-property-descriptors": {
1990 | "version": "1.0.0",
1991 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
1992 | "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
1993 | "dependencies": {
1994 | "get-intrinsic": "^1.1.1"
1995 | },
1996 | "funding": {
1997 | "url": "https://github.com/sponsors/ljharb"
1998 | }
1999 | },
2000 | "node_modules/has-proto": {
2001 | "version": "1.0.1",
2002 | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
2003 | "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
2004 | "engines": {
2005 | "node": ">= 0.4"
2006 | },
2007 | "funding": {
2008 | "url": "https://github.com/sponsors/ljharb"
2009 | }
2010 | },
2011 | "node_modules/has-symbols": {
2012 | "version": "1.0.3",
2013 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
2014 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
2015 | "engines": {
2016 | "node": ">= 0.4"
2017 | },
2018 | "funding": {
2019 | "url": "https://github.com/sponsors/ljharb"
2020 | }
2021 | },
2022 | "node_modules/has-tostringtag": {
2023 | "version": "1.0.0",
2024 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
2025 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
2026 | "dependencies": {
2027 | "has-symbols": "^1.0.2"
2028 | },
2029 | "engines": {
2030 | "node": ">= 0.4"
2031 | },
2032 | "funding": {
2033 | "url": "https://github.com/sponsors/ljharb"
2034 | }
2035 | },
2036 | "node_modules/ignore": {
2037 | "version": "5.2.4",
2038 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
2039 | "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
2040 | "engines": {
2041 | "node": ">= 4"
2042 | }
2043 | },
2044 | "node_modules/import-fresh": {
2045 | "version": "3.3.0",
2046 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
2047 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
2048 | "dependencies": {
2049 | "parent-module": "^1.0.0",
2050 | "resolve-from": "^4.0.0"
2051 | },
2052 | "engines": {
2053 | "node": ">=6"
2054 | },
2055 | "funding": {
2056 | "url": "https://github.com/sponsors/sindresorhus"
2057 | }
2058 | },
2059 | "node_modules/imurmurhash": {
2060 | "version": "0.1.4",
2061 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
2062 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
2063 | "engines": {
2064 | "node": ">=0.8.19"
2065 | }
2066 | },
2067 | "node_modules/inflight": {
2068 | "version": "1.0.6",
2069 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2070 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
2071 | "dependencies": {
2072 | "once": "^1.3.0",
2073 | "wrappy": "1"
2074 | }
2075 | },
2076 | "node_modules/inherits": {
2077 | "version": "2.0.4",
2078 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2079 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
2080 | },
2081 | "node_modules/internal-slot": {
2082 | "version": "1.0.5",
2083 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
2084 | "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
2085 | "dependencies": {
2086 | "get-intrinsic": "^1.2.0",
2087 | "has": "^1.0.3",
2088 | "side-channel": "^1.0.4"
2089 | },
2090 | "engines": {
2091 | "node": ">= 0.4"
2092 | }
2093 | },
2094 | "node_modules/is-arguments": {
2095 | "version": "1.1.1",
2096 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
2097 | "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
2098 | "dependencies": {
2099 | "call-bind": "^1.0.2",
2100 | "has-tostringtag": "^1.0.0"
2101 | },
2102 | "engines": {
2103 | "node": ">= 0.4"
2104 | },
2105 | "funding": {
2106 | "url": "https://github.com/sponsors/ljharb"
2107 | }
2108 | },
2109 | "node_modules/is-array-buffer": {
2110 | "version": "3.0.1",
2111 | "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz",
2112 | "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==",
2113 | "dependencies": {
2114 | "call-bind": "^1.0.2",
2115 | "get-intrinsic": "^1.1.3",
2116 | "is-typed-array": "^1.1.10"
2117 | },
2118 | "funding": {
2119 | "url": "https://github.com/sponsors/ljharb"
2120 | }
2121 | },
2122 | "node_modules/is-bigint": {
2123 | "version": "1.0.4",
2124 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
2125 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
2126 | "dependencies": {
2127 | "has-bigints": "^1.0.1"
2128 | },
2129 | "funding": {
2130 | "url": "https://github.com/sponsors/ljharb"
2131 | }
2132 | },
2133 | "node_modules/is-boolean-object": {
2134 | "version": "1.1.2",
2135 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
2136 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
2137 | "dependencies": {
2138 | "call-bind": "^1.0.2",
2139 | "has-tostringtag": "^1.0.0"
2140 | },
2141 | "engines": {
2142 | "node": ">= 0.4"
2143 | },
2144 | "funding": {
2145 | "url": "https://github.com/sponsors/ljharb"
2146 | }
2147 | },
2148 | "node_modules/is-callable": {
2149 | "version": "1.2.7",
2150 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
2151 | "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
2152 | "engines": {
2153 | "node": ">= 0.4"
2154 | },
2155 | "funding": {
2156 | "url": "https://github.com/sponsors/ljharb"
2157 | }
2158 | },
2159 | "node_modules/is-core-module": {
2160 | "version": "2.11.0",
2161 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
2162 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
2163 | "dependencies": {
2164 | "has": "^1.0.3"
2165 | },
2166 | "funding": {
2167 | "url": "https://github.com/sponsors/ljharb"
2168 | }
2169 | },
2170 | "node_modules/is-date-object": {
2171 | "version": "1.0.5",
2172 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
2173 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
2174 | "dependencies": {
2175 | "has-tostringtag": "^1.0.0"
2176 | },
2177 | "engines": {
2178 | "node": ">= 0.4"
2179 | },
2180 | "funding": {
2181 | "url": "https://github.com/sponsors/ljharb"
2182 | }
2183 | },
2184 | "node_modules/is-docker": {
2185 | "version": "2.2.1",
2186 | "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
2187 | "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
2188 | "bin": {
2189 | "is-docker": "cli.js"
2190 | },
2191 | "engines": {
2192 | "node": ">=8"
2193 | },
2194 | "funding": {
2195 | "url": "https://github.com/sponsors/sindresorhus"
2196 | }
2197 | },
2198 | "node_modules/is-extglob": {
2199 | "version": "2.1.1",
2200 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2201 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
2202 | "engines": {
2203 | "node": ">=0.10.0"
2204 | }
2205 | },
2206 | "node_modules/is-glob": {
2207 | "version": "4.0.3",
2208 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
2209 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
2210 | "dependencies": {
2211 | "is-extglob": "^2.1.1"
2212 | },
2213 | "engines": {
2214 | "node": ">=0.10.0"
2215 | }
2216 | },
2217 | "node_modules/is-map": {
2218 | "version": "2.0.2",
2219 | "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
2220 | "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
2221 | "funding": {
2222 | "url": "https://github.com/sponsors/ljharb"
2223 | }
2224 | },
2225 | "node_modules/is-negative-zero": {
2226 | "version": "2.0.2",
2227 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
2228 | "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
2229 | "engines": {
2230 | "node": ">= 0.4"
2231 | },
2232 | "funding": {
2233 | "url": "https://github.com/sponsors/ljharb"
2234 | }
2235 | },
2236 | "node_modules/is-number": {
2237 | "version": "7.0.0",
2238 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
2239 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
2240 | "engines": {
2241 | "node": ">=0.12.0"
2242 | }
2243 | },
2244 | "node_modules/is-number-object": {
2245 | "version": "1.0.7",
2246 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
2247 | "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
2248 | "dependencies": {
2249 | "has-tostringtag": "^1.0.0"
2250 | },
2251 | "engines": {
2252 | "node": ">= 0.4"
2253 | },
2254 | "funding": {
2255 | "url": "https://github.com/sponsors/ljharb"
2256 | }
2257 | },
2258 | "node_modules/is-path-inside": {
2259 | "version": "3.0.3",
2260 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
2261 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
2262 | "engines": {
2263 | "node": ">=8"
2264 | }
2265 | },
2266 | "node_modules/is-regex": {
2267 | "version": "1.1.4",
2268 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
2269 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
2270 | "dependencies": {
2271 | "call-bind": "^1.0.2",
2272 | "has-tostringtag": "^1.0.0"
2273 | },
2274 | "engines": {
2275 | "node": ">= 0.4"
2276 | },
2277 | "funding": {
2278 | "url": "https://github.com/sponsors/ljharb"
2279 | }
2280 | },
2281 | "node_modules/is-set": {
2282 | "version": "2.0.2",
2283 | "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
2284 | "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
2285 | "funding": {
2286 | "url": "https://github.com/sponsors/ljharb"
2287 | }
2288 | },
2289 | "node_modules/is-shared-array-buffer": {
2290 | "version": "1.0.2",
2291 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
2292 | "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
2293 | "dependencies": {
2294 | "call-bind": "^1.0.2"
2295 | },
2296 | "funding": {
2297 | "url": "https://github.com/sponsors/ljharb"
2298 | }
2299 | },
2300 | "node_modules/is-string": {
2301 | "version": "1.0.7",
2302 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
2303 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
2304 | "dependencies": {
2305 | "has-tostringtag": "^1.0.0"
2306 | },
2307 | "engines": {
2308 | "node": ">= 0.4"
2309 | },
2310 | "funding": {
2311 | "url": "https://github.com/sponsors/ljharb"
2312 | }
2313 | },
2314 | "node_modules/is-symbol": {
2315 | "version": "1.0.4",
2316 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
2317 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
2318 | "dependencies": {
2319 | "has-symbols": "^1.0.2"
2320 | },
2321 | "engines": {
2322 | "node": ">= 0.4"
2323 | },
2324 | "funding": {
2325 | "url": "https://github.com/sponsors/ljharb"
2326 | }
2327 | },
2328 | "node_modules/is-typed-array": {
2329 | "version": "1.1.10",
2330 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
2331 | "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
2332 | "dependencies": {
2333 | "available-typed-arrays": "^1.0.5",
2334 | "call-bind": "^1.0.2",
2335 | "for-each": "^0.3.3",
2336 | "gopd": "^1.0.1",
2337 | "has-tostringtag": "^1.0.0"
2338 | },
2339 | "engines": {
2340 | "node": ">= 0.4"
2341 | },
2342 | "funding": {
2343 | "url": "https://github.com/sponsors/ljharb"
2344 | }
2345 | },
2346 | "node_modules/is-weakmap": {
2347 | "version": "2.0.1",
2348 | "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
2349 | "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
2350 | "funding": {
2351 | "url": "https://github.com/sponsors/ljharb"
2352 | }
2353 | },
2354 | "node_modules/is-weakref": {
2355 | "version": "1.0.2",
2356 | "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
2357 | "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
2358 | "dependencies": {
2359 | "call-bind": "^1.0.2"
2360 | },
2361 | "funding": {
2362 | "url": "https://github.com/sponsors/ljharb"
2363 | }
2364 | },
2365 | "node_modules/is-weakset": {
2366 | "version": "2.0.2",
2367 | "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
2368 | "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
2369 | "dependencies": {
2370 | "call-bind": "^1.0.2",
2371 | "get-intrinsic": "^1.1.1"
2372 | },
2373 | "funding": {
2374 | "url": "https://github.com/sponsors/ljharb"
2375 | }
2376 | },
2377 | "node_modules/is-wsl": {
2378 | "version": "2.2.0",
2379 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
2380 | "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
2381 | "dependencies": {
2382 | "is-docker": "^2.0.0"
2383 | },
2384 | "engines": {
2385 | "node": ">=8"
2386 | }
2387 | },
2388 | "node_modules/isarray": {
2389 | "version": "2.0.5",
2390 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
2391 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
2392 | },
2393 | "node_modules/isexe": {
2394 | "version": "2.0.0",
2395 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2396 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
2397 | },
2398 | "node_modules/js-sdsl": {
2399 | "version": "4.3.0",
2400 | "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz",
2401 | "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==",
2402 | "funding": {
2403 | "type": "opencollective",
2404 | "url": "https://opencollective.com/js-sdsl"
2405 | }
2406 | },
2407 | "node_modules/js-tokens": {
2408 | "version": "4.0.0",
2409 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
2410 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
2411 | },
2412 | "node_modules/js-yaml": {
2413 | "version": "4.1.0",
2414 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
2415 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
2416 | "dependencies": {
2417 | "argparse": "^2.0.1"
2418 | },
2419 | "bin": {
2420 | "js-yaml": "bin/js-yaml.js"
2421 | }
2422 | },
2423 | "node_modules/json-schema-traverse": {
2424 | "version": "0.4.1",
2425 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2426 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
2427 | },
2428 | "node_modules/json-stable-stringify-without-jsonify": {
2429 | "version": "1.0.1",
2430 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
2431 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
2432 | },
2433 | "node_modules/json5": {
2434 | "version": "1.0.2",
2435 | "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
2436 | "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
2437 | "dependencies": {
2438 | "minimist": "^1.2.0"
2439 | },
2440 | "bin": {
2441 | "json5": "lib/cli.js"
2442 | }
2443 | },
2444 | "node_modules/jsx-ast-utils": {
2445 | "version": "3.3.3",
2446 | "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz",
2447 | "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==",
2448 | "dependencies": {
2449 | "array-includes": "^3.1.5",
2450 | "object.assign": "^4.1.3"
2451 | },
2452 | "engines": {
2453 | "node": ">=4.0"
2454 | }
2455 | },
2456 | "node_modules/keygrip": {
2457 | "version": "1.1.0",
2458 | "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
2459 | "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
2460 | "dependencies": {
2461 | "tsscmp": "1.0.6"
2462 | },
2463 | "engines": {
2464 | "node": ">= 0.6"
2465 | }
2466 | },
2467 | "node_modules/language-subtag-registry": {
2468 | "version": "0.3.22",
2469 | "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz",
2470 | "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w=="
2471 | },
2472 | "node_modules/language-tags": {
2473 | "version": "1.0.5",
2474 | "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
2475 | "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==",
2476 | "dependencies": {
2477 | "language-subtag-registry": "~0.3.2"
2478 | }
2479 | },
2480 | "node_modules/levn": {
2481 | "version": "0.4.1",
2482 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
2483 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
2484 | "dependencies": {
2485 | "prelude-ls": "^1.2.1",
2486 | "type-check": "~0.4.0"
2487 | },
2488 | "engines": {
2489 | "node": ">= 0.8.0"
2490 | }
2491 | },
2492 | "node_modules/locate-path": {
2493 | "version": "6.0.0",
2494 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
2495 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
2496 | "dependencies": {
2497 | "p-locate": "^5.0.0"
2498 | },
2499 | "engines": {
2500 | "node": ">=10"
2501 | },
2502 | "funding": {
2503 | "url": "https://github.com/sponsors/sindresorhus"
2504 | }
2505 | },
2506 | "node_modules/lodash.merge": {
2507 | "version": "4.6.2",
2508 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
2509 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
2510 | },
2511 | "node_modules/loose-envify": {
2512 | "version": "1.4.0",
2513 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
2514 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
2515 | "dependencies": {
2516 | "js-tokens": "^3.0.0 || ^4.0.0"
2517 | },
2518 | "bin": {
2519 | "loose-envify": "cli.js"
2520 | }
2521 | },
2522 | "node_modules/lru-cache": {
2523 | "version": "6.0.0",
2524 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
2525 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
2526 | "dependencies": {
2527 | "yallist": "^4.0.0"
2528 | },
2529 | "engines": {
2530 | "node": ">=10"
2531 | }
2532 | },
2533 | "node_modules/merge2": {
2534 | "version": "1.4.1",
2535 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
2536 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
2537 | "engines": {
2538 | "node": ">= 8"
2539 | }
2540 | },
2541 | "node_modules/micromatch": {
2542 | "version": "4.0.5",
2543 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
2544 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
2545 | "dependencies": {
2546 | "braces": "^3.0.2",
2547 | "picomatch": "^2.3.1"
2548 | },
2549 | "engines": {
2550 | "node": ">=8.6"
2551 | }
2552 | },
2553 | "node_modules/minimatch": {
2554 | "version": "3.1.2",
2555 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
2556 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
2557 | "dependencies": {
2558 | "brace-expansion": "^1.1.7"
2559 | },
2560 | "engines": {
2561 | "node": "*"
2562 | }
2563 | },
2564 | "node_modules/minimist": {
2565 | "version": "1.2.8",
2566 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
2567 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
2568 | "funding": {
2569 | "url": "https://github.com/sponsors/ljharb"
2570 | }
2571 | },
2572 | "node_modules/ms": {
2573 | "version": "2.1.2",
2574 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2575 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
2576 | },
2577 | "node_modules/nanoid": {
2578 | "version": "3.3.4",
2579 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
2580 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
2581 | "bin": {
2582 | "nanoid": "bin/nanoid.cjs"
2583 | },
2584 | "engines": {
2585 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
2586 | }
2587 | },
2588 | "node_modules/natural-compare": {
2589 | "version": "1.4.0",
2590 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
2591 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
2592 | },
2593 | "node_modules/next": {
2594 | "version": "13.1.6",
2595 | "resolved": "https://registry.npmjs.org/next/-/next-13.1.6.tgz",
2596 | "integrity": "sha512-hHlbhKPj9pW+Cymvfzc15lvhaOZ54l+8sXDXJWm3OBNBzgrVj6hwGPmqqsXg40xO1Leq+kXpllzRPuncpC0Phw==",
2597 | "dependencies": {
2598 | "@next/env": "13.1.6",
2599 | "@swc/helpers": "0.4.14",
2600 | "caniuse-lite": "^1.0.30001406",
2601 | "postcss": "8.4.14",
2602 | "styled-jsx": "5.1.1"
2603 | },
2604 | "bin": {
2605 | "next": "dist/bin/next"
2606 | },
2607 | "engines": {
2608 | "node": ">=14.6.0"
2609 | },
2610 | "optionalDependencies": {
2611 | "@next/swc-android-arm-eabi": "13.1.6",
2612 | "@next/swc-android-arm64": "13.1.6",
2613 | "@next/swc-darwin-arm64": "13.1.6",
2614 | "@next/swc-darwin-x64": "13.1.6",
2615 | "@next/swc-freebsd-x64": "13.1.6",
2616 | "@next/swc-linux-arm-gnueabihf": "13.1.6",
2617 | "@next/swc-linux-arm64-gnu": "13.1.6",
2618 | "@next/swc-linux-arm64-musl": "13.1.6",
2619 | "@next/swc-linux-x64-gnu": "13.1.6",
2620 | "@next/swc-linux-x64-musl": "13.1.6",
2621 | "@next/swc-win32-arm64-msvc": "13.1.6",
2622 | "@next/swc-win32-ia32-msvc": "13.1.6",
2623 | "@next/swc-win32-x64-msvc": "13.1.6"
2624 | },
2625 | "peerDependencies": {
2626 | "fibers": ">= 3.1.0",
2627 | "node-sass": "^6.0.0 || ^7.0.0",
2628 | "react": "^18.2.0",
2629 | "react-dom": "^18.2.0",
2630 | "sass": "^1.3.0"
2631 | },
2632 | "peerDependenciesMeta": {
2633 | "fibers": {
2634 | "optional": true
2635 | },
2636 | "node-sass": {
2637 | "optional": true
2638 | },
2639 | "sass": {
2640 | "optional": true
2641 | }
2642 | }
2643 | },
2644 | "node_modules/next-connect": {
2645 | "version": "0.13.0",
2646 | "resolved": "https://registry.npmjs.org/next-connect/-/next-connect-0.13.0.tgz",
2647 | "integrity": "sha512-f2G4edY01XomjCECSrgOpb/zzQinJO6Whd8Zds0+rLUYhj5cLwkh6FVvZsQCSSbxSc4k9nCwNuk5NLIhvO1gUA==",
2648 | "dependencies": {
2649 | "trouter": "^3.2.0"
2650 | }
2651 | },
2652 | "node_modules/object-assign": {
2653 | "version": "4.1.1",
2654 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
2655 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
2656 | "engines": {
2657 | "node": ">=0.10.0"
2658 | }
2659 | },
2660 | "node_modules/object-inspect": {
2661 | "version": "1.12.3",
2662 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
2663 | "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
2664 | "funding": {
2665 | "url": "https://github.com/sponsors/ljharb"
2666 | }
2667 | },
2668 | "node_modules/object-is": {
2669 | "version": "1.1.5",
2670 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
2671 | "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
2672 | "dependencies": {
2673 | "call-bind": "^1.0.2",
2674 | "define-properties": "^1.1.3"
2675 | },
2676 | "engines": {
2677 | "node": ">= 0.4"
2678 | },
2679 | "funding": {
2680 | "url": "https://github.com/sponsors/ljharb"
2681 | }
2682 | },
2683 | "node_modules/object-keys": {
2684 | "version": "1.1.1",
2685 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
2686 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
2687 | "engines": {
2688 | "node": ">= 0.4"
2689 | }
2690 | },
2691 | "node_modules/object.assign": {
2692 | "version": "4.1.4",
2693 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
2694 | "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
2695 | "dependencies": {
2696 | "call-bind": "^1.0.2",
2697 | "define-properties": "^1.1.4",
2698 | "has-symbols": "^1.0.3",
2699 | "object-keys": "^1.1.1"
2700 | },
2701 | "engines": {
2702 | "node": ">= 0.4"
2703 | },
2704 | "funding": {
2705 | "url": "https://github.com/sponsors/ljharb"
2706 | }
2707 | },
2708 | "node_modules/object.entries": {
2709 | "version": "1.1.6",
2710 | "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
2711 | "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
2712 | "dependencies": {
2713 | "call-bind": "^1.0.2",
2714 | "define-properties": "^1.1.4",
2715 | "es-abstract": "^1.20.4"
2716 | },
2717 | "engines": {
2718 | "node": ">= 0.4"
2719 | }
2720 | },
2721 | "node_modules/object.fromentries": {
2722 | "version": "2.0.6",
2723 | "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz",
2724 | "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==",
2725 | "dependencies": {
2726 | "call-bind": "^1.0.2",
2727 | "define-properties": "^1.1.4",
2728 | "es-abstract": "^1.20.4"
2729 | },
2730 | "engines": {
2731 | "node": ">= 0.4"
2732 | },
2733 | "funding": {
2734 | "url": "https://github.com/sponsors/ljharb"
2735 | }
2736 | },
2737 | "node_modules/object.hasown": {
2738 | "version": "1.1.2",
2739 | "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz",
2740 | "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==",
2741 | "dependencies": {
2742 | "define-properties": "^1.1.4",
2743 | "es-abstract": "^1.20.4"
2744 | },
2745 | "funding": {
2746 | "url": "https://github.com/sponsors/ljharb"
2747 | }
2748 | },
2749 | "node_modules/object.values": {
2750 | "version": "1.1.6",
2751 | "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
2752 | "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
2753 | "dependencies": {
2754 | "call-bind": "^1.0.2",
2755 | "define-properties": "^1.1.4",
2756 | "es-abstract": "^1.20.4"
2757 | },
2758 | "engines": {
2759 | "node": ">= 0.4"
2760 | },
2761 | "funding": {
2762 | "url": "https://github.com/sponsors/ljharb"
2763 | }
2764 | },
2765 | "node_modules/on-headers": {
2766 | "version": "1.0.2",
2767 | "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
2768 | "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
2769 | "engines": {
2770 | "node": ">= 0.8"
2771 | }
2772 | },
2773 | "node_modules/once": {
2774 | "version": "1.4.0",
2775 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2776 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
2777 | "dependencies": {
2778 | "wrappy": "1"
2779 | }
2780 | },
2781 | "node_modules/open": {
2782 | "version": "8.4.1",
2783 | "resolved": "https://registry.npmjs.org/open/-/open-8.4.1.tgz",
2784 | "integrity": "sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==",
2785 | "dependencies": {
2786 | "define-lazy-prop": "^2.0.0",
2787 | "is-docker": "^2.1.1",
2788 | "is-wsl": "^2.2.0"
2789 | },
2790 | "engines": {
2791 | "node": ">=12"
2792 | },
2793 | "funding": {
2794 | "url": "https://github.com/sponsors/sindresorhus"
2795 | }
2796 | },
2797 | "node_modules/openid": {
2798 | "version": "2.0.10",
2799 | "resolved": "https://registry.npmjs.org/openid/-/openid-2.0.10.tgz",
2800 | "integrity": "sha512-EFTQ61/OUVhCeq78Y3rBpdKSuvgb0lwkU8nN4QTdcv0afc5MT7e4IVuZwgkMsgE993dmhbIhkxHFP3iTVJXWmw==",
2801 | "dependencies": {
2802 | "axios": "^0.21.4",
2803 | "qs": "^6.5.2"
2804 | },
2805 | "engines": {
2806 | "node": ">= 0.6.0"
2807 | }
2808 | },
2809 | "node_modules/optionator": {
2810 | "version": "0.9.1",
2811 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
2812 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
2813 | "dependencies": {
2814 | "deep-is": "^0.1.3",
2815 | "fast-levenshtein": "^2.0.6",
2816 | "levn": "^0.4.1",
2817 | "prelude-ls": "^1.2.1",
2818 | "type-check": "^0.4.0",
2819 | "word-wrap": "^1.2.3"
2820 | },
2821 | "engines": {
2822 | "node": ">= 0.8.0"
2823 | }
2824 | },
2825 | "node_modules/p-limit": {
2826 | "version": "3.1.0",
2827 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
2828 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
2829 | "dependencies": {
2830 | "yocto-queue": "^0.1.0"
2831 | },
2832 | "engines": {
2833 | "node": ">=10"
2834 | },
2835 | "funding": {
2836 | "url": "https://github.com/sponsors/sindresorhus"
2837 | }
2838 | },
2839 | "node_modules/p-locate": {
2840 | "version": "5.0.0",
2841 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
2842 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
2843 | "dependencies": {
2844 | "p-limit": "^3.0.2"
2845 | },
2846 | "engines": {
2847 | "node": ">=10"
2848 | },
2849 | "funding": {
2850 | "url": "https://github.com/sponsors/sindresorhus"
2851 | }
2852 | },
2853 | "node_modules/parent-module": {
2854 | "version": "1.0.1",
2855 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
2856 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
2857 | "dependencies": {
2858 | "callsites": "^3.0.0"
2859 | },
2860 | "engines": {
2861 | "node": ">=6"
2862 | }
2863 | },
2864 | "node_modules/passport": {
2865 | "version": "0.4.1",
2866 | "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.1.tgz",
2867 | "integrity": "sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==",
2868 | "dependencies": {
2869 | "passport-strategy": "1.x.x",
2870 | "pause": "0.0.1"
2871 | },
2872 | "engines": {
2873 | "node": ">= 0.4.0"
2874 | }
2875 | },
2876 | "node_modules/passport-steam": {
2877 | "version": "1.0.17",
2878 | "resolved": "https://registry.npmjs.org/passport-steam/-/passport-steam-1.0.17.tgz",
2879 | "integrity": "sha512-aolIlooF5hZwp1GAaoK3d8einOGLeDDauQEmrb1jtEFrNYP2lC6WS5hVeUdP4rPfZiBHwY60lHcQksCKiSgnlA==",
2880 | "dependencies": {
2881 | "@passport-next/passport-openid": "^1.0.0",
2882 | "steam-web": "0.4.0"
2883 | },
2884 | "engines": {
2885 | "node": ">= 0.4.0"
2886 | }
2887 | },
2888 | "node_modules/passport-strategy": {
2889 | "version": "1.0.0",
2890 | "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
2891 | "integrity": "sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA==",
2892 | "engines": {
2893 | "node": ">= 0.4.0"
2894 | }
2895 | },
2896 | "node_modules/path-exists": {
2897 | "version": "4.0.0",
2898 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
2899 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
2900 | "engines": {
2901 | "node": ">=8"
2902 | }
2903 | },
2904 | "node_modules/path-is-absolute": {
2905 | "version": "1.0.1",
2906 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2907 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
2908 | "engines": {
2909 | "node": ">=0.10.0"
2910 | }
2911 | },
2912 | "node_modules/path-key": {
2913 | "version": "3.1.1",
2914 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2915 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2916 | "engines": {
2917 | "node": ">=8"
2918 | }
2919 | },
2920 | "node_modules/path-parse": {
2921 | "version": "1.0.7",
2922 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
2923 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
2924 | },
2925 | "node_modules/path-type": {
2926 | "version": "4.0.0",
2927 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
2928 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
2929 | "engines": {
2930 | "node": ">=8"
2931 | }
2932 | },
2933 | "node_modules/pause": {
2934 | "version": "0.0.1",
2935 | "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
2936 | "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg=="
2937 | },
2938 | "node_modules/picocolors": {
2939 | "version": "1.0.0",
2940 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
2941 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
2942 | },
2943 | "node_modules/picomatch": {
2944 | "version": "2.3.1",
2945 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2946 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2947 | "engines": {
2948 | "node": ">=8.6"
2949 | },
2950 | "funding": {
2951 | "url": "https://github.com/sponsors/jonschlinkert"
2952 | }
2953 | },
2954 | "node_modules/postcss": {
2955 | "version": "8.4.14",
2956 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
2957 | "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
2958 | "funding": [
2959 | {
2960 | "type": "opencollective",
2961 | "url": "https://opencollective.com/postcss/"
2962 | },
2963 | {
2964 | "type": "tidelift",
2965 | "url": "https://tidelift.com/funding/github/npm/postcss"
2966 | }
2967 | ],
2968 | "dependencies": {
2969 | "nanoid": "^3.3.4",
2970 | "picocolors": "^1.0.0",
2971 | "source-map-js": "^1.0.2"
2972 | },
2973 | "engines": {
2974 | "node": "^10 || ^12 || >=14"
2975 | }
2976 | },
2977 | "node_modules/prelude-ls": {
2978 | "version": "1.2.1",
2979 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
2980 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
2981 | "engines": {
2982 | "node": ">= 0.8.0"
2983 | }
2984 | },
2985 | "node_modules/prop-types": {
2986 | "version": "15.8.1",
2987 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
2988 | "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
2989 | "dependencies": {
2990 | "loose-envify": "^1.4.0",
2991 | "object-assign": "^4.1.1",
2992 | "react-is": "^16.13.1"
2993 | }
2994 | },
2995 | "node_modules/punycode": {
2996 | "version": "2.3.0",
2997 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
2998 | "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
2999 | "engines": {
3000 | "node": ">=6"
3001 | }
3002 | },
3003 | "node_modules/qs": {
3004 | "version": "6.11.0",
3005 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
3006 | "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
3007 | "dependencies": {
3008 | "side-channel": "^1.0.4"
3009 | },
3010 | "engines": {
3011 | "node": ">=0.6"
3012 | },
3013 | "funding": {
3014 | "url": "https://github.com/sponsors/ljharb"
3015 | }
3016 | },
3017 | "node_modules/queue-microtask": {
3018 | "version": "1.2.3",
3019 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
3020 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
3021 | "funding": [
3022 | {
3023 | "type": "github",
3024 | "url": "https://github.com/sponsors/feross"
3025 | },
3026 | {
3027 | "type": "patreon",
3028 | "url": "https://www.patreon.com/feross"
3029 | },
3030 | {
3031 | "type": "consulting",
3032 | "url": "https://feross.org/support"
3033 | }
3034 | ]
3035 | },
3036 | "node_modules/react": {
3037 | "version": "18.2.0",
3038 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
3039 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
3040 | "dependencies": {
3041 | "loose-envify": "^1.1.0"
3042 | },
3043 | "engines": {
3044 | "node": ">=0.10.0"
3045 | }
3046 | },
3047 | "node_modules/react-dom": {
3048 | "version": "18.2.0",
3049 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
3050 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
3051 | "dependencies": {
3052 | "loose-envify": "^1.1.0",
3053 | "scheduler": "^0.23.0"
3054 | },
3055 | "peerDependencies": {
3056 | "react": "^18.2.0"
3057 | }
3058 | },
3059 | "node_modules/react-is": {
3060 | "version": "16.13.1",
3061 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
3062 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
3063 | },
3064 | "node_modules/regenerator-runtime": {
3065 | "version": "0.13.11",
3066 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
3067 | "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
3068 | },
3069 | "node_modules/regexp.prototype.flags": {
3070 | "version": "1.4.3",
3071 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
3072 | "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
3073 | "dependencies": {
3074 | "call-bind": "^1.0.2",
3075 | "define-properties": "^1.1.3",
3076 | "functions-have-names": "^1.2.2"
3077 | },
3078 | "engines": {
3079 | "node": ">= 0.4"
3080 | },
3081 | "funding": {
3082 | "url": "https://github.com/sponsors/ljharb"
3083 | }
3084 | },
3085 | "node_modules/regexparam": {
3086 | "version": "1.3.0",
3087 | "resolved": "https://registry.npmjs.org/regexparam/-/regexparam-1.3.0.tgz",
3088 | "integrity": "sha512-6IQpFBv6e5vz1QAqI+V4k8P2e/3gRrqfCJ9FI+O1FLQTO+Uz6RXZEZOPmTJ6hlGj7gkERzY5BRCv09whKP96/g==",
3089 | "engines": {
3090 | "node": ">=6"
3091 | }
3092 | },
3093 | "node_modules/regexpp": {
3094 | "version": "3.2.0",
3095 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
3096 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
3097 | "engines": {
3098 | "node": ">=8"
3099 | },
3100 | "funding": {
3101 | "url": "https://github.com/sponsors/mysticatea"
3102 | }
3103 | },
3104 | "node_modules/resolve": {
3105 | "version": "1.22.1",
3106 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
3107 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
3108 | "dependencies": {
3109 | "is-core-module": "^2.9.0",
3110 | "path-parse": "^1.0.7",
3111 | "supports-preserve-symlinks-flag": "^1.0.0"
3112 | },
3113 | "bin": {
3114 | "resolve": "bin/resolve"
3115 | },
3116 | "funding": {
3117 | "url": "https://github.com/sponsors/ljharb"
3118 | }
3119 | },
3120 | "node_modules/resolve-from": {
3121 | "version": "4.0.0",
3122 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
3123 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
3124 | "engines": {
3125 | "node": ">=4"
3126 | }
3127 | },
3128 | "node_modules/reusify": {
3129 | "version": "1.0.4",
3130 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
3131 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
3132 | "engines": {
3133 | "iojs": ">=1.0.0",
3134 | "node": ">=0.10.0"
3135 | }
3136 | },
3137 | "node_modules/rimraf": {
3138 | "version": "3.0.2",
3139 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
3140 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
3141 | "dependencies": {
3142 | "glob": "^7.1.3"
3143 | },
3144 | "bin": {
3145 | "rimraf": "bin.js"
3146 | },
3147 | "funding": {
3148 | "url": "https://github.com/sponsors/isaacs"
3149 | }
3150 | },
3151 | "node_modules/run-parallel": {
3152 | "version": "1.2.0",
3153 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
3154 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
3155 | "funding": [
3156 | {
3157 | "type": "github",
3158 | "url": "https://github.com/sponsors/feross"
3159 | },
3160 | {
3161 | "type": "patreon",
3162 | "url": "https://www.patreon.com/feross"
3163 | },
3164 | {
3165 | "type": "consulting",
3166 | "url": "https://feross.org/support"
3167 | }
3168 | ],
3169 | "dependencies": {
3170 | "queue-microtask": "^1.2.2"
3171 | }
3172 | },
3173 | "node_modules/safe-buffer": {
3174 | "version": "5.2.1",
3175 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
3176 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
3177 | "funding": [
3178 | {
3179 | "type": "github",
3180 | "url": "https://github.com/sponsors/feross"
3181 | },
3182 | {
3183 | "type": "patreon",
3184 | "url": "https://www.patreon.com/feross"
3185 | },
3186 | {
3187 | "type": "consulting",
3188 | "url": "https://feross.org/support"
3189 | }
3190 | ]
3191 | },
3192 | "node_modules/safe-regex-test": {
3193 | "version": "1.0.0",
3194 | "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
3195 | "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
3196 | "dependencies": {
3197 | "call-bind": "^1.0.2",
3198 | "get-intrinsic": "^1.1.3",
3199 | "is-regex": "^1.1.4"
3200 | },
3201 | "funding": {
3202 | "url": "https://github.com/sponsors/ljharb"
3203 | }
3204 | },
3205 | "node_modules/scheduler": {
3206 | "version": "0.23.0",
3207 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
3208 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
3209 | "dependencies": {
3210 | "loose-envify": "^1.1.0"
3211 | }
3212 | },
3213 | "node_modules/semver": {
3214 | "version": "7.3.8",
3215 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
3216 | "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
3217 | "dependencies": {
3218 | "lru-cache": "^6.0.0"
3219 | },
3220 | "bin": {
3221 | "semver": "bin/semver.js"
3222 | },
3223 | "engines": {
3224 | "node": ">=10"
3225 | }
3226 | },
3227 | "node_modules/shebang-command": {
3228 | "version": "2.0.0",
3229 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
3230 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
3231 | "dependencies": {
3232 | "shebang-regex": "^3.0.0"
3233 | },
3234 | "engines": {
3235 | "node": ">=8"
3236 | }
3237 | },
3238 | "node_modules/shebang-regex": {
3239 | "version": "3.0.0",
3240 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
3241 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
3242 | "engines": {
3243 | "node": ">=8"
3244 | }
3245 | },
3246 | "node_modules/side-channel": {
3247 | "version": "1.0.4",
3248 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
3249 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
3250 | "dependencies": {
3251 | "call-bind": "^1.0.0",
3252 | "get-intrinsic": "^1.0.2",
3253 | "object-inspect": "^1.9.0"
3254 | },
3255 | "funding": {
3256 | "url": "https://github.com/sponsors/ljharb"
3257 | }
3258 | },
3259 | "node_modules/slash": {
3260 | "version": "3.0.0",
3261 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
3262 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
3263 | "engines": {
3264 | "node": ">=8"
3265 | }
3266 | },
3267 | "node_modules/source-map-js": {
3268 | "version": "1.0.2",
3269 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
3270 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
3271 | "engines": {
3272 | "node": ">=0.10.0"
3273 | }
3274 | },
3275 | "node_modules/steam-web": {
3276 | "version": "0.4.0",
3277 | "resolved": "https://registry.npmjs.org/steam-web/-/steam-web-0.4.0.tgz",
3278 | "integrity": "sha512-FgSYhL7GaP4Va5JKT09yZ+WrTZttFtLwenIPuZd7GUA1z3W7vu7qqPT/qTC76Pd9+sf85txMgIPr/y0+3gNlUA==",
3279 | "engines": [
3280 | "node >= 0.4.0"
3281 | ],
3282 | "dependencies": {
3283 | "qs": "^6.1.0"
3284 | }
3285 | },
3286 | "node_modules/stop-iteration-iterator": {
3287 | "version": "1.0.0",
3288 | "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz",
3289 | "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==",
3290 | "dependencies": {
3291 | "internal-slot": "^1.0.4"
3292 | },
3293 | "engines": {
3294 | "node": ">= 0.4"
3295 | }
3296 | },
3297 | "node_modules/string.prototype.matchall": {
3298 | "version": "4.0.8",
3299 | "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
3300 | "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==",
3301 | "dependencies": {
3302 | "call-bind": "^1.0.2",
3303 | "define-properties": "^1.1.4",
3304 | "es-abstract": "^1.20.4",
3305 | "get-intrinsic": "^1.1.3",
3306 | "has-symbols": "^1.0.3",
3307 | "internal-slot": "^1.0.3",
3308 | "regexp.prototype.flags": "^1.4.3",
3309 | "side-channel": "^1.0.4"
3310 | },
3311 | "funding": {
3312 | "url": "https://github.com/sponsors/ljharb"
3313 | }
3314 | },
3315 | "node_modules/string.prototype.trimend": {
3316 | "version": "1.0.6",
3317 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
3318 | "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
3319 | "dependencies": {
3320 | "call-bind": "^1.0.2",
3321 | "define-properties": "^1.1.4",
3322 | "es-abstract": "^1.20.4"
3323 | },
3324 | "funding": {
3325 | "url": "https://github.com/sponsors/ljharb"
3326 | }
3327 | },
3328 | "node_modules/string.prototype.trimstart": {
3329 | "version": "1.0.6",
3330 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
3331 | "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
3332 | "dependencies": {
3333 | "call-bind": "^1.0.2",
3334 | "define-properties": "^1.1.4",
3335 | "es-abstract": "^1.20.4"
3336 | },
3337 | "funding": {
3338 | "url": "https://github.com/sponsors/ljharb"
3339 | }
3340 | },
3341 | "node_modules/strip-ansi": {
3342 | "version": "6.0.1",
3343 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
3344 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
3345 | "dependencies": {
3346 | "ansi-regex": "^5.0.1"
3347 | },
3348 | "engines": {
3349 | "node": ">=8"
3350 | }
3351 | },
3352 | "node_modules/strip-bom": {
3353 | "version": "3.0.0",
3354 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
3355 | "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
3356 | "engines": {
3357 | "node": ">=4"
3358 | }
3359 | },
3360 | "node_modules/strip-json-comments": {
3361 | "version": "3.1.1",
3362 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
3363 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
3364 | "engines": {
3365 | "node": ">=8"
3366 | },
3367 | "funding": {
3368 | "url": "https://github.com/sponsors/sindresorhus"
3369 | }
3370 | },
3371 | "node_modules/styled-jsx": {
3372 | "version": "5.1.1",
3373 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
3374 | "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
3375 | "dependencies": {
3376 | "client-only": "0.0.1"
3377 | },
3378 | "engines": {
3379 | "node": ">= 12.0.0"
3380 | },
3381 | "peerDependencies": {
3382 | "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
3383 | },
3384 | "peerDependenciesMeta": {
3385 | "@babel/core": {
3386 | "optional": true
3387 | },
3388 | "babel-plugin-macros": {
3389 | "optional": true
3390 | }
3391 | }
3392 | },
3393 | "node_modules/supports-color": {
3394 | "version": "7.2.0",
3395 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3396 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3397 | "dependencies": {
3398 | "has-flag": "^4.0.0"
3399 | },
3400 | "engines": {
3401 | "node": ">=8"
3402 | }
3403 | },
3404 | "node_modules/supports-preserve-symlinks-flag": {
3405 | "version": "1.0.0",
3406 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
3407 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
3408 | "engines": {
3409 | "node": ">= 0.4"
3410 | },
3411 | "funding": {
3412 | "url": "https://github.com/sponsors/ljharb"
3413 | }
3414 | },
3415 | "node_modules/synckit": {
3416 | "version": "0.8.5",
3417 | "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz",
3418 | "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==",
3419 | "dependencies": {
3420 | "@pkgr/utils": "^2.3.1",
3421 | "tslib": "^2.5.0"
3422 | },
3423 | "engines": {
3424 | "node": "^14.18.0 || >=16.0.0"
3425 | },
3426 | "funding": {
3427 | "url": "https://opencollective.com/unts"
3428 | }
3429 | },
3430 | "node_modules/tapable": {
3431 | "version": "2.2.1",
3432 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
3433 | "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
3434 | "engines": {
3435 | "node": ">=6"
3436 | }
3437 | },
3438 | "node_modules/text-table": {
3439 | "version": "0.2.0",
3440 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
3441 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
3442 | },
3443 | "node_modules/tiny-glob": {
3444 | "version": "0.2.9",
3445 | "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
3446 | "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
3447 | "dependencies": {
3448 | "globalyzer": "0.1.0",
3449 | "globrex": "^0.1.2"
3450 | }
3451 | },
3452 | "node_modules/to-regex-range": {
3453 | "version": "5.0.1",
3454 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
3455 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
3456 | "dependencies": {
3457 | "is-number": "^7.0.0"
3458 | },
3459 | "engines": {
3460 | "node": ">=8.0"
3461 | }
3462 | },
3463 | "node_modules/trouter": {
3464 | "version": "3.2.0",
3465 | "resolved": "https://registry.npmjs.org/trouter/-/trouter-3.2.0.tgz",
3466 | "integrity": "sha512-rLLXbhTObLy2MBVjLC+jTnoIKw99n0GuJs9ov10J870vDw5qhTurPzsDrudNtBf5w/CZ9ctZy2p2IMmhGcel2w==",
3467 | "dependencies": {
3468 | "regexparam": "^1.3.0"
3469 | },
3470 | "engines": {
3471 | "node": ">=6"
3472 | }
3473 | },
3474 | "node_modules/tsconfig-paths": {
3475 | "version": "3.14.1",
3476 | "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
3477 | "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
3478 | "dependencies": {
3479 | "@types/json5": "^0.0.29",
3480 | "json5": "^1.0.1",
3481 | "minimist": "^1.2.6",
3482 | "strip-bom": "^3.0.0"
3483 | }
3484 | },
3485 | "node_modules/tslib": {
3486 | "version": "2.5.0",
3487 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
3488 | "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
3489 | },
3490 | "node_modules/tsscmp": {
3491 | "version": "1.0.6",
3492 | "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
3493 | "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==",
3494 | "engines": {
3495 | "node": ">=0.6.x"
3496 | }
3497 | },
3498 | "node_modules/tsutils": {
3499 | "version": "3.21.0",
3500 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
3501 | "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
3502 | "dependencies": {
3503 | "tslib": "^1.8.1"
3504 | },
3505 | "engines": {
3506 | "node": ">= 6"
3507 | },
3508 | "peerDependencies": {
3509 | "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
3510 | }
3511 | },
3512 | "node_modules/tsutils/node_modules/tslib": {
3513 | "version": "1.14.1",
3514 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
3515 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
3516 | },
3517 | "node_modules/type-check": {
3518 | "version": "0.4.0",
3519 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
3520 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
3521 | "dependencies": {
3522 | "prelude-ls": "^1.2.1"
3523 | },
3524 | "engines": {
3525 | "node": ">= 0.8.0"
3526 | }
3527 | },
3528 | "node_modules/type-fest": {
3529 | "version": "0.20.2",
3530 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
3531 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
3532 | "engines": {
3533 | "node": ">=10"
3534 | },
3535 | "funding": {
3536 | "url": "https://github.com/sponsors/sindresorhus"
3537 | }
3538 | },
3539 | "node_modules/typed-array-length": {
3540 | "version": "1.0.4",
3541 | "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
3542 | "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
3543 | "dependencies": {
3544 | "call-bind": "^1.0.2",
3545 | "for-each": "^0.3.3",
3546 | "is-typed-array": "^1.1.9"
3547 | },
3548 | "funding": {
3549 | "url": "https://github.com/sponsors/ljharb"
3550 | }
3551 | },
3552 | "node_modules/typescript": {
3553 | "version": "4.9.5",
3554 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
3555 | "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
3556 | "bin": {
3557 | "tsc": "bin/tsc",
3558 | "tsserver": "bin/tsserver"
3559 | },
3560 | "engines": {
3561 | "node": ">=4.2.0"
3562 | }
3563 | },
3564 | "node_modules/unbox-primitive": {
3565 | "version": "1.0.2",
3566 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
3567 | "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
3568 | "dependencies": {
3569 | "call-bind": "^1.0.2",
3570 | "has-bigints": "^1.0.2",
3571 | "has-symbols": "^1.0.3",
3572 | "which-boxed-primitive": "^1.0.2"
3573 | },
3574 | "funding": {
3575 | "url": "https://github.com/sponsors/ljharb"
3576 | }
3577 | },
3578 | "node_modules/uri-js": {
3579 | "version": "4.4.1",
3580 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
3581 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
3582 | "dependencies": {
3583 | "punycode": "^2.1.0"
3584 | }
3585 | },
3586 | "node_modules/which": {
3587 | "version": "2.0.2",
3588 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
3589 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
3590 | "dependencies": {
3591 | "isexe": "^2.0.0"
3592 | },
3593 | "bin": {
3594 | "node-which": "bin/node-which"
3595 | },
3596 | "engines": {
3597 | "node": ">= 8"
3598 | }
3599 | },
3600 | "node_modules/which-boxed-primitive": {
3601 | "version": "1.0.2",
3602 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
3603 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
3604 | "dependencies": {
3605 | "is-bigint": "^1.0.1",
3606 | "is-boolean-object": "^1.1.0",
3607 | "is-number-object": "^1.0.4",
3608 | "is-string": "^1.0.5",
3609 | "is-symbol": "^1.0.3"
3610 | },
3611 | "funding": {
3612 | "url": "https://github.com/sponsors/ljharb"
3613 | }
3614 | },
3615 | "node_modules/which-collection": {
3616 | "version": "1.0.1",
3617 | "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
3618 | "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
3619 | "dependencies": {
3620 | "is-map": "^2.0.1",
3621 | "is-set": "^2.0.1",
3622 | "is-weakmap": "^2.0.1",
3623 | "is-weakset": "^2.0.1"
3624 | },
3625 | "funding": {
3626 | "url": "https://github.com/sponsors/ljharb"
3627 | }
3628 | },
3629 | "node_modules/which-typed-array": {
3630 | "version": "1.1.9",
3631 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
3632 | "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
3633 | "dependencies": {
3634 | "available-typed-arrays": "^1.0.5",
3635 | "call-bind": "^1.0.2",
3636 | "for-each": "^0.3.3",
3637 | "gopd": "^1.0.1",
3638 | "has-tostringtag": "^1.0.0",
3639 | "is-typed-array": "^1.1.10"
3640 | },
3641 | "engines": {
3642 | "node": ">= 0.4"
3643 | },
3644 | "funding": {
3645 | "url": "https://github.com/sponsors/ljharb"
3646 | }
3647 | },
3648 | "node_modules/word-wrap": {
3649 | "version": "1.2.3",
3650 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
3651 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
3652 | "engines": {
3653 | "node": ">=0.10.0"
3654 | }
3655 | },
3656 | "node_modules/wrappy": {
3657 | "version": "1.0.2",
3658 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3659 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
3660 | },
3661 | "node_modules/yallist": {
3662 | "version": "4.0.0",
3663 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
3664 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
3665 | },
3666 | "node_modules/yocto-queue": {
3667 | "version": "0.1.0",
3668 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
3669 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
3670 | "engines": {
3671 | "node": ">=10"
3672 | },
3673 | "funding": {
3674 | "url": "https://github.com/sponsors/sindresorhus"
3675 | }
3676 | }
3677 | }
3678 | }
3679 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "next-auth-steam",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "next build",
8 | "start": "next start",
9 | "lint": "next lint"
10 | },
11 | "dependencies": {
12 | "@next/font": "13.1.6",
13 | "@types/node": "18.13.0",
14 | "@types/react": "18.0.28",
15 | "@types/react-dom": "18.0.10",
16 | "cookie-session": "^2.0.0",
17 | "crypto": "^1.0.1",
18 | "dotenv": "^16.0.3",
19 | "eslint": "8.34.0",
20 | "eslint-config-next": "13.1.6",
21 | "next": "13.1.6",
22 | "next-connect": "^0.13.0",
23 | "passport": "^0.4.1",
24 | "passport-steam": "^1.0.15",
25 | "react": "18.2.0",
26 | "react-dom": "18.2.0",
27 | "typescript": "4.9.5"
28 | },
29 | "devDependencies": {
30 | "@types/cookie-session": "^2.0.44",
31 | "@types/passport": "^1.0.11",
32 | "@types/passport-steam": "^1.0.1"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HilliamT/nextjs-steam-auth/d4fa8292c4c24ef71b37517b33d4fe0e31710967/public/favicon.ico
--------------------------------------------------------------------------------
/public/next.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/thirteen.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/vercel.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/lib/passport.ts:
--------------------------------------------------------------------------------
1 | import passport from "passport";
2 | import passportSteam from "passport-steam";
3 |
4 | const SteamStrategy = passportSteam.Strategy;
5 |
6 |
7 | export interface SteamProfile {
8 | displayName: string,
9 | id: string,
10 | identifier: string,
11 | photos: Image,
12 | provider: string
13 | }
14 |
15 | interface Image {
16 | value: string,
17 | }
18 | passport.serializeUser(function(user, done) {
19 | done(null, user);
20 | });
21 |
22 | passport.deserializeUser(function(obj: SteamProfile, done) {
23 | done(null, obj);
24 | });
25 |
26 | passport.use(new SteamStrategy({
27 | returnURL: `${process.env.DOMAIN}/api/auth/return`,
28 | realm: `${process.env.DOMAIN}`,
29 | apiKey: `${process.env.STEAM_API_KEY}`
30 | }, (_: string, profile: SteamProfile, done: (a: null | string,b: SteamProfile) => typeof done) => {
31 | // Fetch any more information to populate
32 | return done(null, profile);
33 | }));
34 |
35 | export default passport;
--------------------------------------------------------------------------------
/src/lib/router.ts:
--------------------------------------------------------------------------------
1 | import { NextApiRequest, NextApiResponse } from "next";
2 | import type { SteamProfile } from "./passport";
3 | import nextConnect from "next-connect";
4 | import passport from "./passport";
5 | import session from "cookie-session";
6 |
7 |
8 | export type NextSteamAuthApiRequest = NextApiRequest & {user: SteamProfile};
9 |
10 | const router = nextConnect();
11 |
12 |
13 | router.use(session({
14 | secret: process.env.SESSION_SECRET,
15 | maxAge: 1000 * 60 * 60 * 24 * 30 // 30 days
16 | }));
17 |
18 | // Passport
19 | router.use(passport.initialize());
20 | router.use(passport.session());
21 |
22 | export default router;
--------------------------------------------------------------------------------
/src/pages/_app.tsx:
--------------------------------------------------------------------------------
1 | import '@/styles/globals.css'
2 | import type { AppProps } from 'next/app'
3 |
4 | export default function App({ Component, pageProps }: AppProps) {
5 | return
6 | }
7 |
--------------------------------------------------------------------------------
/src/pages/_document.tsx:
--------------------------------------------------------------------------------
1 | import { Html, Head, Main, NextScript } from 'next/document'
2 |
3 | export default function Document() {
4 | return (
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | )
13 | }
14 |
--------------------------------------------------------------------------------
/src/pages/api/auth/login.ts:
--------------------------------------------------------------------------------
1 | import passport from '../../../lib/passport';
2 | import router from '../../../lib/router';
3 |
4 | interface AuthLoginResponse extends Response {
5 | redirect: (path: string) => any;
6 | }
7 |
8 | const path = "/api/auth/login";
9 |
10 | export default router
11 | .use(path, passport.authenticate("steam", { failureRedirect: "/"}))
12 | .get(path, (_, res: AuthLoginResponse) => res.redirect("/"));
--------------------------------------------------------------------------------
/src/pages/api/auth/logout.ts:
--------------------------------------------------------------------------------
1 | import router from "../../../lib/router";
2 |
3 | interface AuthLogoutRequest extends Request {
4 | logout: () => any;
5 | }
6 |
7 | interface AuthLogoutResponse extends Response {
8 | redirect: (path: string) => any;
9 | }
10 |
11 | const path = "/api/auth/logout";
12 |
13 | export default router
14 | .get(path, (req: AuthLogoutRequest, res: AuthLogoutResponse) => { req.logout(); res.redirect("/") });
--------------------------------------------------------------------------------
/src/pages/api/auth/return.ts:
--------------------------------------------------------------------------------
1 | import passport from "../../../lib/passport";
2 | import router from "../../../lib/router";
3 |
4 | interface AuthReturnResponse extends Response {
5 | redirect: (path: string) => any;
6 | }
7 |
8 | const path = "/api/auth/return";
9 |
10 | export default router
11 | .use(path, passport.authenticate("steam", { failureRedirect: "/" }))
12 | .get(path, (_, res: AuthReturnResponse) => { res.redirect("/") });
13 |
--------------------------------------------------------------------------------
/src/pages/index.tsx:
--------------------------------------------------------------------------------
1 | import Link from "next/link";
2 | import router from "../lib/router";
3 | import { NextApiRequest, NextApiResponse } from "next";
4 |
5 | import { SteamProfile } from "@/lib/passport";
6 | import type { NextSteamAuthApiRequest } from "../lib/router";
7 |
8 | export default function Index({ user }:{user: SteamProfile}) {
9 | console.log(user) // Shows the SteamProfile object in console.
10 | return
11 | {user
12 | ?
13 | Welcome back!
14 | From logging in, your SteamID is {user.id}.
15 | You can call other APIs to get more information within `getServerSideProps` or within `lib/passport.ts`.
16 | Logout
17 |
18 |
19 | :
20 | Welcome!
21 | Login
22 |
23 | }
24 |
;
25 | }
26 |
27 |
28 | export async function getServerSideProps({ req, res}:{req: NextSteamAuthApiRequest, res: NextApiResponse}) {
29 | await router.run(req, res);
30 | return { props: { user: req.user || null } };
31 | }
--------------------------------------------------------------------------------
/src/styles/globals.css:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HilliamT/nextjs-steam-auth/d4fa8292c4c24ef71b37517b33d4fe0e31710967/src/styles/globals.css
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "skipLibCheck": true,
7 | "noImplicitAny": true,
8 | "strict": true,
9 | "forceConsistentCasingInFileNames": true,
10 | "noEmit": true,
11 | "esModuleInterop": true,
12 | "module": "esnext",
13 | "moduleResolution": "node",
14 | "resolveJsonModule": true,
15 | "isolatedModules": true,
16 | "jsx": "preserve",
17 | "incremental": true,
18 | "baseUrl": ".",
19 | "paths": {
20 | "@/*": ["./src/*"]
21 | }
22 | },
23 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
24 | "exclude": ["node_modules"]
25 | }
26 |
--------------------------------------------------------------------------------