├── .env.example ├── .eslintrc.json ├── .gitignore ├── .prettierrc ├── README.md ├── next.config.mjs ├── package.json ├── pnpm-lock.yaml ├── public └── favicon.ico ├── src ├── env │ ├── client.mjs │ ├── schema.mjs │ └── server.mjs ├── pages │ ├── _app.tsx │ ├── api │ │ └── trpc │ │ │ └── [trpc].ts │ ├── gsspCaller.tsx │ ├── gsspFunction.tsx │ ├── gsspFunctionInitialData.tsx │ ├── gsspSSGHelpers.tsx │ ├── index.module.css │ └── index.tsx ├── server │ ├── api │ │ ├── example0-problem │ │ │ └── products.ts │ │ ├── example1-one-file │ │ │ └── product.ts │ │ ├── example2-split-files │ │ │ ├── _product.ts │ │ │ ├── getDiscountedProduct.ts │ │ │ └── getProduct.ts │ │ ├── root.ts │ │ └── trpc.ts │ └── db.ts ├── styles │ └── globals.css └── utils │ ├── api.ts │ └── test.ts ├── testCaller.ts └── tsconfig.json /.env.example: -------------------------------------------------------------------------------- 1 | # Since .env is gitignored, you can use .env.example to build a new `.env` file when you clone the repo. 2 | # Keep this file up-to-date when you add new variables to `.env`. 3 | 4 | # This file will be committed to version control, so make sure not to have any secrets in it. 5 | # If you are cloning this repo, create a copy of this file named `.env` and populate it with your secrets. 6 | 7 | # When adding additional env variables, the schema in /env/schema.mjs should be updated accordingly 8 | # Example: 9 | # SERVERVAR=foo 10 | # NEXT_PUBLIC_CLIENTVAR=bar 11 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "overrides": [ 3 | { 4 | "extends": [ 5 | "plugin:@typescript-eslint/recommended-requiring-type-checking" 6 | ], 7 | "files": ["*.ts", "*.tsx"], 8 | "parserOptions": { 9 | "project": "tsconfig.json" 10 | } 11 | } 12 | ], 13 | "parser": "@typescript-eslint/parser", 14 | "parserOptions": { 15 | "project": "./tsconfig.json" 16 | }, 17 | "plugins": ["@typescript-eslint"], 18 | "extends": ["next/core-web-vitals", "plugin:@typescript-eslint/recommended"], 19 | "rules": { 20 | "@typescript-eslint/consistent-type-imports": "warn" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /.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 | # database 12 | /prisma/db.sqlite 13 | /prisma/db.sqlite-journal 14 | 15 | # next.js 16 | /.next/ 17 | /out/ 18 | next-env.d.ts 19 | 20 | # production 21 | /build 22 | 23 | # misc 24 | .DS_Store 25 | *.pem 26 | 27 | # debug 28 | npm-debug.log* 29 | yarn-debug.log* 30 | yarn-error.log* 31 | .pnpm-debug.log* 32 | 33 | # local env files 34 | # do not commit any .env files to git, except for the .env.example file. https://create.t3.gg/en/usage/env-variables#using-environment-variables 35 | .env 36 | .env*.local 37 | 38 | # vercel 39 | .vercel 40 | 41 | # typescript 42 | *.tsbuildinfo 43 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "singleQuote": false, 5 | "printWidth": 80 6 | } 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | for video 2 | -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | /** 3 | * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. 4 | * This is especially useful for Docker builds. 5 | */ 6 | !process.env.SKIP_ENV_VALIDATION && (await import("./src/env/server.mjs")); 7 | 8 | /** @type {import("next").NextConfig} */ 9 | const config = { 10 | reactStrictMode: true, 11 | /* If trying out the experimental appDir, comment the i18n config out 12 | * @see https://github.com/vercel/next.js/issues/41980 */ 13 | i18n: { 14 | locales: ["en"], 15 | defaultLocale: "en", 16 | }, 17 | }; 18 | export default config; 19 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "you-dont-need-callers", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "build": "next build", 7 | "dev": "next dev", 8 | "lint": "next lint", 9 | "start": "next start" 10 | }, 11 | "dependencies": { 12 | "@tanstack/react-query": "^4.20.0", 13 | "@trpc/client": "^10.8.1", 14 | "@trpc/next": "^10.8.1", 15 | "@trpc/react-query": "^10.8.1", 16 | "@trpc/server": "^10.8.1", 17 | "next": "13.1.2", 18 | "react": "18.2.0", 19 | "react-dom": "18.2.0", 20 | "superjson": "1.9.1", 21 | "vitest": "^0.28.3", 22 | "zod": "^3.20.2" 23 | }, 24 | "devDependencies": { 25 | "@types/node": "^18.11.18", 26 | "@types/react": "^18.0.26", 27 | "@types/react-dom": "^18.0.10", 28 | "@typescript-eslint/eslint-plugin": "^5.47.1", 29 | "@typescript-eslint/parser": "^5.47.1", 30 | "eslint": "^8.30.0", 31 | "eslint-config-next": "13.1.2", 32 | "typescript": "^4.9.4" 33 | }, 34 | "ct3aMetadata": { 35 | "initVersion": "7.3.2" 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@tanstack/react-query': ^4.20.0 5 | '@trpc/client': ^10.8.1 6 | '@trpc/next': ^10.8.1 7 | '@trpc/react-query': ^10.8.1 8 | '@trpc/server': ^10.8.1 9 | '@types/node': ^18.11.18 10 | '@types/react': ^18.0.26 11 | '@types/react-dom': ^18.0.10 12 | '@typescript-eslint/eslint-plugin': ^5.47.1 13 | '@typescript-eslint/parser': ^5.47.1 14 | eslint: ^8.30.0 15 | eslint-config-next: 13.1.2 16 | next: 13.1.2 17 | react: 18.2.0 18 | react-dom: 18.2.0 19 | superjson: 1.9.1 20 | typescript: ^4.9.4 21 | vitest: ^0.28.3 22 | zod: ^3.20.2 23 | 24 | dependencies: 25 | '@tanstack/react-query': 4.22.0_biqbaboplfbrettd7655fr4n2y 26 | '@trpc/client': 10.9.0_@trpc+server@10.9.0 27 | '@trpc/next': 10.9.0_sji75b74l6vpjj45puor62wqge 28 | '@trpc/react-query': 10.9.0_qw4miir7nnxijwjta54q3esyeq 29 | '@trpc/server': 10.9.0 30 | next: 13.1.2_biqbaboplfbrettd7655fr4n2y 31 | react: 18.2.0 32 | react-dom: 18.2.0_react@18.2.0 33 | superjson: 1.9.1 34 | vitest: 0.28.3 35 | zod: 3.20.2 36 | 37 | devDependencies: 38 | '@types/node': 18.11.18 39 | '@types/react': 18.0.27 40 | '@types/react-dom': 18.0.10 41 | '@typescript-eslint/eslint-plugin': 5.48.2_caon6io6stgpr7lz2rtbhekxqy 42 | '@typescript-eslint/parser': 5.48.2_7uibuqfxkfaozanbtbziikiqje 43 | eslint: 8.32.0 44 | eslint-config-next: 13.1.2_7uibuqfxkfaozanbtbziikiqje 45 | typescript: 4.9.4 46 | 47 | packages: 48 | 49 | /@babel/runtime/7.20.7: 50 | resolution: {integrity: sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==} 51 | engines: {node: '>=6.9.0'} 52 | dependencies: 53 | regenerator-runtime: 0.13.11 54 | dev: true 55 | 56 | /@esbuild/android-arm/0.16.17: 57 | resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} 58 | engines: {node: '>=12'} 59 | cpu: [arm] 60 | os: [android] 61 | requiresBuild: true 62 | dev: false 63 | optional: true 64 | 65 | /@esbuild/android-arm64/0.16.17: 66 | resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} 67 | engines: {node: '>=12'} 68 | cpu: [arm64] 69 | os: [android] 70 | requiresBuild: true 71 | dev: false 72 | optional: true 73 | 74 | /@esbuild/android-x64/0.16.17: 75 | resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==} 76 | engines: {node: '>=12'} 77 | cpu: [x64] 78 | os: [android] 79 | requiresBuild: true 80 | dev: false 81 | optional: true 82 | 83 | /@esbuild/darwin-arm64/0.16.17: 84 | resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==} 85 | engines: {node: '>=12'} 86 | cpu: [arm64] 87 | os: [darwin] 88 | requiresBuild: true 89 | dev: false 90 | optional: true 91 | 92 | /@esbuild/darwin-x64/0.16.17: 93 | resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==} 94 | engines: {node: '>=12'} 95 | cpu: [x64] 96 | os: [darwin] 97 | requiresBuild: true 98 | dev: false 99 | optional: true 100 | 101 | /@esbuild/freebsd-arm64/0.16.17: 102 | resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==} 103 | engines: {node: '>=12'} 104 | cpu: [arm64] 105 | os: [freebsd] 106 | requiresBuild: true 107 | dev: false 108 | optional: true 109 | 110 | /@esbuild/freebsd-x64/0.16.17: 111 | resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==} 112 | engines: {node: '>=12'} 113 | cpu: [x64] 114 | os: [freebsd] 115 | requiresBuild: true 116 | dev: false 117 | optional: true 118 | 119 | /@esbuild/linux-arm/0.16.17: 120 | resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==} 121 | engines: {node: '>=12'} 122 | cpu: [arm] 123 | os: [linux] 124 | requiresBuild: true 125 | dev: false 126 | optional: true 127 | 128 | /@esbuild/linux-arm64/0.16.17: 129 | resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==} 130 | engines: {node: '>=12'} 131 | cpu: [arm64] 132 | os: [linux] 133 | requiresBuild: true 134 | dev: false 135 | optional: true 136 | 137 | /@esbuild/linux-ia32/0.16.17: 138 | resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==} 139 | engines: {node: '>=12'} 140 | cpu: [ia32] 141 | os: [linux] 142 | requiresBuild: true 143 | dev: false 144 | optional: true 145 | 146 | /@esbuild/linux-loong64/0.16.17: 147 | resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} 148 | engines: {node: '>=12'} 149 | cpu: [loong64] 150 | os: [linux] 151 | requiresBuild: true 152 | dev: false 153 | optional: true 154 | 155 | /@esbuild/linux-mips64el/0.16.17: 156 | resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==} 157 | engines: {node: '>=12'} 158 | cpu: [mips64el] 159 | os: [linux] 160 | requiresBuild: true 161 | dev: false 162 | optional: true 163 | 164 | /@esbuild/linux-ppc64/0.16.17: 165 | resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==} 166 | engines: {node: '>=12'} 167 | cpu: [ppc64] 168 | os: [linux] 169 | requiresBuild: true 170 | dev: false 171 | optional: true 172 | 173 | /@esbuild/linux-riscv64/0.16.17: 174 | resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==} 175 | engines: {node: '>=12'} 176 | cpu: [riscv64] 177 | os: [linux] 178 | requiresBuild: true 179 | dev: false 180 | optional: true 181 | 182 | /@esbuild/linux-s390x/0.16.17: 183 | resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==} 184 | engines: {node: '>=12'} 185 | cpu: [s390x] 186 | os: [linux] 187 | requiresBuild: true 188 | dev: false 189 | optional: true 190 | 191 | /@esbuild/linux-x64/0.16.17: 192 | resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==} 193 | engines: {node: '>=12'} 194 | cpu: [x64] 195 | os: [linux] 196 | requiresBuild: true 197 | dev: false 198 | optional: true 199 | 200 | /@esbuild/netbsd-x64/0.16.17: 201 | resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==} 202 | engines: {node: '>=12'} 203 | cpu: [x64] 204 | os: [netbsd] 205 | requiresBuild: true 206 | dev: false 207 | optional: true 208 | 209 | /@esbuild/openbsd-x64/0.16.17: 210 | resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==} 211 | engines: {node: '>=12'} 212 | cpu: [x64] 213 | os: [openbsd] 214 | requiresBuild: true 215 | dev: false 216 | optional: true 217 | 218 | /@esbuild/sunos-x64/0.16.17: 219 | resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==} 220 | engines: {node: '>=12'} 221 | cpu: [x64] 222 | os: [sunos] 223 | requiresBuild: true 224 | dev: false 225 | optional: true 226 | 227 | /@esbuild/win32-arm64/0.16.17: 228 | resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==} 229 | engines: {node: '>=12'} 230 | cpu: [arm64] 231 | os: [win32] 232 | requiresBuild: true 233 | dev: false 234 | optional: true 235 | 236 | /@esbuild/win32-ia32/0.16.17: 237 | resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==} 238 | engines: {node: '>=12'} 239 | cpu: [ia32] 240 | os: [win32] 241 | requiresBuild: true 242 | dev: false 243 | optional: true 244 | 245 | /@esbuild/win32-x64/0.16.17: 246 | resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==} 247 | engines: {node: '>=12'} 248 | cpu: [x64] 249 | os: [win32] 250 | requiresBuild: true 251 | dev: false 252 | optional: true 253 | 254 | /@eslint/eslintrc/1.4.1: 255 | resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} 256 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 257 | dependencies: 258 | ajv: 6.12.6 259 | debug: 4.3.4 260 | espree: 9.4.1 261 | globals: 13.19.0 262 | ignore: 5.2.4 263 | import-fresh: 3.3.0 264 | js-yaml: 4.1.0 265 | minimatch: 3.1.2 266 | strip-json-comments: 3.1.1 267 | transitivePeerDependencies: 268 | - supports-color 269 | dev: true 270 | 271 | /@humanwhocodes/config-array/0.11.8: 272 | resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} 273 | engines: {node: '>=10.10.0'} 274 | dependencies: 275 | '@humanwhocodes/object-schema': 1.2.1 276 | debug: 4.3.4 277 | minimatch: 3.1.2 278 | transitivePeerDependencies: 279 | - supports-color 280 | dev: true 281 | 282 | /@humanwhocodes/module-importer/1.0.1: 283 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 284 | engines: {node: '>=12.22'} 285 | dev: true 286 | 287 | /@humanwhocodes/object-schema/1.2.1: 288 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 289 | dev: true 290 | 291 | /@next/env/13.1.2: 292 | resolution: {integrity: sha512-PpT4UZIX66VMTqXt4HKEJ+/PwbS+tWmmhZlazaws1a+dbUA5pPdjntQ46Jvj616i3ZKN9doS9LHx3y50RLjAWg==} 293 | dev: false 294 | 295 | /@next/eslint-plugin-next/13.1.2: 296 | resolution: {integrity: sha512-WGaNVvIYphdriesP6r7jq/8l7u38tzotnVQuxc1RYKLqYYApSsrebti3OCPoT3Gx0pw2smPIFHH98RzcsgW5GQ==} 297 | dependencies: 298 | glob: 7.1.7 299 | dev: true 300 | 301 | /@next/swc-android-arm-eabi/13.1.2: 302 | resolution: {integrity: sha512-7mRz1owoGsbfIcdOJA3kk7KEwPZ+OvVT1z9DkR/yru4QdVLF69h/1SHy0vlUNQMxDRllabhxCfkoZCB34GOGAg==} 303 | engines: {node: '>= 10'} 304 | cpu: [arm] 305 | os: [android] 306 | requiresBuild: true 307 | dev: false 308 | optional: true 309 | 310 | /@next/swc-android-arm64/13.1.2: 311 | resolution: {integrity: sha512-mgjZ2eJSayovQm1LcE54BLSI4jjnnnLtq5GY5g+DdPuUiCT644gKtjZ/w2BQvuIecCqqBO+Ph9yzo/wUTq7NLg==} 312 | engines: {node: '>= 10'} 313 | cpu: [arm64] 314 | os: [android] 315 | requiresBuild: true 316 | dev: false 317 | optional: true 318 | 319 | /@next/swc-darwin-arm64/13.1.2: 320 | resolution: {integrity: sha512-RikoQqy109r2222UJlyGs4dZw2BibkfPqpeFdW5JEGv+L2PStlHID8DwyVYbmHfQ0VIBGvbf/NAUtFakAWlhwg==} 321 | engines: {node: '>= 10'} 322 | cpu: [arm64] 323 | os: [darwin] 324 | requiresBuild: true 325 | dev: false 326 | optional: true 327 | 328 | /@next/swc-darwin-x64/13.1.2: 329 | resolution: {integrity: sha512-JbDZjaTvL8gyPC5TAH6OnD4jmXPkyUxRYPvu08ZmhT/XAFBb/Cso0BdXyDax/BPCG70mimP9d3hXNKNq+A0VtQ==} 330 | engines: {node: '>= 10'} 331 | cpu: [x64] 332 | os: [darwin] 333 | requiresBuild: true 334 | dev: false 335 | optional: true 336 | 337 | /@next/swc-freebsd-x64/13.1.2: 338 | resolution: {integrity: sha512-ax4j8VrdFQ/xc3W7Om0u1vnDxVApQHKsChBbAMynCrnycZmpbqK4MZu4ZkycT+mx2eccCiqZROpbzDbEdPosEw==} 339 | engines: {node: '>= 10'} 340 | cpu: [x64] 341 | os: [freebsd] 342 | requiresBuild: true 343 | dev: false 344 | optional: true 345 | 346 | /@next/swc-linux-arm-gnueabihf/13.1.2: 347 | resolution: {integrity: sha512-NcRHTesnCxnUvSJa637PQJffBBkmqi5XS/xVWGY7dI6nyJ+pC96Oj7kd+mcjnFUQI5lHKbg39qBWKtOzbezc4w==} 348 | engines: {node: '>= 10'} 349 | cpu: [arm] 350 | os: [linux] 351 | requiresBuild: true 352 | dev: false 353 | optional: true 354 | 355 | /@next/swc-linux-arm64-gnu/13.1.2: 356 | resolution: {integrity: sha512-AxJdjocLtPrsBY4P2COSBIc3crT5bpjgGenNuINoensOlXhBkYM0aRDYZdydwXOhG+kN2ngUvfgitop9pa204w==} 357 | engines: {node: '>= 10'} 358 | cpu: [arm64] 359 | os: [linux] 360 | requiresBuild: true 361 | dev: false 362 | optional: true 363 | 364 | /@next/swc-linux-arm64-musl/13.1.2: 365 | resolution: {integrity: sha512-JmNimDkcCRq7P5zpkdqeaSZ69qKDntEPtyIaMNWqy5M0WUJxGim0Fs6Qzxayiyvuuh9Guxks4woQ/j/ZvX/c8Q==} 366 | engines: {node: '>= 10'} 367 | cpu: [arm64] 368 | os: [linux] 369 | requiresBuild: true 370 | dev: false 371 | optional: true 372 | 373 | /@next/swc-linux-x64-gnu/13.1.2: 374 | resolution: {integrity: sha512-TsLsjZwUlgmvI42neTuIoD6K9RlXCUzqPtvIClgXxVO0um0DiZwK+M+0zX/uVXhMVphfPY2c5YeR1zFSIONY4A==} 375 | engines: {node: '>= 10'} 376 | cpu: [x64] 377 | os: [linux] 378 | requiresBuild: true 379 | dev: false 380 | optional: true 381 | 382 | /@next/swc-linux-x64-musl/13.1.2: 383 | resolution: {integrity: sha512-eSkyXgCXydEFPTkcncQOGepafedPte6JT/OofB9uvruucrrMVBagCASOuPxodWEMrlfEKSXVnExMKIlfmQMD7A==} 384 | engines: {node: '>= 10'} 385 | cpu: [x64] 386 | os: [linux] 387 | requiresBuild: true 388 | dev: false 389 | optional: true 390 | 391 | /@next/swc-win32-arm64-msvc/13.1.2: 392 | resolution: {integrity: sha512-DmXFaRTgt2KrV9dmRLifDJE+cYiutHVFIw5/C9BtnwXH39uf3YbPxeD98vNrtqqqZVVLXY/1ySaSIwzYnqeY9g==} 393 | engines: {node: '>= 10'} 394 | cpu: [arm64] 395 | os: [win32] 396 | requiresBuild: true 397 | dev: false 398 | optional: true 399 | 400 | /@next/swc-win32-ia32-msvc/13.1.2: 401 | resolution: {integrity: sha512-3+nBkuFs/wT+lmRVQNH5SyDT7I4vUlNPntosEaEP63FuYQdPLaxz0GvcR66MdFSFh2fsvazpe4wciOwVS4FItQ==} 402 | engines: {node: '>= 10'} 403 | cpu: [ia32] 404 | os: [win32] 405 | requiresBuild: true 406 | dev: false 407 | optional: true 408 | 409 | /@next/swc-win32-x64-msvc/13.1.2: 410 | resolution: {integrity: sha512-avsyveEvcvH42PvKjR4Pb8JlLttuGURr2H3ZhS2b85pHOiZ7yjH3rMUoGnNzuLMApyxYaCvd4MedPrLhnNhkog==} 411 | engines: {node: '>= 10'} 412 | cpu: [x64] 413 | os: [win32] 414 | requiresBuild: true 415 | dev: false 416 | optional: true 417 | 418 | /@nodelib/fs.scandir/2.1.5: 419 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 420 | engines: {node: '>= 8'} 421 | dependencies: 422 | '@nodelib/fs.stat': 2.0.5 423 | run-parallel: 1.2.0 424 | dev: true 425 | 426 | /@nodelib/fs.stat/2.0.5: 427 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 428 | engines: {node: '>= 8'} 429 | dev: true 430 | 431 | /@nodelib/fs.walk/1.2.8: 432 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 433 | engines: {node: '>= 8'} 434 | dependencies: 435 | '@nodelib/fs.scandir': 2.1.5 436 | fastq: 1.15.0 437 | dev: true 438 | 439 | /@pkgr/utils/2.3.1: 440 | resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} 441 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 442 | dependencies: 443 | cross-spawn: 7.0.3 444 | is-glob: 4.0.3 445 | open: 8.4.0 446 | picocolors: 1.0.0 447 | tiny-glob: 0.2.9 448 | tslib: 2.4.1 449 | dev: true 450 | 451 | /@rushstack/eslint-patch/1.2.0: 452 | resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==} 453 | dev: true 454 | 455 | /@swc/helpers/0.4.14: 456 | resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} 457 | dependencies: 458 | tslib: 2.4.1 459 | dev: false 460 | 461 | /@tanstack/query-core/4.22.0: 462 | resolution: {integrity: sha512-OeLyBKBQoT265f5G9biReijeP8mBxNFwY7ZUu1dKL+YzqpG5q5z7J/N1eT8aWyKuhyDTiUHuKm5l+oIVzbtrjw==} 463 | dev: false 464 | 465 | /@tanstack/react-query/4.22.0_biqbaboplfbrettd7655fr4n2y: 466 | resolution: {integrity: sha512-P9o+HjG42uB/xHR6dMsJaPhtZydSe4v0xdG5G/cEj1oHZAXelMlm67/rYJNQGKgBamKElKogj+HYGF+NY2yHYg==} 467 | peerDependencies: 468 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 469 | react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 470 | react-native: '*' 471 | peerDependenciesMeta: 472 | react-dom: 473 | optional: true 474 | react-native: 475 | optional: true 476 | dependencies: 477 | '@tanstack/query-core': 4.22.0 478 | react: 18.2.0 479 | react-dom: 18.2.0_react@18.2.0 480 | use-sync-external-store: 1.2.0_react@18.2.0 481 | dev: false 482 | 483 | /@trpc/client/10.9.0_@trpc+server@10.9.0: 484 | resolution: {integrity: sha512-id6318qpgqllNOuBp7nuciXFPXCe+zae5d4r1hze6Eyp5fFFNO58TqA+4Q44KIcHgpfWyW2egs6iPeql3PrdKA==} 485 | peerDependencies: 486 | '@trpc/server': 10.9.0 487 | dependencies: 488 | '@trpc/server': 10.9.0 489 | dev: false 490 | 491 | /@trpc/next/10.9.0_sji75b74l6vpjj45puor62wqge: 492 | resolution: {integrity: sha512-h/W8VHMki/fw7vHNMs1Ku7bLqccjpiKCE1wkqbvHfBOO1ARDmarRbuK6dLqJilip/f7jkFXcrxwB+eNgK4+6Wg==} 493 | peerDependencies: 494 | '@tanstack/react-query': ^4.3.8 495 | '@trpc/client': 10.9.0 496 | '@trpc/react-query': ^10.8.0 497 | '@trpc/server': 10.9.0 498 | next: '*' 499 | react: '>=16.8.0' 500 | react-dom: '>=16.8.0' 501 | dependencies: 502 | '@tanstack/react-query': 4.22.0_biqbaboplfbrettd7655fr4n2y 503 | '@trpc/client': 10.9.0_@trpc+server@10.9.0 504 | '@trpc/react-query': 10.9.0_qw4miir7nnxijwjta54q3esyeq 505 | '@trpc/server': 10.9.0 506 | next: 13.1.2_biqbaboplfbrettd7655fr4n2y 507 | react: 18.2.0 508 | react-dom: 18.2.0_react@18.2.0 509 | react-ssr-prepass: 1.5.0_react@18.2.0 510 | dev: false 511 | 512 | /@trpc/react-query/10.9.0_qw4miir7nnxijwjta54q3esyeq: 513 | resolution: {integrity: sha512-I7xtdFj/AETwc9HfY2bGxKINij39r26LvfIiTBfz2pBj1ELrcgucWmPeI2eS6pon/uI1E9Nqa6fQCg/zkg764Q==} 514 | peerDependencies: 515 | '@tanstack/react-query': ^4.3.8 516 | '@trpc/client': 10.9.0 517 | '@trpc/server': 10.9.0 518 | react: '>=16.8.0' 519 | react-dom: '>=16.8.0' 520 | dependencies: 521 | '@tanstack/react-query': 4.22.0_biqbaboplfbrettd7655fr4n2y 522 | '@trpc/client': 10.9.0_@trpc+server@10.9.0 523 | '@trpc/server': 10.9.0 524 | react: 18.2.0 525 | react-dom: 18.2.0_react@18.2.0 526 | dev: false 527 | 528 | /@trpc/server/10.9.0: 529 | resolution: {integrity: sha512-5psyZgbvy29pJND32hwkWTMbv6s86IbsPOeDopsgNF0VegZT6Dsijmb7Ub/TDhuJVQVq5u4u5briMXi3SxmBkw==} 530 | dev: false 531 | 532 | /@types/chai-subset/1.3.3: 533 | resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} 534 | dependencies: 535 | '@types/chai': 4.3.4 536 | dev: false 537 | 538 | /@types/chai/4.3.4: 539 | resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} 540 | dev: false 541 | 542 | /@types/json-schema/7.0.11: 543 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} 544 | dev: true 545 | 546 | /@types/json5/0.0.29: 547 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 548 | dev: true 549 | 550 | /@types/node/18.11.18: 551 | resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} 552 | 553 | /@types/prop-types/15.7.5: 554 | resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} 555 | dev: true 556 | 557 | /@types/react-dom/18.0.10: 558 | resolution: {integrity: sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==} 559 | dependencies: 560 | '@types/react': 18.0.27 561 | dev: true 562 | 563 | /@types/react/18.0.27: 564 | resolution: {integrity: sha512-3vtRKHgVxu3Jp9t718R9BuzoD4NcQ8YJ5XRzsSKxNDiDonD2MXIT1TmSkenxuCycZJoQT5d2vE8LwWJxBC1gmA==} 565 | dependencies: 566 | '@types/prop-types': 15.7.5 567 | '@types/scheduler': 0.16.2 568 | csstype: 3.1.1 569 | dev: true 570 | 571 | /@types/scheduler/0.16.2: 572 | resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} 573 | dev: true 574 | 575 | /@types/semver/7.3.13: 576 | resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} 577 | dev: true 578 | 579 | /@typescript-eslint/eslint-plugin/5.48.2_caon6io6stgpr7lz2rtbhekxqy: 580 | resolution: {integrity: sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==} 581 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 582 | peerDependencies: 583 | '@typescript-eslint/parser': ^5.0.0 584 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 585 | typescript: '*' 586 | peerDependenciesMeta: 587 | typescript: 588 | optional: true 589 | dependencies: 590 | '@typescript-eslint/parser': 5.48.2_7uibuqfxkfaozanbtbziikiqje 591 | '@typescript-eslint/scope-manager': 5.48.2 592 | '@typescript-eslint/type-utils': 5.48.2_7uibuqfxkfaozanbtbziikiqje 593 | '@typescript-eslint/utils': 5.48.2_7uibuqfxkfaozanbtbziikiqje 594 | debug: 4.3.4 595 | eslint: 8.32.0 596 | ignore: 5.2.4 597 | natural-compare-lite: 1.4.0 598 | regexpp: 3.2.0 599 | semver: 7.3.8 600 | tsutils: 3.21.0_typescript@4.9.4 601 | typescript: 4.9.4 602 | transitivePeerDependencies: 603 | - supports-color 604 | dev: true 605 | 606 | /@typescript-eslint/parser/5.48.2_7uibuqfxkfaozanbtbziikiqje: 607 | resolution: {integrity: sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==} 608 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 609 | peerDependencies: 610 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 611 | typescript: '*' 612 | peerDependenciesMeta: 613 | typescript: 614 | optional: true 615 | dependencies: 616 | '@typescript-eslint/scope-manager': 5.48.2 617 | '@typescript-eslint/types': 5.48.2 618 | '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.9.4 619 | debug: 4.3.4 620 | eslint: 8.32.0 621 | typescript: 4.9.4 622 | transitivePeerDependencies: 623 | - supports-color 624 | dev: true 625 | 626 | /@typescript-eslint/scope-manager/5.48.2: 627 | resolution: {integrity: sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==} 628 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 629 | dependencies: 630 | '@typescript-eslint/types': 5.48.2 631 | '@typescript-eslint/visitor-keys': 5.48.2 632 | dev: true 633 | 634 | /@typescript-eslint/type-utils/5.48.2_7uibuqfxkfaozanbtbziikiqje: 635 | resolution: {integrity: sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==} 636 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 637 | peerDependencies: 638 | eslint: '*' 639 | typescript: '*' 640 | peerDependenciesMeta: 641 | typescript: 642 | optional: true 643 | dependencies: 644 | '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.9.4 645 | '@typescript-eslint/utils': 5.48.2_7uibuqfxkfaozanbtbziikiqje 646 | debug: 4.3.4 647 | eslint: 8.32.0 648 | tsutils: 3.21.0_typescript@4.9.4 649 | typescript: 4.9.4 650 | transitivePeerDependencies: 651 | - supports-color 652 | dev: true 653 | 654 | /@typescript-eslint/types/5.48.2: 655 | resolution: {integrity: sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==} 656 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 657 | dev: true 658 | 659 | /@typescript-eslint/typescript-estree/5.48.2_typescript@4.9.4: 660 | resolution: {integrity: sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==} 661 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 662 | peerDependencies: 663 | typescript: '*' 664 | peerDependenciesMeta: 665 | typescript: 666 | optional: true 667 | dependencies: 668 | '@typescript-eslint/types': 5.48.2 669 | '@typescript-eslint/visitor-keys': 5.48.2 670 | debug: 4.3.4 671 | globby: 11.1.0 672 | is-glob: 4.0.3 673 | semver: 7.3.8 674 | tsutils: 3.21.0_typescript@4.9.4 675 | typescript: 4.9.4 676 | transitivePeerDependencies: 677 | - supports-color 678 | dev: true 679 | 680 | /@typescript-eslint/utils/5.48.2_7uibuqfxkfaozanbtbziikiqje: 681 | resolution: {integrity: sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==} 682 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 683 | peerDependencies: 684 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 685 | dependencies: 686 | '@types/json-schema': 7.0.11 687 | '@types/semver': 7.3.13 688 | '@typescript-eslint/scope-manager': 5.48.2 689 | '@typescript-eslint/types': 5.48.2 690 | '@typescript-eslint/typescript-estree': 5.48.2_typescript@4.9.4 691 | eslint: 8.32.0 692 | eslint-scope: 5.1.1 693 | eslint-utils: 3.0.0_eslint@8.32.0 694 | semver: 7.3.8 695 | transitivePeerDependencies: 696 | - supports-color 697 | - typescript 698 | dev: true 699 | 700 | /@typescript-eslint/visitor-keys/5.48.2: 701 | resolution: {integrity: sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==} 702 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 703 | dependencies: 704 | '@typescript-eslint/types': 5.48.2 705 | eslint-visitor-keys: 3.3.0 706 | dev: true 707 | 708 | /@vitest/expect/0.28.3: 709 | resolution: {integrity: sha512-dnxllhfln88DOvpAK1fuI7/xHwRgTgR4wdxHldPaoTaBu6Rh9zK5b//v/cjTkhOfNP/AJ8evbNO8H7c3biwd1g==} 710 | dependencies: 711 | '@vitest/spy': 0.28.3 712 | '@vitest/utils': 0.28.3 713 | chai: 4.3.7 714 | dev: false 715 | 716 | /@vitest/runner/0.28.3: 717 | resolution: {integrity: sha512-P0qYbATaemy1midOLkw7qf8jraJszCoEvjQOSlseiXZyEDaZTZ50J+lolz2hWiWv6RwDu1iNseL9XLsG0Jm2KQ==} 718 | dependencies: 719 | '@vitest/utils': 0.28.3 720 | p-limit: 4.0.0 721 | pathe: 1.1.0 722 | dev: false 723 | 724 | /@vitest/spy/0.28.3: 725 | resolution: {integrity: sha512-jULA6suS6CCr9VZfr7/9x97pZ0hC55prnUNHNrg5/q16ARBY38RsjsfhuUXt6QOwvIN3BhSS0QqPzyh5Di8g6w==} 726 | dependencies: 727 | tinyspy: 1.0.2 728 | dev: false 729 | 730 | /@vitest/utils/0.28.3: 731 | resolution: {integrity: sha512-YHiQEHQqXyIbhDqETOJUKx9/psybF7SFFVCNfOvap0FvyUqbzTSDCa3S5lL4C0CLXkwVZttz9xknDoyHMguFRQ==} 732 | dependencies: 733 | cli-truncate: 3.1.0 734 | diff: 5.1.0 735 | loupe: 2.3.6 736 | picocolors: 1.0.0 737 | pretty-format: 27.5.1 738 | dev: false 739 | 740 | /acorn-jsx/5.3.2_acorn@8.8.1: 741 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 742 | peerDependencies: 743 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 744 | dependencies: 745 | acorn: 8.8.1 746 | dev: true 747 | 748 | /acorn-walk/8.2.0: 749 | resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} 750 | engines: {node: '>=0.4.0'} 751 | dev: false 752 | 753 | /acorn/8.8.1: 754 | resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} 755 | engines: {node: '>=0.4.0'} 756 | hasBin: true 757 | 758 | /ajv/6.12.6: 759 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 760 | dependencies: 761 | fast-deep-equal: 3.1.3 762 | fast-json-stable-stringify: 2.1.0 763 | json-schema-traverse: 0.4.1 764 | uri-js: 4.4.1 765 | dev: true 766 | 767 | /ansi-regex/5.0.1: 768 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 769 | engines: {node: '>=8'} 770 | 771 | /ansi-regex/6.0.1: 772 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 773 | engines: {node: '>=12'} 774 | dev: false 775 | 776 | /ansi-styles/4.3.0: 777 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 778 | engines: {node: '>=8'} 779 | dependencies: 780 | color-convert: 2.0.1 781 | dev: true 782 | 783 | /ansi-styles/5.2.0: 784 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 785 | engines: {node: '>=10'} 786 | dev: false 787 | 788 | /ansi-styles/6.2.1: 789 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 790 | engines: {node: '>=12'} 791 | dev: false 792 | 793 | /argparse/2.0.1: 794 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 795 | dev: true 796 | 797 | /aria-query/5.1.3: 798 | resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} 799 | dependencies: 800 | deep-equal: 2.2.0 801 | dev: true 802 | 803 | /array-includes/3.1.6: 804 | resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} 805 | engines: {node: '>= 0.4'} 806 | dependencies: 807 | call-bind: 1.0.2 808 | define-properties: 1.1.4 809 | es-abstract: 1.21.1 810 | get-intrinsic: 1.2.0 811 | is-string: 1.0.7 812 | dev: true 813 | 814 | /array-union/2.1.0: 815 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 816 | engines: {node: '>=8'} 817 | dev: true 818 | 819 | /array.prototype.flat/1.3.1: 820 | resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} 821 | engines: {node: '>= 0.4'} 822 | dependencies: 823 | call-bind: 1.0.2 824 | define-properties: 1.1.4 825 | es-abstract: 1.21.1 826 | es-shim-unscopables: 1.0.0 827 | dev: true 828 | 829 | /array.prototype.flatmap/1.3.1: 830 | resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} 831 | engines: {node: '>= 0.4'} 832 | dependencies: 833 | call-bind: 1.0.2 834 | define-properties: 1.1.4 835 | es-abstract: 1.21.1 836 | es-shim-unscopables: 1.0.0 837 | dev: true 838 | 839 | /array.prototype.tosorted/1.1.1: 840 | resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} 841 | dependencies: 842 | call-bind: 1.0.2 843 | define-properties: 1.1.4 844 | es-abstract: 1.21.1 845 | es-shim-unscopables: 1.0.0 846 | get-intrinsic: 1.2.0 847 | dev: true 848 | 849 | /assertion-error/1.1.0: 850 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 851 | dev: false 852 | 853 | /ast-types-flow/0.0.7: 854 | resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} 855 | dev: true 856 | 857 | /available-typed-arrays/1.0.5: 858 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 859 | engines: {node: '>= 0.4'} 860 | dev: true 861 | 862 | /axe-core/4.6.2: 863 | resolution: {integrity: sha512-b1WlTV8+XKLj9gZy2DZXgQiyDp9xkkoe2a6U6UbYccScq2wgH/YwCeI2/Jq2mgo0HzQxqJOjWZBLeA/mqsk5Mg==} 864 | engines: {node: '>=4'} 865 | dev: true 866 | 867 | /axobject-query/3.1.1: 868 | resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} 869 | dependencies: 870 | deep-equal: 2.2.0 871 | dev: true 872 | 873 | /balanced-match/1.0.2: 874 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 875 | dev: true 876 | 877 | /brace-expansion/1.1.11: 878 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 879 | dependencies: 880 | balanced-match: 1.0.2 881 | concat-map: 0.0.1 882 | dev: true 883 | 884 | /braces/3.0.2: 885 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 886 | engines: {node: '>=8'} 887 | dependencies: 888 | fill-range: 7.0.1 889 | dev: true 890 | 891 | /buffer-from/1.1.2: 892 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 893 | dev: false 894 | 895 | /cac/6.7.14: 896 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 897 | engines: {node: '>=8'} 898 | dev: false 899 | 900 | /call-bind/1.0.2: 901 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 902 | dependencies: 903 | function-bind: 1.1.1 904 | get-intrinsic: 1.2.0 905 | dev: true 906 | 907 | /callsites/3.1.0: 908 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 909 | engines: {node: '>=6'} 910 | dev: true 911 | 912 | /caniuse-lite/1.0.30001446: 913 | resolution: {integrity: sha512-fEoga4PrImGcwUUGEol/PoFCSBnSkA9drgdkxXkJLsUBOnJ8rs3zDv6ApqYXGQFOyMPsjh79naWhF4DAxbF8rw==} 914 | dev: false 915 | 916 | /chai/4.3.7: 917 | resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} 918 | engines: {node: '>=4'} 919 | dependencies: 920 | assertion-error: 1.1.0 921 | check-error: 1.0.2 922 | deep-eql: 4.1.3 923 | get-func-name: 2.0.0 924 | loupe: 2.3.6 925 | pathval: 1.1.1 926 | type-detect: 4.0.8 927 | dev: false 928 | 929 | /chalk/4.1.2: 930 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 931 | engines: {node: '>=10'} 932 | dependencies: 933 | ansi-styles: 4.3.0 934 | supports-color: 7.2.0 935 | dev: true 936 | 937 | /check-error/1.0.2: 938 | resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} 939 | dev: false 940 | 941 | /cli-truncate/3.1.0: 942 | resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} 943 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 944 | dependencies: 945 | slice-ansi: 5.0.0 946 | string-width: 5.1.2 947 | dev: false 948 | 949 | /client-only/0.0.1: 950 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 951 | dev: false 952 | 953 | /color-convert/2.0.1: 954 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 955 | engines: {node: '>=7.0.0'} 956 | dependencies: 957 | color-name: 1.1.4 958 | dev: true 959 | 960 | /color-name/1.1.4: 961 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 962 | dev: true 963 | 964 | /concat-map/0.0.1: 965 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 966 | dev: true 967 | 968 | /copy-anything/3.0.3: 969 | resolution: {integrity: sha512-fpW2W/BqEzqPp29QS+MwwfisHCQZtiduTe/m8idFo0xbti9fIZ2WVhAsCv4ggFVH3AgCkVdpoOCtQC6gBrdhjw==} 970 | engines: {node: '>=12.13'} 971 | dependencies: 972 | is-what: 4.1.8 973 | dev: false 974 | 975 | /cross-spawn/7.0.3: 976 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 977 | engines: {node: '>= 8'} 978 | dependencies: 979 | path-key: 3.1.1 980 | shebang-command: 2.0.0 981 | which: 2.0.2 982 | dev: true 983 | 984 | /csstype/3.1.1: 985 | resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} 986 | dev: true 987 | 988 | /damerau-levenshtein/1.0.8: 989 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 990 | dev: true 991 | 992 | /debug/3.2.7: 993 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 994 | peerDependencies: 995 | supports-color: '*' 996 | peerDependenciesMeta: 997 | supports-color: 998 | optional: true 999 | dependencies: 1000 | ms: 2.1.3 1001 | dev: true 1002 | 1003 | /debug/4.3.4: 1004 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1005 | engines: {node: '>=6.0'} 1006 | peerDependencies: 1007 | supports-color: '*' 1008 | peerDependenciesMeta: 1009 | supports-color: 1010 | optional: true 1011 | dependencies: 1012 | ms: 2.1.2 1013 | 1014 | /deep-eql/4.1.3: 1015 | resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} 1016 | engines: {node: '>=6'} 1017 | dependencies: 1018 | type-detect: 4.0.8 1019 | dev: false 1020 | 1021 | /deep-equal/2.2.0: 1022 | resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==} 1023 | dependencies: 1024 | call-bind: 1.0.2 1025 | es-get-iterator: 1.1.3 1026 | get-intrinsic: 1.2.0 1027 | is-arguments: 1.1.1 1028 | is-array-buffer: 3.0.1 1029 | is-date-object: 1.0.5 1030 | is-regex: 1.1.4 1031 | is-shared-array-buffer: 1.0.2 1032 | isarray: 2.0.5 1033 | object-is: 1.1.5 1034 | object-keys: 1.1.1 1035 | object.assign: 4.1.4 1036 | regexp.prototype.flags: 1.4.3 1037 | side-channel: 1.0.4 1038 | which-boxed-primitive: 1.0.2 1039 | which-collection: 1.0.1 1040 | which-typed-array: 1.1.9 1041 | dev: true 1042 | 1043 | /deep-is/0.1.4: 1044 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1045 | dev: true 1046 | 1047 | /define-lazy-prop/2.0.0: 1048 | resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} 1049 | engines: {node: '>=8'} 1050 | dev: true 1051 | 1052 | /define-properties/1.1.4: 1053 | resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} 1054 | engines: {node: '>= 0.4'} 1055 | dependencies: 1056 | has-property-descriptors: 1.0.0 1057 | object-keys: 1.1.1 1058 | dev: true 1059 | 1060 | /diff/5.1.0: 1061 | resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} 1062 | engines: {node: '>=0.3.1'} 1063 | dev: false 1064 | 1065 | /dir-glob/3.0.1: 1066 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1067 | engines: {node: '>=8'} 1068 | dependencies: 1069 | path-type: 4.0.0 1070 | dev: true 1071 | 1072 | /doctrine/2.1.0: 1073 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 1074 | engines: {node: '>=0.10.0'} 1075 | dependencies: 1076 | esutils: 2.0.3 1077 | dev: true 1078 | 1079 | /doctrine/3.0.0: 1080 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1081 | engines: {node: '>=6.0.0'} 1082 | dependencies: 1083 | esutils: 2.0.3 1084 | dev: true 1085 | 1086 | /eastasianwidth/0.2.0: 1087 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1088 | dev: false 1089 | 1090 | /emoji-regex/9.2.2: 1091 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1092 | 1093 | /enhanced-resolve/5.12.0: 1094 | resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} 1095 | engines: {node: '>=10.13.0'} 1096 | dependencies: 1097 | graceful-fs: 4.2.10 1098 | tapable: 2.2.1 1099 | dev: true 1100 | 1101 | /es-abstract/1.21.1: 1102 | resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} 1103 | engines: {node: '>= 0.4'} 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.2.0 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.3 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 | dev: true 1139 | 1140 | /es-get-iterator/1.1.3: 1141 | resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} 1142 | dependencies: 1143 | call-bind: 1.0.2 1144 | get-intrinsic: 1.2.0 1145 | has-symbols: 1.0.3 1146 | is-arguments: 1.1.1 1147 | is-map: 2.0.2 1148 | is-set: 2.0.2 1149 | is-string: 1.0.7 1150 | isarray: 2.0.5 1151 | stop-iteration-iterator: 1.0.0 1152 | dev: true 1153 | 1154 | /es-set-tostringtag/2.0.1: 1155 | resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} 1156 | engines: {node: '>= 0.4'} 1157 | dependencies: 1158 | get-intrinsic: 1.2.0 1159 | has: 1.0.3 1160 | has-tostringtag: 1.0.0 1161 | dev: true 1162 | 1163 | /es-shim-unscopables/1.0.0: 1164 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} 1165 | dependencies: 1166 | has: 1.0.3 1167 | dev: true 1168 | 1169 | /es-to-primitive/1.2.1: 1170 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 1171 | engines: {node: '>= 0.4'} 1172 | dependencies: 1173 | is-callable: 1.2.7 1174 | is-date-object: 1.0.5 1175 | is-symbol: 1.0.4 1176 | dev: true 1177 | 1178 | /esbuild/0.16.17: 1179 | resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} 1180 | engines: {node: '>=12'} 1181 | hasBin: true 1182 | requiresBuild: true 1183 | optionalDependencies: 1184 | '@esbuild/android-arm': 0.16.17 1185 | '@esbuild/android-arm64': 0.16.17 1186 | '@esbuild/android-x64': 0.16.17 1187 | '@esbuild/darwin-arm64': 0.16.17 1188 | '@esbuild/darwin-x64': 0.16.17 1189 | '@esbuild/freebsd-arm64': 0.16.17 1190 | '@esbuild/freebsd-x64': 0.16.17 1191 | '@esbuild/linux-arm': 0.16.17 1192 | '@esbuild/linux-arm64': 0.16.17 1193 | '@esbuild/linux-ia32': 0.16.17 1194 | '@esbuild/linux-loong64': 0.16.17 1195 | '@esbuild/linux-mips64el': 0.16.17 1196 | '@esbuild/linux-ppc64': 0.16.17 1197 | '@esbuild/linux-riscv64': 0.16.17 1198 | '@esbuild/linux-s390x': 0.16.17 1199 | '@esbuild/linux-x64': 0.16.17 1200 | '@esbuild/netbsd-x64': 0.16.17 1201 | '@esbuild/openbsd-x64': 0.16.17 1202 | '@esbuild/sunos-x64': 0.16.17 1203 | '@esbuild/win32-arm64': 0.16.17 1204 | '@esbuild/win32-ia32': 0.16.17 1205 | '@esbuild/win32-x64': 0.16.17 1206 | dev: false 1207 | 1208 | /escape-string-regexp/4.0.0: 1209 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1210 | engines: {node: '>=10'} 1211 | dev: true 1212 | 1213 | /eslint-config-next/13.1.2_7uibuqfxkfaozanbtbziikiqje: 1214 | resolution: {integrity: sha512-zdRAQOr8v69ZwJRtBrGqAqm160ONqKxU/pV1FB1KlgfyqveGsLZmlQ7l31otwtw763901J7xdiTVkj2y3YxXZA==} 1215 | peerDependencies: 1216 | eslint: ^7.23.0 || ^8.0.0 1217 | typescript: '>=3.3.1' 1218 | peerDependenciesMeta: 1219 | typescript: 1220 | optional: true 1221 | dependencies: 1222 | '@next/eslint-plugin-next': 13.1.2 1223 | '@rushstack/eslint-patch': 1.2.0 1224 | '@typescript-eslint/parser': 5.48.2_7uibuqfxkfaozanbtbziikiqje 1225 | eslint: 8.32.0 1226 | eslint-import-resolver-node: 0.3.7 1227 | eslint-import-resolver-typescript: 3.5.3_ps7hf4l2dvbuxvtusmrfhmzsba 1228 | eslint-plugin-import: 2.27.5_bzolr7xl6xcwr64wsu2tr4eimm 1229 | eslint-plugin-jsx-a11y: 6.7.1_eslint@8.32.0 1230 | eslint-plugin-react: 7.32.1_eslint@8.32.0 1231 | eslint-plugin-react-hooks: 4.6.0_eslint@8.32.0 1232 | typescript: 4.9.4 1233 | transitivePeerDependencies: 1234 | - eslint-import-resolver-webpack 1235 | - supports-color 1236 | dev: true 1237 | 1238 | /eslint-import-resolver-node/0.3.7: 1239 | resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} 1240 | dependencies: 1241 | debug: 3.2.7 1242 | is-core-module: 2.11.0 1243 | resolve: 1.22.1 1244 | transitivePeerDependencies: 1245 | - supports-color 1246 | dev: true 1247 | 1248 | /eslint-import-resolver-typescript/3.5.3_ps7hf4l2dvbuxvtusmrfhmzsba: 1249 | resolution: {integrity: sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ==} 1250 | engines: {node: ^14.18.0 || >=16.0.0} 1251 | peerDependencies: 1252 | eslint: '*' 1253 | eslint-plugin-import: '*' 1254 | dependencies: 1255 | debug: 4.3.4 1256 | enhanced-resolve: 5.12.0 1257 | eslint: 8.32.0 1258 | eslint-plugin-import: 2.27.5_bzolr7xl6xcwr64wsu2tr4eimm 1259 | get-tsconfig: 4.3.0 1260 | globby: 13.1.3 1261 | is-core-module: 2.11.0 1262 | is-glob: 4.0.3 1263 | synckit: 0.8.4 1264 | transitivePeerDependencies: 1265 | - supports-color 1266 | dev: true 1267 | 1268 | /eslint-module-utils/2.7.4_ba2ykau6kcnaogk6czydxhup4m: 1269 | resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} 1270 | engines: {node: '>=4'} 1271 | peerDependencies: 1272 | '@typescript-eslint/parser': '*' 1273 | eslint: '*' 1274 | eslint-import-resolver-node: '*' 1275 | eslint-import-resolver-typescript: '*' 1276 | eslint-import-resolver-webpack: '*' 1277 | peerDependenciesMeta: 1278 | '@typescript-eslint/parser': 1279 | optional: true 1280 | eslint: 1281 | optional: true 1282 | eslint-import-resolver-node: 1283 | optional: true 1284 | eslint-import-resolver-typescript: 1285 | optional: true 1286 | eslint-import-resolver-webpack: 1287 | optional: true 1288 | dependencies: 1289 | '@typescript-eslint/parser': 5.48.2_7uibuqfxkfaozanbtbziikiqje 1290 | debug: 3.2.7 1291 | eslint: 8.32.0 1292 | eslint-import-resolver-node: 0.3.7 1293 | eslint-import-resolver-typescript: 3.5.3_ps7hf4l2dvbuxvtusmrfhmzsba 1294 | transitivePeerDependencies: 1295 | - supports-color 1296 | dev: true 1297 | 1298 | /eslint-plugin-import/2.27.5_bzolr7xl6xcwr64wsu2tr4eimm: 1299 | resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} 1300 | engines: {node: '>=4'} 1301 | peerDependencies: 1302 | '@typescript-eslint/parser': '*' 1303 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 1304 | peerDependenciesMeta: 1305 | '@typescript-eslint/parser': 1306 | optional: true 1307 | dependencies: 1308 | '@typescript-eslint/parser': 5.48.2_7uibuqfxkfaozanbtbziikiqje 1309 | array-includes: 3.1.6 1310 | array.prototype.flat: 1.3.1 1311 | array.prototype.flatmap: 1.3.1 1312 | debug: 3.2.7 1313 | doctrine: 2.1.0 1314 | eslint: 8.32.0 1315 | eslint-import-resolver-node: 0.3.7 1316 | eslint-module-utils: 2.7.4_ba2ykau6kcnaogk6czydxhup4m 1317 | has: 1.0.3 1318 | is-core-module: 2.11.0 1319 | is-glob: 4.0.3 1320 | minimatch: 3.1.2 1321 | object.values: 1.1.6 1322 | resolve: 1.22.1 1323 | semver: 6.3.0 1324 | tsconfig-paths: 3.14.1 1325 | transitivePeerDependencies: 1326 | - eslint-import-resolver-typescript 1327 | - eslint-import-resolver-webpack 1328 | - supports-color 1329 | dev: true 1330 | 1331 | /eslint-plugin-jsx-a11y/6.7.1_eslint@8.32.0: 1332 | resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} 1333 | engines: {node: '>=4.0'} 1334 | peerDependencies: 1335 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1336 | dependencies: 1337 | '@babel/runtime': 7.20.7 1338 | aria-query: 5.1.3 1339 | array-includes: 3.1.6 1340 | array.prototype.flatmap: 1.3.1 1341 | ast-types-flow: 0.0.7 1342 | axe-core: 4.6.2 1343 | axobject-query: 3.1.1 1344 | damerau-levenshtein: 1.0.8 1345 | emoji-regex: 9.2.2 1346 | eslint: 8.32.0 1347 | has: 1.0.3 1348 | jsx-ast-utils: 3.3.3 1349 | language-tags: 1.0.5 1350 | minimatch: 3.1.2 1351 | object.entries: 1.1.6 1352 | object.fromentries: 2.0.6 1353 | semver: 6.3.0 1354 | dev: true 1355 | 1356 | /eslint-plugin-react-hooks/4.6.0_eslint@8.32.0: 1357 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} 1358 | engines: {node: '>=10'} 1359 | peerDependencies: 1360 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 1361 | dependencies: 1362 | eslint: 8.32.0 1363 | dev: true 1364 | 1365 | /eslint-plugin-react/7.32.1_eslint@8.32.0: 1366 | resolution: {integrity: sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www==} 1367 | engines: {node: '>=4'} 1368 | peerDependencies: 1369 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1370 | dependencies: 1371 | array-includes: 3.1.6 1372 | array.prototype.flatmap: 1.3.1 1373 | array.prototype.tosorted: 1.1.1 1374 | doctrine: 2.1.0 1375 | eslint: 8.32.0 1376 | estraverse: 5.3.0 1377 | jsx-ast-utils: 3.3.3 1378 | minimatch: 3.1.2 1379 | object.entries: 1.1.6 1380 | object.fromentries: 2.0.6 1381 | object.hasown: 1.1.2 1382 | object.values: 1.1.6 1383 | prop-types: 15.8.1 1384 | resolve: 2.0.0-next.4 1385 | semver: 6.3.0 1386 | string.prototype.matchall: 4.0.8 1387 | dev: true 1388 | 1389 | /eslint-scope/5.1.1: 1390 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 1391 | engines: {node: '>=8.0.0'} 1392 | dependencies: 1393 | esrecurse: 4.3.0 1394 | estraverse: 4.3.0 1395 | dev: true 1396 | 1397 | /eslint-scope/7.1.1: 1398 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} 1399 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1400 | dependencies: 1401 | esrecurse: 4.3.0 1402 | estraverse: 5.3.0 1403 | dev: true 1404 | 1405 | /eslint-utils/3.0.0_eslint@8.32.0: 1406 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 1407 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 1408 | peerDependencies: 1409 | eslint: '>=5' 1410 | dependencies: 1411 | eslint: 8.32.0 1412 | eslint-visitor-keys: 2.1.0 1413 | dev: true 1414 | 1415 | /eslint-visitor-keys/2.1.0: 1416 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 1417 | engines: {node: '>=10'} 1418 | dev: true 1419 | 1420 | /eslint-visitor-keys/3.3.0: 1421 | resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} 1422 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1423 | dev: true 1424 | 1425 | /eslint/8.32.0: 1426 | resolution: {integrity: sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==} 1427 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1428 | hasBin: true 1429 | dependencies: 1430 | '@eslint/eslintrc': 1.4.1 1431 | '@humanwhocodes/config-array': 0.11.8 1432 | '@humanwhocodes/module-importer': 1.0.1 1433 | '@nodelib/fs.walk': 1.2.8 1434 | ajv: 6.12.6 1435 | chalk: 4.1.2 1436 | cross-spawn: 7.0.3 1437 | debug: 4.3.4 1438 | doctrine: 3.0.0 1439 | escape-string-regexp: 4.0.0 1440 | eslint-scope: 7.1.1 1441 | eslint-utils: 3.0.0_eslint@8.32.0 1442 | eslint-visitor-keys: 3.3.0 1443 | espree: 9.4.1 1444 | esquery: 1.4.0 1445 | esutils: 2.0.3 1446 | fast-deep-equal: 3.1.3 1447 | file-entry-cache: 6.0.1 1448 | find-up: 5.0.0 1449 | glob-parent: 6.0.2 1450 | globals: 13.19.0 1451 | grapheme-splitter: 1.0.4 1452 | ignore: 5.2.4 1453 | import-fresh: 3.3.0 1454 | imurmurhash: 0.1.4 1455 | is-glob: 4.0.3 1456 | is-path-inside: 3.0.3 1457 | js-sdsl: 4.3.0 1458 | js-yaml: 4.1.0 1459 | json-stable-stringify-without-jsonify: 1.0.1 1460 | levn: 0.4.1 1461 | lodash.merge: 4.6.2 1462 | minimatch: 3.1.2 1463 | natural-compare: 1.4.0 1464 | optionator: 0.9.1 1465 | regexpp: 3.2.0 1466 | strip-ansi: 6.0.1 1467 | strip-json-comments: 3.1.1 1468 | text-table: 0.2.0 1469 | transitivePeerDependencies: 1470 | - supports-color 1471 | dev: true 1472 | 1473 | /espree/9.4.1: 1474 | resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} 1475 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1476 | dependencies: 1477 | acorn: 8.8.1 1478 | acorn-jsx: 5.3.2_acorn@8.8.1 1479 | eslint-visitor-keys: 3.3.0 1480 | dev: true 1481 | 1482 | /esquery/1.4.0: 1483 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} 1484 | engines: {node: '>=0.10'} 1485 | dependencies: 1486 | estraverse: 5.3.0 1487 | dev: true 1488 | 1489 | /esrecurse/4.3.0: 1490 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1491 | engines: {node: '>=4.0'} 1492 | dependencies: 1493 | estraverse: 5.3.0 1494 | dev: true 1495 | 1496 | /estraverse/4.3.0: 1497 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 1498 | engines: {node: '>=4.0'} 1499 | dev: true 1500 | 1501 | /estraverse/5.3.0: 1502 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1503 | engines: {node: '>=4.0'} 1504 | dev: true 1505 | 1506 | /esutils/2.0.3: 1507 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1508 | engines: {node: '>=0.10.0'} 1509 | dev: true 1510 | 1511 | /fast-deep-equal/3.1.3: 1512 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1513 | dev: true 1514 | 1515 | /fast-glob/3.2.12: 1516 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 1517 | engines: {node: '>=8.6.0'} 1518 | dependencies: 1519 | '@nodelib/fs.stat': 2.0.5 1520 | '@nodelib/fs.walk': 1.2.8 1521 | glob-parent: 5.1.2 1522 | merge2: 1.4.1 1523 | micromatch: 4.0.5 1524 | dev: true 1525 | 1526 | /fast-json-stable-stringify/2.1.0: 1527 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1528 | dev: true 1529 | 1530 | /fast-levenshtein/2.0.6: 1531 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1532 | dev: true 1533 | 1534 | /fastq/1.15.0: 1535 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1536 | dependencies: 1537 | reusify: 1.0.4 1538 | dev: true 1539 | 1540 | /file-entry-cache/6.0.1: 1541 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1542 | engines: {node: ^10.12.0 || >=12.0.0} 1543 | dependencies: 1544 | flat-cache: 3.0.4 1545 | dev: true 1546 | 1547 | /fill-range/7.0.1: 1548 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1549 | engines: {node: '>=8'} 1550 | dependencies: 1551 | to-regex-range: 5.0.1 1552 | dev: true 1553 | 1554 | /find-up/5.0.0: 1555 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1556 | engines: {node: '>=10'} 1557 | dependencies: 1558 | locate-path: 6.0.0 1559 | path-exists: 4.0.0 1560 | dev: true 1561 | 1562 | /flat-cache/3.0.4: 1563 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 1564 | engines: {node: ^10.12.0 || >=12.0.0} 1565 | dependencies: 1566 | flatted: 3.2.7 1567 | rimraf: 3.0.2 1568 | dev: true 1569 | 1570 | /flatted/3.2.7: 1571 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 1572 | dev: true 1573 | 1574 | /for-each/0.3.3: 1575 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 1576 | dependencies: 1577 | is-callable: 1.2.7 1578 | dev: true 1579 | 1580 | /fs.realpath/1.0.0: 1581 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1582 | dev: true 1583 | 1584 | /fsevents/2.3.2: 1585 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1586 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1587 | os: [darwin] 1588 | requiresBuild: true 1589 | dev: false 1590 | optional: true 1591 | 1592 | /function-bind/1.1.1: 1593 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1594 | 1595 | /function.prototype.name/1.1.5: 1596 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} 1597 | engines: {node: '>= 0.4'} 1598 | dependencies: 1599 | call-bind: 1.0.2 1600 | define-properties: 1.1.4 1601 | es-abstract: 1.21.1 1602 | functions-have-names: 1.2.3 1603 | dev: true 1604 | 1605 | /functions-have-names/1.2.3: 1606 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1607 | dev: true 1608 | 1609 | /get-func-name/2.0.0: 1610 | resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} 1611 | dev: false 1612 | 1613 | /get-intrinsic/1.2.0: 1614 | resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} 1615 | dependencies: 1616 | function-bind: 1.1.1 1617 | has: 1.0.3 1618 | has-symbols: 1.0.3 1619 | dev: true 1620 | 1621 | /get-symbol-description/1.0.0: 1622 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 1623 | engines: {node: '>= 0.4'} 1624 | dependencies: 1625 | call-bind: 1.0.2 1626 | get-intrinsic: 1.2.0 1627 | dev: true 1628 | 1629 | /get-tsconfig/4.3.0: 1630 | resolution: {integrity: sha512-YCcF28IqSay3fqpIu5y3Krg/utCBHBeoflkZyHj/QcqI2nrLPC3ZegS9CmIo+hJb8K7aiGsuUl7PwWVjNG2HQQ==} 1631 | dev: true 1632 | 1633 | /glob-parent/5.1.2: 1634 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1635 | engines: {node: '>= 6'} 1636 | dependencies: 1637 | is-glob: 4.0.3 1638 | dev: true 1639 | 1640 | /glob-parent/6.0.2: 1641 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1642 | engines: {node: '>=10.13.0'} 1643 | dependencies: 1644 | is-glob: 4.0.3 1645 | dev: true 1646 | 1647 | /glob/7.1.7: 1648 | resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} 1649 | dependencies: 1650 | fs.realpath: 1.0.0 1651 | inflight: 1.0.6 1652 | inherits: 2.0.4 1653 | minimatch: 3.1.2 1654 | once: 1.4.0 1655 | path-is-absolute: 1.0.1 1656 | dev: true 1657 | 1658 | /glob/7.2.3: 1659 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1660 | dependencies: 1661 | fs.realpath: 1.0.0 1662 | inflight: 1.0.6 1663 | inherits: 2.0.4 1664 | minimatch: 3.1.2 1665 | once: 1.4.0 1666 | path-is-absolute: 1.0.1 1667 | dev: true 1668 | 1669 | /globals/13.19.0: 1670 | resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==} 1671 | engines: {node: '>=8'} 1672 | dependencies: 1673 | type-fest: 0.20.2 1674 | dev: true 1675 | 1676 | /globalthis/1.0.3: 1677 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} 1678 | engines: {node: '>= 0.4'} 1679 | dependencies: 1680 | define-properties: 1.1.4 1681 | dev: true 1682 | 1683 | /globalyzer/0.1.0: 1684 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 1685 | dev: true 1686 | 1687 | /globby/11.1.0: 1688 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1689 | engines: {node: '>=10'} 1690 | dependencies: 1691 | array-union: 2.1.0 1692 | dir-glob: 3.0.1 1693 | fast-glob: 3.2.12 1694 | ignore: 5.2.4 1695 | merge2: 1.4.1 1696 | slash: 3.0.0 1697 | dev: true 1698 | 1699 | /globby/13.1.3: 1700 | resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} 1701 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1702 | dependencies: 1703 | dir-glob: 3.0.1 1704 | fast-glob: 3.2.12 1705 | ignore: 5.2.4 1706 | merge2: 1.4.1 1707 | slash: 4.0.0 1708 | dev: true 1709 | 1710 | /globrex/0.1.2: 1711 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 1712 | dev: true 1713 | 1714 | /gopd/1.0.1: 1715 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1716 | dependencies: 1717 | get-intrinsic: 1.2.0 1718 | dev: true 1719 | 1720 | /graceful-fs/4.2.10: 1721 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 1722 | dev: true 1723 | 1724 | /grapheme-splitter/1.0.4: 1725 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 1726 | dev: true 1727 | 1728 | /has-bigints/1.0.2: 1729 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1730 | dev: true 1731 | 1732 | /has-flag/4.0.0: 1733 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1734 | engines: {node: '>=8'} 1735 | dev: true 1736 | 1737 | /has-property-descriptors/1.0.0: 1738 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 1739 | dependencies: 1740 | get-intrinsic: 1.2.0 1741 | dev: true 1742 | 1743 | /has-proto/1.0.1: 1744 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} 1745 | engines: {node: '>= 0.4'} 1746 | dev: true 1747 | 1748 | /has-symbols/1.0.3: 1749 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1750 | engines: {node: '>= 0.4'} 1751 | dev: true 1752 | 1753 | /has-tostringtag/1.0.0: 1754 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 1755 | engines: {node: '>= 0.4'} 1756 | dependencies: 1757 | has-symbols: 1.0.3 1758 | dev: true 1759 | 1760 | /has/1.0.3: 1761 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1762 | engines: {node: '>= 0.4.0'} 1763 | dependencies: 1764 | function-bind: 1.1.1 1765 | 1766 | /ignore/5.2.4: 1767 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 1768 | engines: {node: '>= 4'} 1769 | dev: true 1770 | 1771 | /import-fresh/3.3.0: 1772 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1773 | engines: {node: '>=6'} 1774 | dependencies: 1775 | parent-module: 1.0.1 1776 | resolve-from: 4.0.0 1777 | dev: true 1778 | 1779 | /imurmurhash/0.1.4: 1780 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1781 | engines: {node: '>=0.8.19'} 1782 | dev: true 1783 | 1784 | /inflight/1.0.6: 1785 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1786 | dependencies: 1787 | once: 1.4.0 1788 | wrappy: 1.0.2 1789 | dev: true 1790 | 1791 | /inherits/2.0.4: 1792 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1793 | dev: true 1794 | 1795 | /internal-slot/1.0.4: 1796 | resolution: {integrity: sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==} 1797 | engines: {node: '>= 0.4'} 1798 | dependencies: 1799 | get-intrinsic: 1.2.0 1800 | has: 1.0.3 1801 | side-channel: 1.0.4 1802 | dev: true 1803 | 1804 | /is-arguments/1.1.1: 1805 | resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} 1806 | engines: {node: '>= 0.4'} 1807 | dependencies: 1808 | call-bind: 1.0.2 1809 | has-tostringtag: 1.0.0 1810 | dev: true 1811 | 1812 | /is-array-buffer/3.0.1: 1813 | resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==} 1814 | dependencies: 1815 | call-bind: 1.0.2 1816 | get-intrinsic: 1.2.0 1817 | is-typed-array: 1.1.10 1818 | dev: true 1819 | 1820 | /is-bigint/1.0.4: 1821 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1822 | dependencies: 1823 | has-bigints: 1.0.2 1824 | dev: true 1825 | 1826 | /is-boolean-object/1.1.2: 1827 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1828 | engines: {node: '>= 0.4'} 1829 | dependencies: 1830 | call-bind: 1.0.2 1831 | has-tostringtag: 1.0.0 1832 | dev: true 1833 | 1834 | /is-callable/1.2.7: 1835 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1836 | engines: {node: '>= 0.4'} 1837 | dev: true 1838 | 1839 | /is-core-module/2.11.0: 1840 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} 1841 | dependencies: 1842 | has: 1.0.3 1843 | 1844 | /is-date-object/1.0.5: 1845 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1846 | engines: {node: '>= 0.4'} 1847 | dependencies: 1848 | has-tostringtag: 1.0.0 1849 | dev: true 1850 | 1851 | /is-docker/2.2.1: 1852 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} 1853 | engines: {node: '>=8'} 1854 | hasBin: true 1855 | dev: true 1856 | 1857 | /is-extglob/2.1.1: 1858 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1859 | engines: {node: '>=0.10.0'} 1860 | dev: true 1861 | 1862 | /is-fullwidth-code-point/4.0.0: 1863 | resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} 1864 | engines: {node: '>=12'} 1865 | dev: false 1866 | 1867 | /is-glob/4.0.3: 1868 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1869 | engines: {node: '>=0.10.0'} 1870 | dependencies: 1871 | is-extglob: 2.1.1 1872 | dev: true 1873 | 1874 | /is-map/2.0.2: 1875 | resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} 1876 | dev: true 1877 | 1878 | /is-negative-zero/2.0.2: 1879 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 1880 | engines: {node: '>= 0.4'} 1881 | dev: true 1882 | 1883 | /is-number-object/1.0.7: 1884 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 1885 | engines: {node: '>= 0.4'} 1886 | dependencies: 1887 | has-tostringtag: 1.0.0 1888 | dev: true 1889 | 1890 | /is-number/7.0.0: 1891 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1892 | engines: {node: '>=0.12.0'} 1893 | dev: true 1894 | 1895 | /is-path-inside/3.0.3: 1896 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1897 | engines: {node: '>=8'} 1898 | dev: true 1899 | 1900 | /is-regex/1.1.4: 1901 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1902 | engines: {node: '>= 0.4'} 1903 | dependencies: 1904 | call-bind: 1.0.2 1905 | has-tostringtag: 1.0.0 1906 | dev: true 1907 | 1908 | /is-set/2.0.2: 1909 | resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} 1910 | dev: true 1911 | 1912 | /is-shared-array-buffer/1.0.2: 1913 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 1914 | dependencies: 1915 | call-bind: 1.0.2 1916 | dev: true 1917 | 1918 | /is-string/1.0.7: 1919 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 1920 | engines: {node: '>= 0.4'} 1921 | dependencies: 1922 | has-tostringtag: 1.0.0 1923 | dev: true 1924 | 1925 | /is-symbol/1.0.4: 1926 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 1927 | engines: {node: '>= 0.4'} 1928 | dependencies: 1929 | has-symbols: 1.0.3 1930 | dev: true 1931 | 1932 | /is-typed-array/1.1.10: 1933 | resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} 1934 | engines: {node: '>= 0.4'} 1935 | dependencies: 1936 | available-typed-arrays: 1.0.5 1937 | call-bind: 1.0.2 1938 | for-each: 0.3.3 1939 | gopd: 1.0.1 1940 | has-tostringtag: 1.0.0 1941 | dev: true 1942 | 1943 | /is-weakmap/2.0.1: 1944 | resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} 1945 | dev: true 1946 | 1947 | /is-weakref/1.0.2: 1948 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 1949 | dependencies: 1950 | call-bind: 1.0.2 1951 | dev: true 1952 | 1953 | /is-weakset/2.0.2: 1954 | resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} 1955 | dependencies: 1956 | call-bind: 1.0.2 1957 | get-intrinsic: 1.2.0 1958 | dev: true 1959 | 1960 | /is-what/4.1.8: 1961 | resolution: {integrity: sha512-yq8gMao5upkPoGEU9LsB2P+K3Kt8Q3fQFCGyNCWOAnJAMzEXVV9drYb0TXr42TTliLLhKIBvulgAXgtLLnwzGA==} 1962 | engines: {node: '>=12.13'} 1963 | dev: false 1964 | 1965 | /is-wsl/2.2.0: 1966 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 1967 | engines: {node: '>=8'} 1968 | dependencies: 1969 | is-docker: 2.2.1 1970 | dev: true 1971 | 1972 | /isarray/2.0.5: 1973 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1974 | dev: true 1975 | 1976 | /isexe/2.0.0: 1977 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1978 | dev: true 1979 | 1980 | /js-sdsl/4.3.0: 1981 | resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} 1982 | dev: true 1983 | 1984 | /js-tokens/4.0.0: 1985 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1986 | 1987 | /js-yaml/4.1.0: 1988 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1989 | hasBin: true 1990 | dependencies: 1991 | argparse: 2.0.1 1992 | dev: true 1993 | 1994 | /json-schema-traverse/0.4.1: 1995 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1996 | dev: true 1997 | 1998 | /json-stable-stringify-without-jsonify/1.0.1: 1999 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 2000 | dev: true 2001 | 2002 | /json5/1.0.2: 2003 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 2004 | hasBin: true 2005 | dependencies: 2006 | minimist: 1.2.7 2007 | dev: true 2008 | 2009 | /jsonc-parser/3.2.0: 2010 | resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} 2011 | dev: false 2012 | 2013 | /jsx-ast-utils/3.3.3: 2014 | resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} 2015 | engines: {node: '>=4.0'} 2016 | dependencies: 2017 | array-includes: 3.1.6 2018 | object.assign: 4.1.4 2019 | dev: true 2020 | 2021 | /language-subtag-registry/0.3.22: 2022 | resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} 2023 | dev: true 2024 | 2025 | /language-tags/1.0.5: 2026 | resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} 2027 | dependencies: 2028 | language-subtag-registry: 0.3.22 2029 | dev: true 2030 | 2031 | /levn/0.4.1: 2032 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2033 | engines: {node: '>= 0.8.0'} 2034 | dependencies: 2035 | prelude-ls: 1.2.1 2036 | type-check: 0.4.0 2037 | dev: true 2038 | 2039 | /local-pkg/0.4.3: 2040 | resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} 2041 | engines: {node: '>=14'} 2042 | dev: false 2043 | 2044 | /locate-path/6.0.0: 2045 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2046 | engines: {node: '>=10'} 2047 | dependencies: 2048 | p-locate: 5.0.0 2049 | dev: true 2050 | 2051 | /lodash.merge/4.6.2: 2052 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2053 | dev: true 2054 | 2055 | /loose-envify/1.4.0: 2056 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 2057 | hasBin: true 2058 | dependencies: 2059 | js-tokens: 4.0.0 2060 | 2061 | /loupe/2.3.6: 2062 | resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} 2063 | dependencies: 2064 | get-func-name: 2.0.0 2065 | dev: false 2066 | 2067 | /lru-cache/6.0.0: 2068 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2069 | engines: {node: '>=10'} 2070 | dependencies: 2071 | yallist: 4.0.0 2072 | dev: true 2073 | 2074 | /merge2/1.4.1: 2075 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2076 | engines: {node: '>= 8'} 2077 | dev: true 2078 | 2079 | /micromatch/4.0.5: 2080 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2081 | engines: {node: '>=8.6'} 2082 | dependencies: 2083 | braces: 3.0.2 2084 | picomatch: 2.3.1 2085 | dev: true 2086 | 2087 | /minimatch/3.1.2: 2088 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2089 | dependencies: 2090 | brace-expansion: 1.1.11 2091 | dev: true 2092 | 2093 | /minimist/1.2.7: 2094 | resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} 2095 | dev: true 2096 | 2097 | /mlly/1.1.0: 2098 | resolution: {integrity: sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==} 2099 | dependencies: 2100 | acorn: 8.8.1 2101 | pathe: 1.1.0 2102 | pkg-types: 1.0.1 2103 | ufo: 1.0.1 2104 | dev: false 2105 | 2106 | /ms/2.1.2: 2107 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2108 | 2109 | /ms/2.1.3: 2110 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 2111 | dev: true 2112 | 2113 | /nanoid/3.3.4: 2114 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 2115 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2116 | hasBin: true 2117 | dev: false 2118 | 2119 | /natural-compare-lite/1.4.0: 2120 | resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} 2121 | dev: true 2122 | 2123 | /natural-compare/1.4.0: 2124 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 2125 | dev: true 2126 | 2127 | /next/13.1.2_biqbaboplfbrettd7655fr4n2y: 2128 | resolution: {integrity: sha512-Rdnnb2YH///w78FEOR/IQ6TXga+qpth4OqFSem48ng1PYYKr6XBsIk1XVaRcIGM3o6iiHnun0nJvkJHDf+ICyQ==} 2129 | engines: {node: '>=14.6.0'} 2130 | hasBin: true 2131 | peerDependencies: 2132 | fibers: '>= 3.1.0' 2133 | node-sass: ^6.0.0 || ^7.0.0 2134 | react: ^18.2.0 2135 | react-dom: ^18.2.0 2136 | sass: ^1.3.0 2137 | peerDependenciesMeta: 2138 | fibers: 2139 | optional: true 2140 | node-sass: 2141 | optional: true 2142 | sass: 2143 | optional: true 2144 | dependencies: 2145 | '@next/env': 13.1.2 2146 | '@swc/helpers': 0.4.14 2147 | caniuse-lite: 1.0.30001446 2148 | postcss: 8.4.14 2149 | react: 18.2.0 2150 | react-dom: 18.2.0_react@18.2.0 2151 | styled-jsx: 5.1.1_react@18.2.0 2152 | optionalDependencies: 2153 | '@next/swc-android-arm-eabi': 13.1.2 2154 | '@next/swc-android-arm64': 13.1.2 2155 | '@next/swc-darwin-arm64': 13.1.2 2156 | '@next/swc-darwin-x64': 13.1.2 2157 | '@next/swc-freebsd-x64': 13.1.2 2158 | '@next/swc-linux-arm-gnueabihf': 13.1.2 2159 | '@next/swc-linux-arm64-gnu': 13.1.2 2160 | '@next/swc-linux-arm64-musl': 13.1.2 2161 | '@next/swc-linux-x64-gnu': 13.1.2 2162 | '@next/swc-linux-x64-musl': 13.1.2 2163 | '@next/swc-win32-arm64-msvc': 13.1.2 2164 | '@next/swc-win32-ia32-msvc': 13.1.2 2165 | '@next/swc-win32-x64-msvc': 13.1.2 2166 | transitivePeerDependencies: 2167 | - '@babel/core' 2168 | - babel-plugin-macros 2169 | dev: false 2170 | 2171 | /object-assign/4.1.1: 2172 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 2173 | engines: {node: '>=0.10.0'} 2174 | dev: true 2175 | 2176 | /object-inspect/1.12.3: 2177 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} 2178 | dev: true 2179 | 2180 | /object-is/1.1.5: 2181 | resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} 2182 | engines: {node: '>= 0.4'} 2183 | dependencies: 2184 | call-bind: 1.0.2 2185 | define-properties: 1.1.4 2186 | dev: true 2187 | 2188 | /object-keys/1.1.1: 2189 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 2190 | engines: {node: '>= 0.4'} 2191 | dev: true 2192 | 2193 | /object.assign/4.1.4: 2194 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} 2195 | engines: {node: '>= 0.4'} 2196 | dependencies: 2197 | call-bind: 1.0.2 2198 | define-properties: 1.1.4 2199 | has-symbols: 1.0.3 2200 | object-keys: 1.1.1 2201 | dev: true 2202 | 2203 | /object.entries/1.1.6: 2204 | resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} 2205 | engines: {node: '>= 0.4'} 2206 | dependencies: 2207 | call-bind: 1.0.2 2208 | define-properties: 1.1.4 2209 | es-abstract: 1.21.1 2210 | dev: true 2211 | 2212 | /object.fromentries/2.0.6: 2213 | resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} 2214 | engines: {node: '>= 0.4'} 2215 | dependencies: 2216 | call-bind: 1.0.2 2217 | define-properties: 1.1.4 2218 | es-abstract: 1.21.1 2219 | dev: true 2220 | 2221 | /object.hasown/1.1.2: 2222 | resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} 2223 | dependencies: 2224 | define-properties: 1.1.4 2225 | es-abstract: 1.21.1 2226 | dev: true 2227 | 2228 | /object.values/1.1.6: 2229 | resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} 2230 | engines: {node: '>= 0.4'} 2231 | dependencies: 2232 | call-bind: 1.0.2 2233 | define-properties: 1.1.4 2234 | es-abstract: 1.21.1 2235 | dev: true 2236 | 2237 | /once/1.4.0: 2238 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2239 | dependencies: 2240 | wrappy: 1.0.2 2241 | dev: true 2242 | 2243 | /open/8.4.0: 2244 | resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} 2245 | engines: {node: '>=12'} 2246 | dependencies: 2247 | define-lazy-prop: 2.0.0 2248 | is-docker: 2.2.1 2249 | is-wsl: 2.2.0 2250 | dev: true 2251 | 2252 | /optionator/0.9.1: 2253 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 2254 | engines: {node: '>= 0.8.0'} 2255 | dependencies: 2256 | deep-is: 0.1.4 2257 | fast-levenshtein: 2.0.6 2258 | levn: 0.4.1 2259 | prelude-ls: 1.2.1 2260 | type-check: 0.4.0 2261 | word-wrap: 1.2.3 2262 | dev: true 2263 | 2264 | /p-limit/3.1.0: 2265 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2266 | engines: {node: '>=10'} 2267 | dependencies: 2268 | yocto-queue: 0.1.0 2269 | dev: true 2270 | 2271 | /p-limit/4.0.0: 2272 | resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} 2273 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 2274 | dependencies: 2275 | yocto-queue: 1.0.0 2276 | dev: false 2277 | 2278 | /p-locate/5.0.0: 2279 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2280 | engines: {node: '>=10'} 2281 | dependencies: 2282 | p-limit: 3.1.0 2283 | dev: true 2284 | 2285 | /parent-module/1.0.1: 2286 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 2287 | engines: {node: '>=6'} 2288 | dependencies: 2289 | callsites: 3.1.0 2290 | dev: true 2291 | 2292 | /path-exists/4.0.0: 2293 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2294 | engines: {node: '>=8'} 2295 | dev: true 2296 | 2297 | /path-is-absolute/1.0.1: 2298 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2299 | engines: {node: '>=0.10.0'} 2300 | dev: true 2301 | 2302 | /path-key/3.1.1: 2303 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2304 | engines: {node: '>=8'} 2305 | dev: true 2306 | 2307 | /path-parse/1.0.7: 2308 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2309 | 2310 | /path-type/4.0.0: 2311 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2312 | engines: {node: '>=8'} 2313 | dev: true 2314 | 2315 | /pathe/1.1.0: 2316 | resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} 2317 | dev: false 2318 | 2319 | /pathval/1.1.1: 2320 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 2321 | dev: false 2322 | 2323 | /picocolors/1.0.0: 2324 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2325 | 2326 | /picomatch/2.3.1: 2327 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2328 | engines: {node: '>=8.6'} 2329 | dev: true 2330 | 2331 | /pkg-types/1.0.1: 2332 | resolution: {integrity: sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g==} 2333 | dependencies: 2334 | jsonc-parser: 3.2.0 2335 | mlly: 1.1.0 2336 | pathe: 1.1.0 2337 | dev: false 2338 | 2339 | /postcss/8.4.14: 2340 | resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} 2341 | engines: {node: ^10 || ^12 || >=14} 2342 | dependencies: 2343 | nanoid: 3.3.4 2344 | picocolors: 1.0.0 2345 | source-map-js: 1.0.2 2346 | dev: false 2347 | 2348 | /postcss/8.4.21: 2349 | resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} 2350 | engines: {node: ^10 || ^12 || >=14} 2351 | dependencies: 2352 | nanoid: 3.3.4 2353 | picocolors: 1.0.0 2354 | source-map-js: 1.0.2 2355 | dev: false 2356 | 2357 | /prelude-ls/1.2.1: 2358 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2359 | engines: {node: '>= 0.8.0'} 2360 | dev: true 2361 | 2362 | /pretty-format/27.5.1: 2363 | resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} 2364 | engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} 2365 | dependencies: 2366 | ansi-regex: 5.0.1 2367 | ansi-styles: 5.2.0 2368 | react-is: 17.0.2 2369 | dev: false 2370 | 2371 | /prop-types/15.8.1: 2372 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 2373 | dependencies: 2374 | loose-envify: 1.4.0 2375 | object-assign: 4.1.1 2376 | react-is: 16.13.1 2377 | dev: true 2378 | 2379 | /punycode/2.3.0: 2380 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 2381 | engines: {node: '>=6'} 2382 | dev: true 2383 | 2384 | /queue-microtask/1.2.3: 2385 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2386 | dev: true 2387 | 2388 | /react-dom/18.2.0_react@18.2.0: 2389 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 2390 | peerDependencies: 2391 | react: ^18.2.0 2392 | dependencies: 2393 | loose-envify: 1.4.0 2394 | react: 18.2.0 2395 | scheduler: 0.23.0 2396 | dev: false 2397 | 2398 | /react-is/16.13.1: 2399 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 2400 | dev: true 2401 | 2402 | /react-is/17.0.2: 2403 | resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} 2404 | dev: false 2405 | 2406 | /react-ssr-prepass/1.5.0_react@18.2.0: 2407 | resolution: {integrity: sha512-yFNHrlVEReVYKsLI5lF05tZoHveA5pGzjFbFJY/3pOqqjGOmMmqx83N4hIjN2n6E1AOa+eQEUxs3CgRnPmT0RQ==} 2408 | peerDependencies: 2409 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 2410 | dependencies: 2411 | react: 18.2.0 2412 | dev: false 2413 | 2414 | /react/18.2.0: 2415 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 2416 | engines: {node: '>=0.10.0'} 2417 | dependencies: 2418 | loose-envify: 1.4.0 2419 | dev: false 2420 | 2421 | /regenerator-runtime/0.13.11: 2422 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} 2423 | dev: true 2424 | 2425 | /regexp.prototype.flags/1.4.3: 2426 | resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} 2427 | engines: {node: '>= 0.4'} 2428 | dependencies: 2429 | call-bind: 1.0.2 2430 | define-properties: 1.1.4 2431 | functions-have-names: 1.2.3 2432 | dev: true 2433 | 2434 | /regexpp/3.2.0: 2435 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 2436 | engines: {node: '>=8'} 2437 | dev: true 2438 | 2439 | /resolve-from/4.0.0: 2440 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 2441 | engines: {node: '>=4'} 2442 | dev: true 2443 | 2444 | /resolve/1.22.1: 2445 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 2446 | hasBin: true 2447 | dependencies: 2448 | is-core-module: 2.11.0 2449 | path-parse: 1.0.7 2450 | supports-preserve-symlinks-flag: 1.0.0 2451 | 2452 | /resolve/2.0.0-next.4: 2453 | resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} 2454 | hasBin: true 2455 | dependencies: 2456 | is-core-module: 2.11.0 2457 | path-parse: 1.0.7 2458 | supports-preserve-symlinks-flag: 1.0.0 2459 | dev: true 2460 | 2461 | /reusify/1.0.4: 2462 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2463 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2464 | dev: true 2465 | 2466 | /rimraf/3.0.2: 2467 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2468 | hasBin: true 2469 | dependencies: 2470 | glob: 7.2.3 2471 | dev: true 2472 | 2473 | /rollup/3.12.0: 2474 | resolution: {integrity: sha512-4MZ8kA2HNYahIjz63rzrMMRvDqQDeS9LoriJvMuV0V6zIGysP36e9t4yObUfwdT9h/szXoHQideICftcdZklWg==} 2475 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 2476 | hasBin: true 2477 | optionalDependencies: 2478 | fsevents: 2.3.2 2479 | dev: false 2480 | 2481 | /run-parallel/1.2.0: 2482 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2483 | dependencies: 2484 | queue-microtask: 1.2.3 2485 | dev: true 2486 | 2487 | /safe-regex-test/1.0.0: 2488 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} 2489 | dependencies: 2490 | call-bind: 1.0.2 2491 | get-intrinsic: 1.2.0 2492 | is-regex: 1.1.4 2493 | dev: true 2494 | 2495 | /scheduler/0.23.0: 2496 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 2497 | dependencies: 2498 | loose-envify: 1.4.0 2499 | dev: false 2500 | 2501 | /semver/6.3.0: 2502 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 2503 | hasBin: true 2504 | dev: true 2505 | 2506 | /semver/7.3.8: 2507 | resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} 2508 | engines: {node: '>=10'} 2509 | hasBin: true 2510 | dependencies: 2511 | lru-cache: 6.0.0 2512 | dev: true 2513 | 2514 | /shebang-command/2.0.0: 2515 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2516 | engines: {node: '>=8'} 2517 | dependencies: 2518 | shebang-regex: 3.0.0 2519 | dev: true 2520 | 2521 | /shebang-regex/3.0.0: 2522 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2523 | engines: {node: '>=8'} 2524 | dev: true 2525 | 2526 | /side-channel/1.0.4: 2527 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 2528 | dependencies: 2529 | call-bind: 1.0.2 2530 | get-intrinsic: 1.2.0 2531 | object-inspect: 1.12.3 2532 | dev: true 2533 | 2534 | /siginfo/2.0.0: 2535 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 2536 | dev: false 2537 | 2538 | /slash/3.0.0: 2539 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2540 | engines: {node: '>=8'} 2541 | dev: true 2542 | 2543 | /slash/4.0.0: 2544 | resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} 2545 | engines: {node: '>=12'} 2546 | dev: true 2547 | 2548 | /slice-ansi/5.0.0: 2549 | resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} 2550 | engines: {node: '>=12'} 2551 | dependencies: 2552 | ansi-styles: 6.2.1 2553 | is-fullwidth-code-point: 4.0.0 2554 | dev: false 2555 | 2556 | /source-map-js/1.0.2: 2557 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 2558 | engines: {node: '>=0.10.0'} 2559 | dev: false 2560 | 2561 | /source-map-support/0.5.21: 2562 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 2563 | dependencies: 2564 | buffer-from: 1.1.2 2565 | source-map: 0.6.1 2566 | dev: false 2567 | 2568 | /source-map/0.6.1: 2569 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2570 | engines: {node: '>=0.10.0'} 2571 | dev: false 2572 | 2573 | /stackback/0.0.2: 2574 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 2575 | dev: false 2576 | 2577 | /std-env/3.3.1: 2578 | resolution: {integrity: sha512-3H20QlwQsSm2OvAxWIYhs+j01MzzqwMwGiiO1NQaJYZgJZFPuAbf95/DiKRBSTYIJ2FeGUc+B/6mPGcWP9dO3Q==} 2579 | dev: false 2580 | 2581 | /stop-iteration-iterator/1.0.0: 2582 | resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} 2583 | engines: {node: '>= 0.4'} 2584 | dependencies: 2585 | internal-slot: 1.0.4 2586 | dev: true 2587 | 2588 | /string-width/5.1.2: 2589 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 2590 | engines: {node: '>=12'} 2591 | dependencies: 2592 | eastasianwidth: 0.2.0 2593 | emoji-regex: 9.2.2 2594 | strip-ansi: 7.0.1 2595 | dev: false 2596 | 2597 | /string.prototype.matchall/4.0.8: 2598 | resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} 2599 | dependencies: 2600 | call-bind: 1.0.2 2601 | define-properties: 1.1.4 2602 | es-abstract: 1.21.1 2603 | get-intrinsic: 1.2.0 2604 | has-symbols: 1.0.3 2605 | internal-slot: 1.0.4 2606 | regexp.prototype.flags: 1.4.3 2607 | side-channel: 1.0.4 2608 | dev: true 2609 | 2610 | /string.prototype.trimend/1.0.6: 2611 | resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} 2612 | dependencies: 2613 | call-bind: 1.0.2 2614 | define-properties: 1.1.4 2615 | es-abstract: 1.21.1 2616 | dev: true 2617 | 2618 | /string.prototype.trimstart/1.0.6: 2619 | resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} 2620 | dependencies: 2621 | call-bind: 1.0.2 2622 | define-properties: 1.1.4 2623 | es-abstract: 1.21.1 2624 | dev: true 2625 | 2626 | /strip-ansi/6.0.1: 2627 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2628 | engines: {node: '>=8'} 2629 | dependencies: 2630 | ansi-regex: 5.0.1 2631 | dev: true 2632 | 2633 | /strip-ansi/7.0.1: 2634 | resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} 2635 | engines: {node: '>=12'} 2636 | dependencies: 2637 | ansi-regex: 6.0.1 2638 | dev: false 2639 | 2640 | /strip-bom/3.0.0: 2641 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 2642 | engines: {node: '>=4'} 2643 | dev: true 2644 | 2645 | /strip-json-comments/3.1.1: 2646 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2647 | engines: {node: '>=8'} 2648 | dev: true 2649 | 2650 | /strip-literal/1.0.0: 2651 | resolution: {integrity: sha512-5o4LsH1lzBzO9UFH63AJ2ad2/S2AVx6NtjOcaz+VTT2h1RiRvbipW72z8M/lxEhcPHDBQwpDrnTF7sXy/7OwCQ==} 2652 | dependencies: 2653 | acorn: 8.8.1 2654 | dev: false 2655 | 2656 | /styled-jsx/5.1.1_react@18.2.0: 2657 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} 2658 | engines: {node: '>= 12.0.0'} 2659 | peerDependencies: 2660 | '@babel/core': '*' 2661 | babel-plugin-macros: '*' 2662 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' 2663 | peerDependenciesMeta: 2664 | '@babel/core': 2665 | optional: true 2666 | babel-plugin-macros: 2667 | optional: true 2668 | dependencies: 2669 | client-only: 0.0.1 2670 | react: 18.2.0 2671 | dev: false 2672 | 2673 | /superjson/1.9.1: 2674 | resolution: {integrity: sha512-oT3HA2nPKlU1+5taFgz/HDy+GEaY+CWEbLzaRJVD4gZ7zMVVC4GDNFdgvAZt6/VuIk6D2R7RtPAiCHwmdzlMmg==} 2675 | engines: {node: '>=10'} 2676 | dependencies: 2677 | copy-anything: 3.0.3 2678 | dev: false 2679 | 2680 | /supports-color/7.2.0: 2681 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2682 | engines: {node: '>=8'} 2683 | dependencies: 2684 | has-flag: 4.0.0 2685 | dev: true 2686 | 2687 | /supports-preserve-symlinks-flag/1.0.0: 2688 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2689 | engines: {node: '>= 0.4'} 2690 | 2691 | /synckit/0.8.4: 2692 | resolution: {integrity: sha512-Dn2ZkzMdSX827QbowGbU/4yjWuvNaCoScLLoMo/yKbu+P4GBR6cRGKZH27k6a9bRzdqcyd1DE96pQtQ6uNkmyw==} 2693 | engines: {node: ^14.18.0 || >=16.0.0} 2694 | dependencies: 2695 | '@pkgr/utils': 2.3.1 2696 | tslib: 2.4.1 2697 | dev: true 2698 | 2699 | /tapable/2.2.1: 2700 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 2701 | engines: {node: '>=6'} 2702 | dev: true 2703 | 2704 | /text-table/0.2.0: 2705 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2706 | dev: true 2707 | 2708 | /tiny-glob/0.2.9: 2709 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 2710 | dependencies: 2711 | globalyzer: 0.1.0 2712 | globrex: 0.1.2 2713 | dev: true 2714 | 2715 | /tinybench/2.3.1: 2716 | resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==} 2717 | dev: false 2718 | 2719 | /tinypool/0.3.1: 2720 | resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==} 2721 | engines: {node: '>=14.0.0'} 2722 | dev: false 2723 | 2724 | /tinyspy/1.0.2: 2725 | resolution: {integrity: sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==} 2726 | engines: {node: '>=14.0.0'} 2727 | dev: false 2728 | 2729 | /to-regex-range/5.0.1: 2730 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2731 | engines: {node: '>=8.0'} 2732 | dependencies: 2733 | is-number: 7.0.0 2734 | dev: true 2735 | 2736 | /tsconfig-paths/3.14.1: 2737 | resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} 2738 | dependencies: 2739 | '@types/json5': 0.0.29 2740 | json5: 1.0.2 2741 | minimist: 1.2.7 2742 | strip-bom: 3.0.0 2743 | dev: true 2744 | 2745 | /tslib/1.14.1: 2746 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 2747 | dev: true 2748 | 2749 | /tslib/2.4.1: 2750 | resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} 2751 | 2752 | /tsutils/3.21.0_typescript@4.9.4: 2753 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 2754 | engines: {node: '>= 6'} 2755 | peerDependencies: 2756 | 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' 2757 | dependencies: 2758 | tslib: 1.14.1 2759 | typescript: 4.9.4 2760 | dev: true 2761 | 2762 | /type-check/0.4.0: 2763 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2764 | engines: {node: '>= 0.8.0'} 2765 | dependencies: 2766 | prelude-ls: 1.2.1 2767 | dev: true 2768 | 2769 | /type-detect/4.0.8: 2770 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 2771 | engines: {node: '>=4'} 2772 | dev: false 2773 | 2774 | /type-fest/0.20.2: 2775 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2776 | engines: {node: '>=10'} 2777 | dev: true 2778 | 2779 | /typed-array-length/1.0.4: 2780 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} 2781 | dependencies: 2782 | call-bind: 1.0.2 2783 | for-each: 0.3.3 2784 | is-typed-array: 1.1.10 2785 | dev: true 2786 | 2787 | /typescript/4.9.4: 2788 | resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} 2789 | engines: {node: '>=4.2.0'} 2790 | hasBin: true 2791 | dev: true 2792 | 2793 | /ufo/1.0.1: 2794 | resolution: {integrity: sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==} 2795 | dev: false 2796 | 2797 | /unbox-primitive/1.0.2: 2798 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 2799 | dependencies: 2800 | call-bind: 1.0.2 2801 | has-bigints: 1.0.2 2802 | has-symbols: 1.0.3 2803 | which-boxed-primitive: 1.0.2 2804 | dev: true 2805 | 2806 | /uri-js/4.4.1: 2807 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2808 | dependencies: 2809 | punycode: 2.3.0 2810 | dev: true 2811 | 2812 | /use-sync-external-store/1.2.0_react@18.2.0: 2813 | resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} 2814 | peerDependencies: 2815 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 2816 | dependencies: 2817 | react: 18.2.0 2818 | dev: false 2819 | 2820 | /vite-node/0.28.3_@types+node@18.11.18: 2821 | resolution: {integrity: sha512-uJJAOkgVwdfCX8PUQhqLyDOpkBS5+j+FdbsXoPVPDlvVjRkb/W/mLYQPSL6J+t8R0UV8tJSe8c9VyxVQNsDSyg==} 2822 | engines: {node: '>=v14.16.0'} 2823 | hasBin: true 2824 | dependencies: 2825 | cac: 6.7.14 2826 | debug: 4.3.4 2827 | mlly: 1.1.0 2828 | pathe: 1.1.0 2829 | picocolors: 1.0.0 2830 | source-map: 0.6.1 2831 | source-map-support: 0.5.21 2832 | vite: 4.0.4_@types+node@18.11.18 2833 | transitivePeerDependencies: 2834 | - '@types/node' 2835 | - less 2836 | - sass 2837 | - stylus 2838 | - sugarss 2839 | - supports-color 2840 | - terser 2841 | dev: false 2842 | 2843 | /vite/4.0.4_@types+node@18.11.18: 2844 | resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} 2845 | engines: {node: ^14.18.0 || >=16.0.0} 2846 | hasBin: true 2847 | peerDependencies: 2848 | '@types/node': '>= 14' 2849 | less: '*' 2850 | sass: '*' 2851 | stylus: '*' 2852 | sugarss: '*' 2853 | terser: ^5.4.0 2854 | peerDependenciesMeta: 2855 | '@types/node': 2856 | optional: true 2857 | less: 2858 | optional: true 2859 | sass: 2860 | optional: true 2861 | stylus: 2862 | optional: true 2863 | sugarss: 2864 | optional: true 2865 | terser: 2866 | optional: true 2867 | dependencies: 2868 | '@types/node': 18.11.18 2869 | esbuild: 0.16.17 2870 | postcss: 8.4.21 2871 | resolve: 1.22.1 2872 | rollup: 3.12.0 2873 | optionalDependencies: 2874 | fsevents: 2.3.2 2875 | dev: false 2876 | 2877 | /vitest/0.28.3: 2878 | resolution: {integrity: sha512-N41VPNf3VGJlWQizGvl1P5MGyv3ZZA2Zvh+2V8L6tYBAAuqqDK4zExunT1Cdb6dGfZ4gr+IMrnG8d4Z6j9ctPw==} 2879 | engines: {node: '>=v14.16.0'} 2880 | hasBin: true 2881 | peerDependencies: 2882 | '@edge-runtime/vm': '*' 2883 | '@vitest/browser': '*' 2884 | '@vitest/ui': '*' 2885 | happy-dom: '*' 2886 | jsdom: '*' 2887 | peerDependenciesMeta: 2888 | '@edge-runtime/vm': 2889 | optional: true 2890 | '@vitest/browser': 2891 | optional: true 2892 | '@vitest/ui': 2893 | optional: true 2894 | happy-dom: 2895 | optional: true 2896 | jsdom: 2897 | optional: true 2898 | dependencies: 2899 | '@types/chai': 4.3.4 2900 | '@types/chai-subset': 1.3.3 2901 | '@types/node': 18.11.18 2902 | '@vitest/expect': 0.28.3 2903 | '@vitest/runner': 0.28.3 2904 | '@vitest/spy': 0.28.3 2905 | '@vitest/utils': 0.28.3 2906 | acorn: 8.8.1 2907 | acorn-walk: 8.2.0 2908 | cac: 6.7.14 2909 | chai: 4.3.7 2910 | debug: 4.3.4 2911 | local-pkg: 0.4.3 2912 | pathe: 1.1.0 2913 | picocolors: 1.0.0 2914 | source-map: 0.6.1 2915 | std-env: 3.3.1 2916 | strip-literal: 1.0.0 2917 | tinybench: 2.3.1 2918 | tinypool: 0.3.1 2919 | tinyspy: 1.0.2 2920 | vite: 4.0.4_@types+node@18.11.18 2921 | vite-node: 0.28.3_@types+node@18.11.18 2922 | why-is-node-running: 2.2.2 2923 | transitivePeerDependencies: 2924 | - less 2925 | - sass 2926 | - stylus 2927 | - sugarss 2928 | - supports-color 2929 | - terser 2930 | dev: false 2931 | 2932 | /which-boxed-primitive/1.0.2: 2933 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 2934 | dependencies: 2935 | is-bigint: 1.0.4 2936 | is-boolean-object: 1.1.2 2937 | is-number-object: 1.0.7 2938 | is-string: 1.0.7 2939 | is-symbol: 1.0.4 2940 | dev: true 2941 | 2942 | /which-collection/1.0.1: 2943 | resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} 2944 | dependencies: 2945 | is-map: 2.0.2 2946 | is-set: 2.0.2 2947 | is-weakmap: 2.0.1 2948 | is-weakset: 2.0.2 2949 | dev: true 2950 | 2951 | /which-typed-array/1.1.9: 2952 | resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} 2953 | engines: {node: '>= 0.4'} 2954 | dependencies: 2955 | available-typed-arrays: 1.0.5 2956 | call-bind: 1.0.2 2957 | for-each: 0.3.3 2958 | gopd: 1.0.1 2959 | has-tostringtag: 1.0.0 2960 | is-typed-array: 1.1.10 2961 | dev: true 2962 | 2963 | /which/2.0.2: 2964 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2965 | engines: {node: '>= 8'} 2966 | hasBin: true 2967 | dependencies: 2968 | isexe: 2.0.0 2969 | dev: true 2970 | 2971 | /why-is-node-running/2.2.2: 2972 | resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} 2973 | engines: {node: '>=8'} 2974 | hasBin: true 2975 | dependencies: 2976 | siginfo: 2.0.0 2977 | stackback: 0.0.2 2978 | dev: false 2979 | 2980 | /word-wrap/1.2.3: 2981 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 2982 | engines: {node: '>=0.10.0'} 2983 | dev: true 2984 | 2985 | /wrappy/1.0.2: 2986 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2987 | dev: true 2988 | 2989 | /yallist/4.0.0: 2990 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2991 | dev: true 2992 | 2993 | /yocto-queue/0.1.0: 2994 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2995 | engines: {node: '>=10'} 2996 | dev: true 2997 | 2998 | /yocto-queue/1.0.0: 2999 | resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} 3000 | engines: {node: '>=12.20'} 3001 | dev: false 3002 | 3003 | /zod/3.20.2: 3004 | resolution: {integrity: sha512-1MzNQdAvO+54H+EaK5YpyEy0T+Ejo/7YLHS93G3RnYWh5gaotGHwGeN/ZO687qEDU2y4CdStQYXVHIgrUl5UVQ==} 3005 | dev: false 3006 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/c-ehrlich/you-dont-need-callers/535dd9b0d877e639adc73184a3ae63e3f53941fb/public/favicon.ico -------------------------------------------------------------------------------- /src/env/client.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | import { clientEnv, clientSchema } from "./schema.mjs"; 3 | 4 | const _clientEnv = clientSchema.safeParse(clientEnv); 5 | 6 | export const formatErrors = ( 7 | /** @type {import('zod').ZodFormattedError,string>} */ 8 | errors, 9 | ) => 10 | Object.entries(errors) 11 | .map(([name, value]) => { 12 | if (value && "_errors" in value) 13 | return `${name}: ${value._errors.join(", ")}\n`; 14 | }) 15 | .filter(Boolean); 16 | 17 | if (!_clientEnv.success) { 18 | console.error( 19 | "❌ Invalid environment variables:\n", 20 | ...formatErrors(_clientEnv.error.format()), 21 | ); 22 | throw new Error("Invalid environment variables"); 23 | } 24 | 25 | for (let key of Object.keys(_clientEnv.data)) { 26 | if (!key.startsWith("NEXT_PUBLIC_")) { 27 | console.warn( 28 | `❌ Invalid public environment variable name: ${key}. It must begin with 'NEXT_PUBLIC_'`, 29 | ); 30 | 31 | throw new Error("Invalid public environment variable name"); 32 | } 33 | } 34 | 35 | export const env = _clientEnv.data; 36 | -------------------------------------------------------------------------------- /src/env/schema.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | import { z } from "zod"; 3 | 4 | /** 5 | * Specify your server-side environment variables schema here. 6 | * This way you can ensure the app isn't built with invalid env vars. 7 | */ 8 | export const serverSchema = z.object({ 9 | NODE_ENV: z.enum(["development", "test", "production"]), 10 | }); 11 | 12 | /** 13 | * You can't destruct `process.env` as a regular object in the Next.js 14 | * middleware, so you have to do it manually here. 15 | * @type {{ [k in keyof z.infer]: z.infer[k] | undefined }} 16 | */ 17 | export const serverEnv = { 18 | NODE_ENV: process.env.NODE_ENV, 19 | }; 20 | 21 | /** 22 | * Specify your client-side environment variables schema here. 23 | * This way you can ensure the app isn't built with invalid env vars. 24 | * To expose them to the client, prefix them with `NEXT_PUBLIC_`. 25 | */ 26 | export const clientSchema = z.object({ 27 | // NEXT_PUBLIC_CLIENTVAR: z.string(), 28 | }); 29 | 30 | /** 31 | * You can't destruct `process.env` as a regular object, so you have to do 32 | * it manually here. This is because Next.js evaluates this at build time, 33 | * and only used environment variables are included in the build. 34 | * @type {{ [k in keyof z.infer]: z.infer[k] | undefined }} 35 | */ 36 | export const clientEnv = { 37 | // NEXT_PUBLIC_CLIENTVAR: process.env.NEXT_PUBLIC_CLIENTVAR, 38 | }; 39 | -------------------------------------------------------------------------------- /src/env/server.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | /** 3 | * This file is included in `/next.config.mjs` which ensures the app isn't built with invalid env vars. 4 | * It has to be a `.mjs`-file to be imported there. 5 | */ 6 | import { serverSchema, serverEnv } from "./schema.mjs"; 7 | import { env as clientEnv, formatErrors } from "./client.mjs"; 8 | 9 | const _serverEnv = serverSchema.safeParse(serverEnv); 10 | 11 | if (!_serverEnv.success) { 12 | console.error( 13 | "❌ Invalid environment variables:\n", 14 | ...formatErrors(_serverEnv.error.format()), 15 | ); 16 | throw new Error("Invalid environment variables"); 17 | } 18 | 19 | for (let key of Object.keys(_serverEnv.data)) { 20 | if (key.startsWith("NEXT_PUBLIC_")) { 21 | console.warn("❌ You are exposing a server-side env-variable:", key); 22 | 23 | throw new Error("You are exposing a server-side env-variable"); 24 | } 25 | } 26 | 27 | export const env = { ..._serverEnv.data, ...clientEnv }; 28 | -------------------------------------------------------------------------------- /src/pages/_app.tsx: -------------------------------------------------------------------------------- 1 | import { type AppType } from "next/app"; 2 | 3 | import { api } from "../utils/api"; 4 | 5 | import "../styles/globals.css"; 6 | 7 | const MyApp: AppType = ({ Component, pageProps }) => { 8 | return ; 9 | }; 10 | 11 | export default api.withTRPC(MyApp); 12 | -------------------------------------------------------------------------------- /src/pages/api/trpc/[trpc].ts: -------------------------------------------------------------------------------- 1 | import { createNextApiHandler } from "@trpc/server/adapters/next"; 2 | 3 | import { env } from "../../../env/server.mjs"; 4 | import { createTRPCContext } from "../../../server/api/trpc"; 5 | import { appRouter } from "../../../server/api/root"; 6 | 7 | // export API handler 8 | export default createNextApiHandler({ 9 | router: appRouter, 10 | createContext: createTRPCContext, 11 | onError: 12 | env.NODE_ENV === "development" 13 | ? ({ path, error }) => { 14 | console.error( 15 | `❌ tRPC failed on ${path ?? ""}: ${error.message}`, 16 | ); 17 | } 18 | : undefined, 19 | }); 20 | -------------------------------------------------------------------------------- /src/pages/gsspCaller.tsx: -------------------------------------------------------------------------------- 1 | import { type InferGetServerSidePropsType } from "next"; 2 | import Link from "next/link"; 3 | import { appRouter } from "../server/api/root"; 4 | import { fakePrisma } from "../server/db"; 5 | 6 | export const getServerSideProps = async () => { 7 | // would usually get id from url or something 8 | const id = 5; 9 | 10 | const caller = appRouter.createCaller({ 11 | foo: "bar", 12 | fakePrisma, 13 | }); 14 | 15 | const product = await caller.example2.getOneDiscounted({ id }); 16 | 17 | return { 18 | props: { 19 | product, 20 | }, 21 | }; 22 | }; 23 | 24 | export default function Page( 25 | props: InferGetServerSidePropsType, 26 | ) { 27 | return ( 28 |
29 | Home 30 |

getServerSideProps (caller)

31 |

props

32 |
{JSON.stringify(props, null, 2)}
33 |
34 | ); 35 | } 36 | -------------------------------------------------------------------------------- /src/pages/gsspFunction.tsx: -------------------------------------------------------------------------------- 1 | import { type InferGetServerSidePropsType } from "next"; 2 | import Link from "next/link"; 3 | import { getProduct } from "../server/api/example2-split-files/getProduct"; 4 | import { fakePrisma } from "../server/db"; 5 | 6 | export const getServerSideProps = async () => { 7 | // would usually get id from url or something 8 | const id = 5; 9 | 10 | const product = await getProduct({ fakePrisma, input: { id } }); 11 | 12 | return { 13 | props: { 14 | id, 15 | product, 16 | }, 17 | }; 18 | }; 19 | 20 | export default function Page( 21 | props: InferGetServerSidePropsType, 22 | ) { 23 | return ( 24 |
25 | Home 26 |

getServerSideProps (function)

27 |

props

28 |
{JSON.stringify(props, null, 2)}
29 |
30 | ); 31 | } 32 | -------------------------------------------------------------------------------- /src/pages/gsspFunctionInitialData.tsx: -------------------------------------------------------------------------------- 1 | import { type InferGetServerSidePropsType } from "next"; 2 | import Link from "next/link"; 3 | import { useState } from "react"; 4 | import { getProduct } from "../server/api/example2-split-files/getProduct"; 5 | import { fakePrisma } from "../server/db"; 6 | import { api } from "../utils/api"; 7 | 8 | export const getServerSideProps = async () => { 9 | // would usually get id from url or something 10 | const id = 5; 11 | 12 | const product = await getProduct({ fakePrisma, input: { id } }); 13 | return { 14 | props: { 15 | id, 16 | product, 17 | }, 18 | }; 19 | }; 20 | 21 | export default function Page( 22 | props: InferGetServerSidePropsType, 23 | ) { 24 | const [id, setId] = useState(props.id); 25 | const { data } = api.example2.getOneDiscounted.useQuery( 26 | { id }, 27 | { 28 | initialData: { foo: "bar" }, 29 | }, 30 | ); 31 | 32 | return ( 33 |
34 | Home 35 |

getServerSideProps (function)

36 | setId(Number(e.target.value))} 40 | /> 41 |

data

42 | {data ? ( 43 |
{JSON.stringify(data, null, 2)}
44 | ) : ( 45 |
Loading...
46 | )} 47 |

props

48 |
{JSON.stringify(props, null, 2)}
49 |
50 | ); 51 | } 52 | -------------------------------------------------------------------------------- /src/pages/gsspSSGHelpers.tsx: -------------------------------------------------------------------------------- 1 | import { createProxySSGHelpers } from "@trpc/react-query/ssg"; 2 | import { appRouter } from "../server/api/root"; 3 | import { createInnerTRPCContext } from "../server/api/trpc"; 4 | import superjson from "superjson"; 5 | import { type InferGetServerSidePropsType } from "next"; 6 | import { api } from "../utils/api"; 7 | import Link from "next/link"; 8 | import { useState } from "react"; 9 | 10 | export const getServerSideProps = async () => { 11 | // would usually get id from url or something 12 | const id = 5; 13 | 14 | const ssg = createProxySSGHelpers({ 15 | router: appRouter, 16 | ctx: createInnerTRPCContext({}), 17 | transformer: superjson, 18 | }); 19 | 20 | // `prefetch` does not return the result and never throws - if 21 | // you need that behavior, use `fetch` instead. 22 | await ssg.example2.getOneDiscounted.prefetch({ id }); 23 | 24 | const product = await ssg.example2.getOneDiscounted.fetch({ id }); 25 | console.log(product); 26 | 27 | return { 28 | props: { 29 | trpcState: ssg.dehydrate(), 30 | id, 31 | }, 32 | }; 33 | }; 34 | 35 | export default function SSGHelpersPage( 36 | props: InferGetServerSidePropsType, 37 | ) { 38 | const [id, setId] = useState(props.id); 39 | const { data } = api.example2.getOneDiscounted.useQuery({ id }); 40 | 41 | return ( 42 |
43 | Home 44 |

getServerSideProps (ssghelper)

45 | setId(Number(e.target.value))} 49 | /> 50 |

data

51 | {data ? ( 52 |
{JSON.stringify(data, null, 2)}
53 | ) : ( 54 |
Loading...
55 | )} 56 |

props

57 |
{JSON.stringify(props, null, 2)}
58 |
59 | ); 60 | } 61 | -------------------------------------------------------------------------------- /src/pages/index.module.css: -------------------------------------------------------------------------------- 1 | .main { 2 | display: flex; 3 | flex-direction: column; 4 | align-items: center; 5 | justify-content: center; 6 | min-height: 100vh; 7 | background-image: linear-gradient(to bottom, #2e026d, #15162c); 8 | } 9 | 10 | .container { 11 | width: 100%; 12 | display: flex; 13 | flex-direction: column; 14 | align-items: center; 15 | justify-content: center; 16 | gap: 3rem; 17 | padding: 4rem 1rem; 18 | } 19 | 20 | @media (min-width: 640px) { 21 | .container { 22 | max-width: 640px; 23 | } 24 | } 25 | 26 | @media (min-width: 768px) { 27 | .container { 28 | max-width: 768px; 29 | } 30 | } 31 | 32 | @media (min-width: 1024px) { 33 | .container { 34 | max-width: 1024px; 35 | } 36 | } 37 | 38 | @media (min-width: 1280px) { 39 | .container { 40 | max-width: 1280px; 41 | } 42 | } 43 | 44 | @media (min-width: 1536px) { 45 | .container { 46 | max-width: 1536px; 47 | } 48 | } 49 | 50 | .title { 51 | font-size: 3rem; 52 | line-height: 1; 53 | font-weight: 800; 54 | letter-spacing: -0.025em; 55 | margin: 0; 56 | color: white; 57 | } 58 | 59 | @media (min-width: 640px) { 60 | .title { 61 | font-size: 5rem; 62 | } 63 | } 64 | 65 | .pinkSpan { 66 | color: hsl(280 100% 70%); 67 | } 68 | 69 | .cardRow { 70 | display: grid; 71 | grid-template-columns: repeat(1, minmax(0, 1fr)); 72 | gap: 1rem; 73 | } 74 | 75 | @media (min-width: 640px) { 76 | .cardRow { 77 | grid-template-columns: repeat(2, minmax(0, 1fr)); 78 | } 79 | } 80 | 81 | @media (min-width: 768px) { 82 | .cardRow { 83 | gap: 2rem; 84 | } 85 | } 86 | 87 | .card { 88 | max-width: 20rem; 89 | display: flex; 90 | flex-direction: column; 91 | gap: 1rem; 92 | padding: 1rem; 93 | border-radius: 0.75rem; 94 | color: white; 95 | background-color: rgb(255 255 255 / 0.1); 96 | } 97 | 98 | .card:hover { 99 | background-color: rgb(255 255 255 / 0.2); 100 | transition: background-color 150ms cubic-bezier(0.5, 0, 0.2, 1); 101 | } 102 | 103 | .cardTitle { 104 | font-size: 1.5rem; 105 | line-height: 2rem; 106 | font-weight: 700; 107 | margin: 0; 108 | } 109 | 110 | .cardText { 111 | font-size: 1.125rem; 112 | line-height: 1.75rem; 113 | } 114 | 115 | .showcaseContainer { 116 | display: flex; 117 | flex-direction: column; 118 | align-items: center; 119 | gap: 0.5rem; 120 | } 121 | 122 | .showcaseText { 123 | color: white; 124 | text-align: center; 125 | font-size: 1.5rem; 126 | line-height: 2rem; 127 | } 128 | 129 | .authContainer { 130 | display: flex; 131 | flex-direction: column; 132 | align-items: center; 133 | justify-content: center; 134 | gap: 1rem; 135 | } 136 | 137 | .loginButton { 138 | border-radius: 9999px; 139 | background-color: rgb(255 255 255 / 0.1); 140 | padding: 0.75rem 2.5rem; 141 | font-weight: 600; 142 | color: white; 143 | text-decoration-line: none; 144 | transition: background-color 150ms cubic-bezier(0.5, 0, 0.2, 1); 145 | } 146 | 147 | .loginButton:hover { 148 | background-color: rgb(255 255 255 / 0.2); 149 | } 150 | -------------------------------------------------------------------------------- /src/pages/index.tsx: -------------------------------------------------------------------------------- 1 | import { type NextPage } from "next"; 2 | import Link from "next/link"; 3 | 4 | import { api } from "../utils/api"; 5 | 6 | const Home: NextPage = () => { 7 | const { data } = api.example2.getOneDiscounted.useQuery({ id: 5 }); 8 | 9 | return ( 10 |
11 |

Querying on the client

12 | {data ? ( 13 |
{JSON.stringify(data, null, 2)}
14 | ) : ( 15 |
Loading...
16 | )} 17 |
18 | gsspCaller 19 | gsspFunction 20 | gsspFunctionInitialData 21 | gsspSSGHelpers 22 |
23 |
24 | ); 25 | }; 26 | 27 | export default Home; 28 | -------------------------------------------------------------------------------- /src/server/api/example0-problem/products.ts: -------------------------------------------------------------------------------- 1 | import { TRPCError } from "@trpc/server"; 2 | import z from "zod"; 3 | import { appRouter } from "../root"; 4 | import { createTRPCRouter, publicProcedure } from "../trpc"; 5 | 6 | const getProductInputSchema = z.object({ id: z.number() }); 7 | 8 | export const exampleCallerRouter = createTRPCRouter({ 9 | getOne: publicProcedure 10 | .input(getProductInputSchema) 11 | .query(async ({ ctx, input }) => { 12 | const product = await ctx.fakePrisma.getProductById(input.id); 13 | if (product.id === 69) { 14 | throw new TRPCError({ code: "UNAUTHORIZED", message: "Nice but no" }); 15 | } 16 | return product; 17 | }), 18 | 19 | getOneDiscounted: publicProcedure 20 | .input(getProductInputSchema) 21 | .query(async ({ ctx, input }) => { 22 | /** 23 | * we want to: 24 | * - call `getOne` with input 25 | * - halve the price 26 | * - return the product 27 | */ 28 | // const caller = appRouter.createCaller({ 29 | // foo: "bar", 30 | // fakePrisma, 31 | // }); 32 | // const product = await caller.example0.getOne(input); 33 | // return product; 34 | }), 35 | }); 36 | -------------------------------------------------------------------------------- /src/server/api/example1-one-file/product.ts: -------------------------------------------------------------------------------- 1 | import { TRPCError } from "@trpc/server"; 2 | import z from "zod"; 3 | import { type FakePrismaClient } from "../../db"; 4 | import { createTRPCRouter, publicProcedure } from "../trpc"; 5 | 6 | const getProductInputSchema = z.object({ id: z.number() }); 7 | type GetProductInput = z.infer; 8 | 9 | async function getProduct({ 10 | fakePrisma, 11 | input, 12 | }: { 13 | fakePrisma: FakePrismaClient; // `PrismaClient` in a real app 14 | input: GetProductInput; 15 | }) { 16 | const product = await fakePrisma.getProductById(input.id); 17 | if (product.id === 69) { 18 | throw new TRPCError({ code: "UNAUTHORIZED", message: "Nice but no" }); 19 | } 20 | return product; 21 | } 22 | 23 | export const exampleExtractedFunctionRouter = createTRPCRouter({ 24 | getOne: publicProcedure 25 | .input(getProductInputSchema) 26 | .query(({ ctx, input }) => { 27 | return getProduct({ fakePrisma: ctx.fakePrisma, input }); 28 | }), 29 | 30 | getOneDiscounted: publicProcedure 31 | .input(getProductInputSchema) 32 | .query(async ({ ctx, input }) => { 33 | const product = await getProduct({ fakePrisma: ctx.fakePrisma, input }); 34 | const discountedProduct = { 35 | ...product, 36 | price: product.price / 2, 37 | }; 38 | return discountedProduct; 39 | }), 40 | }); 41 | -------------------------------------------------------------------------------- /src/server/api/example2-split-files/_product.ts: -------------------------------------------------------------------------------- 1 | import { createTRPCRouter } from "../trpc"; 2 | import { getProductProcedure } from "./getProduct"; 3 | import { getDiscountedProductProcedure } from "./getDiscountedProduct"; 4 | 5 | export const exampleSplitFileRouter = createTRPCRouter({ 6 | getOne: getProductProcedure, 7 | getOneDiscounted: getDiscountedProductProcedure, 8 | }); 9 | -------------------------------------------------------------------------------- /src/server/api/example2-split-files/getDiscountedProduct.ts: -------------------------------------------------------------------------------- 1 | import { publicProcedure } from "../trpc"; 2 | import { getProduct, getProductInputSchema } from "./getProduct"; 3 | 4 | export const getDiscountedProductProcedure = publicProcedure 5 | .input(getProductInputSchema) 6 | .query(async ({ ctx, input }) => { 7 | const product = await getProduct({ fakePrisma: ctx.fakePrisma, input }); 8 | return { 9 | ...product, 10 | price: product.price * 0.5, 11 | }; 12 | }); 13 | -------------------------------------------------------------------------------- /src/server/api/example2-split-files/getProduct.ts: -------------------------------------------------------------------------------- 1 | import { TRPCError } from "@trpc/server"; 2 | import { publicProcedure } from "../trpc"; 3 | import { z } from "zod"; 4 | import { type FakePrismaClient } from "../../db"; 5 | 6 | export const getProductInputSchema = z.object({ id: z.number() }); 7 | type GetProductInput = z.infer; 8 | 9 | export async function getProduct({ 10 | fakePrisma, 11 | input, 12 | }: { 13 | fakePrisma: FakePrismaClient; // `PrismaClient` in a real app 14 | input: GetProductInput; 15 | }) { 16 | const product = await fakePrisma.getProductById(input.id); 17 | if (product.id === 69) { 18 | throw new TRPCError({ code: "UNAUTHORIZED", message: "Nice but no" }); 19 | } 20 | return product; 21 | } 22 | 23 | export const getProductProcedure = publicProcedure 24 | .input(getProductInputSchema) 25 | .query(({ ctx, input }) => { 26 | return getProduct({ fakePrisma: ctx.fakePrisma, input }); 27 | }); 28 | -------------------------------------------------------------------------------- /src/server/api/root.ts: -------------------------------------------------------------------------------- 1 | import { exampleCallerRouter } from "./example0-problem/products"; 2 | import { exampleExtractedFunctionRouter } from "./example1-one-file/product"; 3 | import { exampleSplitFileRouter } from "./example2-split-files/_product"; 4 | import { createTRPCRouter } from "./trpc"; 5 | 6 | /** 7 | * This is the primary router for your server. 8 | * 9 | * All routers added in /api/routers should be manually added here 10 | */ 11 | export const appRouter = createTRPCRouter({ 12 | example0: exampleCallerRouter, 13 | example1: exampleExtractedFunctionRouter, 14 | example2: exampleSplitFileRouter, 15 | }); 16 | 17 | // export type definition of API 18 | export type AppRouter = typeof appRouter; 19 | -------------------------------------------------------------------------------- /src/server/api/trpc.ts: -------------------------------------------------------------------------------- 1 | import { type inferAsyncReturnType, initTRPC } from "@trpc/server"; 2 | import { type CreateNextContextOptions } from "@trpc/server/adapters/next"; 3 | import superjson from "superjson"; 4 | import { fakePrisma } from "../db"; 5 | 6 | /** 7 | * YOU PROBABLY DON'T NEED TO EDIT THIS FILE, UNLESS: 8 | * 1. You want to modify request context (see Part 1) 9 | * 2. You want to create a new middleware or type of procedure (see Part 3) 10 | * 11 | * tl;dr - this is where all the tRPC server stuff is created and plugged in. 12 | * The pieces you will need to use are documented accordingly near the end 13 | */ 14 | 15 | /** 16 | * 1. CONTEXT 17 | * 18 | * This section defines the "contexts" that are available in the backend API 19 | * 20 | * These allow you to access things like the database, the session, etc, when 21 | * processing a request 22 | * 23 | */ 24 | 25 | /** 26 | * Replace this with an object if you want to pass things to createContextInner 27 | */ 28 | type CreateContextOptions = Record; 29 | 30 | /** 31 | * This helper generates the "internals" for a tRPC context. If you need to use 32 | * it, you can export it from here 33 | * 34 | * Examples of things you may need it for: 35 | * - testing, so we dont have to mock Next.js' req/res 36 | * - trpc's `createSSGHelpers` where we don't have req/res 37 | * @see https://create.t3.gg/en/usage/trpc#-servertrpccontextts 38 | */ 39 | export const createInnerTRPCContext = (_opts: CreateContextOptions) => { 40 | return { foo: "bar", fakePrisma }; 41 | }; 42 | 43 | /** 44 | * This is the actual context you'll use in your router. It will be used to 45 | * process every request that goes through your tRPC endpoint 46 | * @see https://trpc.io/docs/context 47 | */ 48 | export const createTRPCContext = (_opts: CreateNextContextOptions) => { 49 | return createInnerTRPCContext({}); 50 | }; 51 | export type Context = inferAsyncReturnType; 52 | 53 | /** 54 | * 2. INITIALIZATION 55 | * 56 | * This is where the trpc api is initialized, connecting the context and 57 | * transformer 58 | */ 59 | 60 | const t = initTRPC.context().create({ 61 | transformer: superjson, 62 | errorFormatter({ shape }) { 63 | return shape; 64 | }, 65 | }); 66 | 67 | /** 68 | * 3. ROUTER & PROCEDURE (THE IMPORTANT BIT) 69 | * 70 | * These are the pieces you use to build your tRPC API. You should import these 71 | * a lot in the /src/server/api/routers folder 72 | */ 73 | 74 | /** 75 | * This is how you create new routers and subrouters in your tRPC API 76 | * @see https://trpc.io/docs/router 77 | */ 78 | export const createTRPCRouter = t.router; 79 | 80 | /** 81 | * Public (unauthed) procedure 82 | * 83 | * This is the base piece you use to build new queries and mutations on your 84 | * tRPC API. It does not guarantee that a user querying is authorized, but you 85 | * can still access user session data if they are logged in 86 | */ 87 | export const publicProcedure = t.procedure; 88 | -------------------------------------------------------------------------------- /src/server/db.ts: -------------------------------------------------------------------------------- 1 | class Database { 2 | public async getProductById(id: number) { 3 | await new Promise((resolve) => setTimeout(resolve, 500)); 4 | return { 5 | id, 6 | name: `Product #${id}`, 7 | price: id * 100, 8 | }; 9 | } 10 | } 11 | 12 | export const fakePrisma = new Database(); 13 | export type FakePrismaClient = typeof fakePrisma; 14 | -------------------------------------------------------------------------------- /src/styles/globals.css: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | padding: 0; 4 | margin: 0; 5 | font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, 6 | Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif; 7 | } 8 | 9 | a { 10 | color: inherit; 11 | text-decoration: none; 12 | } 13 | 14 | * { 15 | box-sizing: border-box; 16 | } 17 | -------------------------------------------------------------------------------- /src/utils/api.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This is the client-side entrypoint for your tRPC API. 3 | * It's used to create the `api` object which contains the Next.js App-wrapper 4 | * as well as your typesafe react-query hooks. 5 | * 6 | * We also create a few inference helpers for input and output types 7 | */ 8 | import { httpBatchLink, loggerLink } from "@trpc/client"; 9 | import { createTRPCNext } from "@trpc/next"; 10 | import { type inferRouterInputs, type inferRouterOutputs } from "@trpc/server"; 11 | import superjson from "superjson"; 12 | 13 | import { type AppRouter } from "../server/api/root"; 14 | 15 | const getBaseUrl = () => { 16 | if (typeof window !== "undefined") return ""; // browser should use relative url 17 | if (process.env.VERCEL_URL) return `https://${process.env.VERCEL_URL}`; // SSR should use vercel url 18 | return `http://localhost:${process.env.PORT ?? 3000}`; // dev SSR should use localhost 19 | }; 20 | 21 | /** 22 | * A set of typesafe react-query hooks for your tRPC API 23 | */ 24 | export const api = createTRPCNext({ 25 | config() { 26 | return { 27 | /** 28 | * Transformer used for data de-serialization from the server 29 | * @see https://trpc.io/docs/data-transformers 30 | **/ 31 | transformer: superjson, 32 | 33 | /** 34 | * Links used to determine request flow from client to server 35 | * @see https://trpc.io/docs/links 36 | * */ 37 | links: [ 38 | loggerLink({ 39 | enabled: (opts) => 40 | process.env.NODE_ENV === "development" || 41 | (opts.direction === "down" && opts.result instanceof Error), 42 | }), 43 | httpBatchLink({ 44 | url: `${getBaseUrl()}/api/trpc`, 45 | }), 46 | ], 47 | }; 48 | }, 49 | /** 50 | * Whether tRPC should await queries when server rendering pages 51 | * @see https://trpc.io/docs/nextjs#ssr-boolean-default-false 52 | */ 53 | ssr: false, 54 | }); 55 | 56 | /** 57 | * Inference helper for inputs 58 | * @example type HelloInput = RouterInputs['example']['hello'] 59 | **/ 60 | export type RouterInputs = inferRouterInputs; 61 | /** 62 | * Inference helper for outputs 63 | * @example type HelloOutput = RouterOutputs['example']['hello'] 64 | **/ 65 | export type RouterOutputs = inferRouterOutputs; 66 | -------------------------------------------------------------------------------- /src/utils/test.ts: -------------------------------------------------------------------------------- 1 | import { describe, expect } from "vitest"; 2 | import { appRouter } from "../server/api/root"; 3 | import { createInnerTRPCContext } from "../server/api/trpc"; 4 | 5 | // This is a helper that can be used to make calls to the api when not logged in 6 | export const createTestCaller = () => { 7 | return appRouter.createCaller( 8 | createInnerTRPCContext({ 9 | // put a mocked session in here etc 10 | }), 11 | ); 12 | }; 13 | 14 | // Test the procedures 15 | describe("example", () => { 16 | describe("getOne", async () => { 17 | const publicCaller = createTestCaller(); 18 | const data = await publicCaller.example2.getOneDiscounted({ id: 5 }); 19 | expect(data.price).toBe(500); 20 | }); 21 | 22 | describe("getOneDiscounted", async () => { 23 | const publicCaller = createTestCaller(); 24 | const data = await publicCaller.example2.getOneDiscounted({ id: 5 }); 25 | expect(data.price).toBe(250); 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /testCaller.ts: -------------------------------------------------------------------------------- 1 | import { appRouter } from "./src/server/api/root"; 2 | import { fakePrisma } from "./src/server/db"; 3 | 4 | const caller = appRouter.createCaller({ foo: "baz", fakePrisma }); 5 | caller.example 6 | .getProduct({ id: 100 }) 7 | .then((res) => console.log(res)) 8 | .catch((e) => console.log(e)); 9 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2017", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "allowJs": true, 6 | "skipLibCheck": true, 7 | "strict": true, 8 | "forceConsistentCasingInFileNames": true, 9 | "noEmit": true, 10 | "esModuleInterop": true, 11 | "module": "esnext", 12 | "moduleResolution": "node", 13 | "resolveJsonModule": true, 14 | "isolatedModules": true, 15 | "jsx": "preserve", 16 | "incremental": true, 17 | "noUncheckedIndexedAccess": true 18 | }, 19 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "**/*.cjs", "**/*.mjs"], 20 | "exclude": ["node_modules"] 21 | } 22 | --------------------------------------------------------------------------------