├── .gitignore ├── .prettierrc ├── adapter ├── index.d.ts └── index.js ├── src ├── index.ts ├── trpcLoader.ts ├── createTRPCRemix.ts ├── withTRPC.tsx └── adapter │ └── index.ts ├── tsconfig.json ├── LICENSE ├── package.json ├── esbuild.mjs ├── README.md └── pnpm-lock.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .DS_Store 3 | dist/ -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "printWidth": 100 4 | } 5 | -------------------------------------------------------------------------------- /adapter/index.d.ts: -------------------------------------------------------------------------------- 1 | export * from "../dist/adapter/index.js"; 2 | -------------------------------------------------------------------------------- /adapter/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('../dist/adapter/index.cjs'); -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./createTRPCRemix"; 2 | export * from "./withTRPC"; 3 | export * from "./trpcLoader"; 4 | -------------------------------------------------------------------------------- /src/trpcLoader.ts: -------------------------------------------------------------------------------- 1 | import type { LoaderArgs } from "@remix-run/node"; 2 | import type { AnyRouter } from "@trpc/server"; 3 | 4 | const createTRPCLoader = 5 | ( 6 | router: TRouter 7 | ): ((args: LoaderArgs) => ReturnType) => 8 | ({ request: req }) => { 9 | return router.createCaller({ req }) as ReturnType; 10 | }; 11 | 12 | export { createTRPCLoader }; 13 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "esnext", 4 | "lib": [ 5 | "ESNext", 6 | "dom", 7 | "dom.iterable" 8 | ], 9 | "outDir": "dist/", 10 | "target": "es6", 11 | "importHelpers": true, 12 | "declaration": true, 13 | "emitDeclarationOnly": true, 14 | "strict": true, 15 | "noUnusedLocals": true, 16 | "noUnusedParameters": true, 17 | "noImplicitReturns": true, 18 | "noFallthroughCasesInSwitch": true, 19 | "noUncheckedIndexedAccess": true, 20 | "moduleResolution": "node", 21 | "jsx": "react", 22 | "esModuleInterop": true, 23 | "allowJs": false, 24 | "baseUrl": ".", 25 | "typeRoots": [ 26 | "./node_modules/@types", 27 | "./types" 28 | ], 29 | }, 30 | "include": [ 31 | "src/**/*.ts", 32 | "src/**/*.tsx", 33 | "src/**/*.cts", 34 | ] 35 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 ggrandi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/createTRPCRemix.ts: -------------------------------------------------------------------------------- 1 | import { createReactQueryHooks, createReactQueryHooksProxy } from "@trpc/react"; 2 | import type { AnyRouter } from "@trpc/server"; 3 | import { type WithTRPCNoSSROptions, withTRPC } from "./withTRPC"; 4 | 5 | export type Hooks = ReturnType>; 6 | 7 | export function createTRPCRemix( 8 | opts: WithTRPCNoSSROptions 9 | ): { 10 | proxy: ReturnType>; 11 | useContext: Hooks["useContext"]; 12 | useInfiniteQuery: Hooks["useInfiniteQuery"]; 13 | useMutation: Hooks["useMutation"]; 14 | useQuery: Hooks["useQuery"]; 15 | useSubscription: Hooks["useSubscription"]; 16 | withTRPC: ReturnType>; 17 | queries: Hooks["queries"]; 18 | } { 19 | const hooks = createReactQueryHooks(); 20 | const proxy = createReactQueryHooksProxy(hooks); 21 | 22 | const _withTRPC = withTRPC(opts); 23 | 24 | return { 25 | proxy, 26 | useContext: hooks.useContext, 27 | useInfiniteQuery: hooks.useInfiniteQuery, 28 | useMutation: hooks.useMutation, 29 | useQuery: hooks.useQuery, 30 | useSubscription: hooks.useSubscription, 31 | withTRPC: _withTRPC, 32 | queries: hooks.queries, 33 | }; 34 | } 35 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "trpc-remix", 3 | "version": "10.0.0-alpha.40.1", 4 | "description": "tRPC Remix lib", 5 | "author": "ggrandi", 6 | "license": "MIT", 7 | "homepage": "https://github.com/ggrandi/trpc-remix", 8 | "repository": { 9 | "type": "git", 10 | "url": "git+https://github.com/ggrandi/trpc-remix.git" 11 | }, 12 | "scripts": { 13 | "build": "rm -rf dist/ && pnpm tsc && pnpm node ./esbuild.mjs", 14 | "prepublish": "pnpm build" 15 | }, 16 | "main": "dist/index.js", 17 | "module": "dist/index.mjs", 18 | "typings": "dist/index.d.ts", 19 | "exports": { 20 | ".": { 21 | "import": "./dist/index.mjs", 22 | "require": "./dist/index.js", 23 | "default": "./dist/index.js" 24 | }, 25 | "./adapter": { 26 | "import": "./dist/adapter/index.mjs", 27 | "require": "./dist/adapter/index.js", 28 | "default": "./dist/adapter/index.js" 29 | } 30 | }, 31 | "files": [ 32 | "README.md", 33 | "dist", 34 | "adapter" 35 | ], 36 | "peerDependencies": { 37 | "@remix-run/node": "*", 38 | "@trpc/client": "^10.0.0-alpha.40", 39 | "@trpc/react": "^10.0.0-alpha.40", 40 | "@trpc/server": "^10.0.0-alpha.40", 41 | "react": ">=16.8.0", 42 | "react-dom": ">=16.8.0", 43 | "react-query": "^3.37.0" 44 | }, 45 | "devDependencies": { 46 | "@remix-run/node": "^1.6.5", 47 | "@trpc/client": "=10.0.0-alpha.40", 48 | "@trpc/react": "=10.0.0-alpha.40", 49 | "@trpc/server": "=10.0.0-alpha.40", 50 | "@types/express": "^4.17.12", 51 | "@types/react": "^18.0.15", 52 | "express": "^4.17.1", 53 | "react": "^18.1.0", 54 | "react-dom": "^18.1.0", 55 | "react-query": "^3.39.2", 56 | "tslib": "^2.4.0", 57 | "typescript": "^4.7.4", 58 | "zod": "^3.0.0" 59 | }, 60 | "publishConfig": { 61 | "access": "public" 62 | }, 63 | "dependencies": { 64 | "esbuild": "^0.14.50" 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/withTRPC.tsx: -------------------------------------------------------------------------------- 1 | import type { CreateTRPCClientOptions } from "@trpc/client/src/internals/TRPCClient"; 2 | import { createReactQueryHooks } from "@trpc/react"; 3 | import type { AnyRouter } from "@trpc/server"; 4 | import React, { useState } from "react"; 5 | import { QueryClient, QueryClientProvider } from "react-query"; 6 | 7 | type QueryClientConfig = ConstructorParameters[0]; 8 | 9 | export type WithTRPCConfig = CreateTRPCClientOptions & { 10 | queryClientConfig?: QueryClientConfig; 11 | }; 12 | 13 | interface WithTRPCOptions { 14 | config: (info: Record) => WithTRPCConfig; 15 | } 16 | 17 | export interface WithTRPCNoSSROptions extends WithTRPCOptions { 18 | ssr?: false; 19 | } 20 | 21 | function withTRPC( 22 | opts: WithTRPCNoSSROptions 23 | ): (Component: React.FC) => React.ReactElement { 24 | const { config: getClientConfig } = opts; 25 | const trpc = createReactQueryHooks(); 26 | 27 | return (Component: React.FC) => { 28 | const WithTRPC = (props: Record) => { 29 | const [{ queryClient, trpcClient }] = useState(() => { 30 | const config = getClientConfig({}); 31 | 32 | const queryClient = new QueryClient(config.queryClientConfig); 33 | const trpcClient = trpc.createClient(config); 34 | return { 35 | queryClient, 36 | trpcClient, 37 | }; 38 | }); 39 | 40 | return ( 41 | 42 | 43 | 44 | 45 | 46 | ); 47 | }; 48 | 49 | const displayName = Component.displayName || Component.name || "Component"; 50 | WithTRPC.displayName = `withTRPC(${displayName})`; 51 | 52 | return WithTRPC as any; 53 | }; 54 | } 55 | 56 | export { withTRPC }; 57 | -------------------------------------------------------------------------------- /src/adapter/index.ts: -------------------------------------------------------------------------------- 1 | import { LoaderArgs } from "@remix-run/node"; 2 | import { type AnyRouter, TRPCError, inferRouterContext, Router } from "@trpc/server"; 3 | import { FetchHandlerRequestOptions, fetchRequestHandler } from "@trpc/server/adapters/fetch"; 4 | import { AnyRouterDef } from "@trpc/server/dist/core/router"; 5 | 6 | export type RemixCreateContextFnOptions = LoaderArgs; 7 | 8 | const json = (data: unknown, status = 200) => 9 | new Response(JSON.stringify(data), { 10 | headers: { 11 | "Content-Type": "application/json", 12 | }, 13 | status, 14 | }); 15 | 16 | export type RemixCreateContextFn = ( 17 | opts: RemixCreateContextFnOptions 18 | ) => inferRouterContext | Promise>; 19 | 20 | export type RemixCreateContextOption = 21 | unknown extends inferRouterContext 22 | ? { 23 | /** 24 | * @link https://trpc.io/docs/context 25 | **/ 26 | createContext?: RemixCreateContextFn; 27 | } 28 | : { 29 | /** 30 | * @link https://trpc.io/docs/context 31 | **/ 32 | createContext: RemixCreateContextFn; 33 | }; 34 | 35 | export function remixHTTPRequestHandler>({ 36 | createContext, 37 | ...opts 38 | }: Omit, "req" | "endpoint" | "createContext"> & 39 | RemixCreateContextOption) { 40 | const handler = async (args: LoaderArgs) => { 41 | function getPath(): string | null { 42 | if (typeof args.params.trpc === "string") { 43 | return args.params.trpc; 44 | } 45 | return null; 46 | } 47 | const path = getPath(); 48 | 49 | if (path === null) { 50 | const error = opts.router.getErrorShape({ 51 | error: new TRPCError({ 52 | message: 'Query "trpc" not found - is the file named `$trpc.ts`?', 53 | code: "INTERNAL_SERVER_ERROR", 54 | }), 55 | type: "unknown", 56 | ctx: undefined, 57 | path: undefined, 58 | input: undefined, 59 | }); 60 | 61 | return json({ error }, 500); 62 | } 63 | 64 | const endpoint = new URL(args.request.url).pathname.replace(path, ""); 65 | 66 | console.log(endpoint); 67 | 68 | return fetchRequestHandler({ 69 | ...opts, 70 | createContext() { 71 | return createContext?.(args); 72 | }, 73 | endpoint, 74 | req: args.request, 75 | }); 76 | }; 77 | 78 | return { loader: handler, action: handler }; 79 | } 80 | -------------------------------------------------------------------------------- /esbuild.mjs: -------------------------------------------------------------------------------- 1 | //@ts-check 2 | import { build } from "esbuild"; 3 | import * as path from "node:path"; 4 | import { writeFile, mkdir } from "node:fs/promises"; 5 | 6 | const cyan = (/** @type {string} */ text) => `\u001B[${36}m${text}\u001B[${39}m`; 7 | 8 | /** @type {import("esbuild").Plugin} */ 9 | const extensionTransformerPlugin = { 10 | name: "extensionTransformerPlugin", 11 | setup(build) { 12 | if (build.initialOptions.write === false) 13 | throw "extensionTransformerPlugin Sets write to false to modify the files. Cannot be set to false"; 14 | 15 | build.initialOptions.write = false; 16 | 17 | if ( 18 | build.initialOptions.format === "esm" && 19 | build.initialOptions.outExtension?.[".js"] === ".mjs" 20 | ) { 21 | build.onEnd(async (res) => { 22 | if (!build.initialOptions.outdir) throw "options.outdir is required"; 23 | 24 | Promise.all( 25 | (res.outputFiles ?? []).map(async ({ path: filePath, text }) => { 26 | const contents = text.replace( 27 | /from "\.\/(?.+)"/g, 28 | (_, filename) => `from "./${filename}.mjs"` 29 | ); 30 | 31 | try { 32 | await mkdir(path.join(filePath, "../"), { 33 | recursive: true, 34 | }); 35 | } catch {} 36 | 37 | writeFile(filePath, contents); 38 | }) 39 | ); 40 | }); 41 | } 42 | }, 43 | }; 44 | 45 | /** @type {Omit & { entryPoints: string[] }} */ 46 | const buildConfig = { 47 | entryPoints: [ 48 | "src/createTRPCRemix.ts", 49 | "src/trpcLoader.ts", 50 | "src/index.ts", 51 | "src/withTRPC.tsx", 52 | "src/adapter/index.ts", 53 | ], 54 | treeShaking: true, 55 | outdir: "dist/", 56 | platform: "node", 57 | target: ["es2020"], 58 | // minify: true, 59 | }; 60 | 61 | /** @type {(Partial> & { entryPoints?: string[]; name: string})[]} */ 62 | const builds = [ 63 | { 64 | name: "commonjs build", 65 | format: "cjs", 66 | }, 67 | { 68 | plugins: [extensionTransformerPlugin], 69 | name: "esm build", 70 | outExtension: { ".js": ".mjs" }, 71 | splitting: true, 72 | format: "esm", 73 | }, 74 | ]; 75 | 76 | for (const { name: buildName, entryPoints, ...currentBuild } of builds) { 77 | console.log(cyan(`Building: ${buildName}`)); 78 | 79 | build({ 80 | ...buildConfig, 81 | ...currentBuild, 82 | entryPoints: [...buildConfig.entryPoints, ...(entryPoints ?? [])], 83 | }).catch((/** @type {unknown} */ err) => { 84 | console.error(err); 85 | process.exit(1); 86 | }); 87 | } 88 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # `trpc-remix` 2 | 3 | > Connect a [tRPC](https://trpc.io) router to remix. 4 | 5 | ## Installation 6 | 7 | ```bash 8 | # npm 9 | npm install trpc-remix @trpc/react react-query 10 | 11 | # Yarn 12 | yarn add trpc-remix @trpc/react react-query 13 | 14 | # pnpm 15 | pnpm add trpc-remix @trpc/react react-query 16 | ``` 17 | 18 | ## Basic Example 19 | 20 | Setup the API route in `app/routes/api/$trpc.ts` 21 | 22 | ```ts 23 | import { remixHTTPRequestHandler } from 'trpc-remix/adapter'; 24 | import { createContext } from '~/server/context'; 25 | import { appRouter } from '~/server/routers/_app'; 26 | 27 | export const { loader, action } = remixHTTPRequestHandler({ 28 | createContext, 29 | router: appRouter, 30 | }); 31 | ``` 32 | 33 | Setup tRPC in `app/utils/trpc.ts`. 34 | 35 | ```ts 36 | import { createTRPCRemix } from 'trpc-remix'; 37 | import type { AppRouter } from ''; 38 | 39 | export const trpc = createTRPCRemix({ 40 | config() { 41 | return { 42 | // ... 43 | }; 44 | }, 45 | }); 46 | ``` 47 | 48 | Hook up tRPC inside `app/root.tsx`. 49 | 50 | ```ts 51 | import { trpc } from '~/utils/trpc'; 52 | 53 | // ... 54 | 55 | const App = () => { 56 | return ( 57 | // ... 58 | ); 59 | }; 60 | 61 | export default trpc.withTRPC(App); 62 | ``` 63 | 64 | Add createTRPCLoader to your AppRouter file. 65 | 66 | ```ts 67 | import { createTRPCLoader } from 'trpc-remix'; 68 | import { t } from '../trpc'; 69 | 70 | export const appRouter = t.router({ 71 | // ... 72 | }); 73 | 74 | export type AppRouter = typeof appRouter; 75 | 76 | export const trpcLoader = createTRPCLoader(appRouter); 77 | ``` 78 | 79 | Now you can query your API in any component. 80 | 81 | ```tsx 82 | import type { LoaderArgs } from '@remix-run/node'; 83 | import { json } from '@remix-run/node'; 84 | import { trpcLoader } from '~/server/routers/_app'; 85 | import { trpc } from '~/utils/trpc'; 86 | 87 | const loader = async (args: LoaderArgs) => { 88 | const trpc = trpcLoader(args); 89 | 90 | return json({ 91 | greeting: await trpc.greeting(), 92 | }); 93 | }; 94 | 95 | export function Hello() { 96 | const { data, error, status } = trpc.proxy.greeting.useQuery({ 97 | name: 'tRPC', 98 | }); 99 | 100 | const loaderData = useLoaderData(); 101 | 102 | if (error) { 103 | return

{error.message}

; 104 | } 105 | 106 | if (status !== 'success') { 107 | return

Loading...

; 108 | } 109 | 110 | return ( 111 | <> 112 |
{data &&

{data.greeting}

}
113 |
LoaderData: {loaderData}
114 | 115 | ); 116 | } 117 | ``` 118 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@remix-run/node': ^1.6.5 5 | '@trpc/client': '=10.0.0-alpha.40' 6 | '@trpc/react': '=10.0.0-alpha.40' 7 | '@trpc/server': '=10.0.0-alpha.40' 8 | '@types/express': ^4.17.12 9 | '@types/react': ^18.0.15 10 | esbuild: ^0.14.50 11 | express: ^4.17.1 12 | react: ^18.1.0 13 | react-dom: ^18.1.0 14 | react-query: ^3.39.2 15 | tslib: ^2.4.0 16 | typescript: ^4.7.4 17 | zod: ^3.0.0 18 | 19 | dependencies: 20 | esbuild: 0.14.50 21 | 22 | devDependencies: 23 | '@remix-run/node': 1.6.5_biqbaboplfbrettd7655fr4n2y 24 | '@trpc/client': 10.0.0-alpha.40_vggdl7utqy7c3sfyaekokvwnf4 25 | '@trpc/react': 10.0.0-alpha.40_24sjtixwlanpyjufk2ynqicmhi 26 | '@trpc/server': 10.0.0-alpha.40 27 | '@types/express': 4.17.13 28 | '@types/react': 18.0.15 29 | express: 4.18.1 30 | react: 18.2.0 31 | react-dom: 18.2.0_react@18.2.0 32 | react-query: 3.39.2_biqbaboplfbrettd7655fr4n2y 33 | tslib: 2.4.0 34 | typescript: 4.7.4 35 | zod: 3.17.10 36 | 37 | packages: 38 | 39 | /@babel/runtime/7.18.9: 40 | resolution: {integrity: sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==} 41 | engines: {node: '>=6.9.0'} 42 | dependencies: 43 | regenerator-runtime: 0.13.9 44 | dev: true 45 | 46 | /@remix-run/node/1.6.5_biqbaboplfbrettd7655fr4n2y: 47 | resolution: {integrity: sha512-UMy775OV7LTzGCEpP9g7LUDYY/Rc5JUT5jgjK4vP4P+GHCTpnHjWdvloda379oN5JiRuMDD3IXwg2wnMNzrWPQ==} 48 | engines: {node: '>=14'} 49 | dependencies: 50 | '@remix-run/server-runtime': 1.6.5_biqbaboplfbrettd7655fr4n2y 51 | '@remix-run/web-fetch': 4.2.0 52 | '@remix-run/web-file': 3.0.2 53 | '@remix-run/web-stream': 1.0.3 54 | '@web3-storage/multipart-parser': 1.0.0 55 | abort-controller: 3.0.0 56 | cookie-signature: 1.2.0 57 | source-map-support: 0.5.21 58 | stream-slice: 0.1.2 59 | transitivePeerDependencies: 60 | - react 61 | - react-dom 62 | dev: true 63 | 64 | /@remix-run/server-runtime/1.6.5_biqbaboplfbrettd7655fr4n2y: 65 | resolution: {integrity: sha512-4QJeIWFWcXZbSPaXUR3V0XzsF0TALuuoQJGEPhtaRP/oX/relE8T36hCmsBDwe0gQM6nyanU2q8vG8BoOQqulQ==} 66 | engines: {node: '>=14'} 67 | peerDependencies: 68 | react: '>=16.8' 69 | react-dom: '>=16.8' 70 | dependencies: 71 | '@types/cookie': 0.4.1 72 | '@web3-storage/multipart-parser': 1.0.0 73 | cookie: 0.4.2 74 | jsesc: 3.0.2 75 | react: 18.2.0 76 | react-dom: 18.2.0_react@18.2.0 77 | react-router-dom: 6.3.0_biqbaboplfbrettd7655fr4n2y 78 | set-cookie-parser: 2.5.0 79 | source-map: 0.7.4 80 | dev: true 81 | 82 | /@remix-run/web-blob/3.0.4: 83 | resolution: {integrity: sha512-AfegzZvSSDc+LwnXV+SwROTrDtoLiPxeFW+jxgvtDAnkuCX1rrzmVJ6CzqZ1Ai0bVfmJadkG5GxtAfYclpPmgw==} 84 | dependencies: 85 | '@remix-run/web-stream': 1.0.3 86 | web-encoding: 1.1.5 87 | dev: true 88 | 89 | /@remix-run/web-fetch/4.2.0: 90 | resolution: {integrity: sha512-Bll+4Z3CT4ryYKRFTbdanLaXbOjtSuwYcj8s6DSXehVcZWWrz7mA3O394T52iFjvhaJ+ELSstNhVeBQc6NUfGg==} 91 | engines: {node: ^10.17 || >=12.3} 92 | dependencies: 93 | '@remix-run/web-blob': 3.0.4 94 | '@remix-run/web-form-data': 3.0.3 95 | '@remix-run/web-stream': 1.0.3 96 | '@web3-storage/multipart-parser': 1.0.0 97 | data-uri-to-buffer: 3.0.1 98 | mrmime: 1.0.1 99 | dev: true 100 | 101 | /@remix-run/web-file/3.0.2: 102 | resolution: {integrity: sha512-eFC93Onh/rZ5kUNpCQersmBtxedGpaXK2/gsUl49BYSGK/DvuPu3l06vmquEDdcPaEuXcsdGP0L7zrmUqrqo4A==} 103 | dependencies: 104 | '@remix-run/web-blob': 3.0.4 105 | dev: true 106 | 107 | /@remix-run/web-form-data/3.0.3: 108 | resolution: {integrity: sha512-wL4veBtVPazSpXfPMzrbmeV3IxuxCfcQYPerQ8BXRO5ahAEVw23tv7xS+yoX0XDO5j+vpRaSbhHJK1H5gF7eYQ==} 109 | dependencies: 110 | web-encoding: 1.1.5 111 | dev: true 112 | 113 | /@remix-run/web-stream/1.0.3: 114 | resolution: {integrity: sha512-wlezlJaA5NF6SsNMiwQnnAW6tnPzQ5I8qk0Y0pSohm0eHKa2FQ1QhEKLVVcDDu02TmkfHgnux0igNfeYhDOXiA==} 115 | dependencies: 116 | web-streams-polyfill: 3.2.1 117 | dev: true 118 | 119 | /@trpc/client/10.0.0-alpha.40_vggdl7utqy7c3sfyaekokvwnf4: 120 | resolution: {integrity: sha512-QxRIg5EQKdeLY+KNw+bG5moZe09+MqvRVJjfi2h8G9pFeN1+oLFQMp5vsYgeXlS2bo9cuBUNJQZdqc9t6Sy/8g==} 121 | peerDependencies: 122 | '@trpc/server': 10.0.0-alpha.40 123 | dependencies: 124 | '@babel/runtime': 7.18.9 125 | '@trpc/server': 10.0.0-alpha.40 126 | dev: true 127 | 128 | /@trpc/react/10.0.0-alpha.40_24sjtixwlanpyjufk2ynqicmhi: 129 | resolution: {integrity: sha512-0AeVHWFLnJFKQFrwXzY3xKoO9t28NFQ1IXQO1ay3deassM/1HMx5YISXzcbC3yq0ZHHxNazkvcrZ7mb5mtzOCw==} 130 | peerDependencies: 131 | '@trpc/client': 10.0.0-alpha.40 132 | '@trpc/server': 10.0.0-alpha.40 133 | react: '>=16.8.0' 134 | react-dom: '>=16.8.0' 135 | react-query: ^3.37.0 136 | dependencies: 137 | '@babel/runtime': 7.18.9 138 | '@trpc/client': 10.0.0-alpha.40_vggdl7utqy7c3sfyaekokvwnf4 139 | '@trpc/server': 10.0.0-alpha.40 140 | react: 18.2.0 141 | react-dom: 18.2.0_react@18.2.0 142 | react-query: 3.39.2_biqbaboplfbrettd7655fr4n2y 143 | dev: true 144 | 145 | /@trpc/server/10.0.0-alpha.40: 146 | resolution: {integrity: sha512-ddRZ+1ullfCBXXOhcMYWaIQrNR1TC5MV8eWfE/YYyrLlXiFQSJbezOWF/NqtfwLMxdAj0g8FZSMQH8BIW7I+EA==} 147 | dependencies: 148 | tslib: 2.4.0 149 | dev: true 150 | 151 | /@types/body-parser/1.19.2: 152 | resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} 153 | dependencies: 154 | '@types/connect': 3.4.35 155 | '@types/node': 18.6.1 156 | dev: true 157 | 158 | /@types/connect/3.4.35: 159 | resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} 160 | dependencies: 161 | '@types/node': 18.6.1 162 | dev: true 163 | 164 | /@types/cookie/0.4.1: 165 | resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} 166 | dev: true 167 | 168 | /@types/express-serve-static-core/4.17.29: 169 | resolution: {integrity: sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==} 170 | dependencies: 171 | '@types/node': 18.6.1 172 | '@types/qs': 6.9.7 173 | '@types/range-parser': 1.2.4 174 | dev: true 175 | 176 | /@types/express/4.17.13: 177 | resolution: {integrity: sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==} 178 | dependencies: 179 | '@types/body-parser': 1.19.2 180 | '@types/express-serve-static-core': 4.17.29 181 | '@types/qs': 6.9.7 182 | '@types/serve-static': 1.13.10 183 | dev: true 184 | 185 | /@types/mime/1.3.2: 186 | resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==} 187 | dev: true 188 | 189 | /@types/node/18.6.1: 190 | resolution: {integrity: sha512-z+2vB6yDt1fNwKOeGbckpmirO+VBDuQqecXkgeIqDlaOtmKn6hPR/viQ8cxCfqLU4fTlvM3+YjM367TukWdxpg==} 191 | dev: true 192 | 193 | /@types/prop-types/15.7.5: 194 | resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} 195 | dev: true 196 | 197 | /@types/qs/6.9.7: 198 | resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} 199 | dev: true 200 | 201 | /@types/range-parser/1.2.4: 202 | resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} 203 | dev: true 204 | 205 | /@types/react/18.0.15: 206 | resolution: {integrity: sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==} 207 | dependencies: 208 | '@types/prop-types': 15.7.5 209 | '@types/scheduler': 0.16.2 210 | csstype: 3.1.0 211 | dev: true 212 | 213 | /@types/scheduler/0.16.2: 214 | resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} 215 | dev: true 216 | 217 | /@types/serve-static/1.13.10: 218 | resolution: {integrity: sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==} 219 | dependencies: 220 | '@types/mime': 1.3.2 221 | '@types/node': 18.6.1 222 | dev: true 223 | 224 | /@web3-storage/multipart-parser/1.0.0: 225 | resolution: {integrity: sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==} 226 | dev: true 227 | 228 | /@zxing/text-encoding/0.9.0: 229 | resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} 230 | requiresBuild: true 231 | dev: true 232 | optional: true 233 | 234 | /abort-controller/3.0.0: 235 | resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} 236 | engines: {node: '>=6.5'} 237 | dependencies: 238 | event-target-shim: 5.0.1 239 | dev: true 240 | 241 | /accepts/1.3.8: 242 | resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} 243 | engines: {node: '>= 0.6'} 244 | dependencies: 245 | mime-types: 2.1.35 246 | negotiator: 0.6.3 247 | dev: true 248 | 249 | /array-flatten/1.1.1: 250 | resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} 251 | dev: true 252 | 253 | /available-typed-arrays/1.0.5: 254 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 255 | engines: {node: '>= 0.4'} 256 | dev: true 257 | 258 | /balanced-match/1.0.2: 259 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 260 | dev: true 261 | 262 | /big-integer/1.6.51: 263 | resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} 264 | engines: {node: '>=0.6'} 265 | dev: true 266 | 267 | /body-parser/1.20.0: 268 | resolution: {integrity: sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==} 269 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 270 | dependencies: 271 | bytes: 3.1.2 272 | content-type: 1.0.4 273 | debug: 2.6.9 274 | depd: 2.0.0 275 | destroy: 1.2.0 276 | http-errors: 2.0.0 277 | iconv-lite: 0.4.24 278 | on-finished: 2.4.1 279 | qs: 6.10.3 280 | raw-body: 2.5.1 281 | type-is: 1.6.18 282 | unpipe: 1.0.0 283 | transitivePeerDependencies: 284 | - supports-color 285 | dev: true 286 | 287 | /brace-expansion/1.1.11: 288 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 289 | dependencies: 290 | balanced-match: 1.0.2 291 | concat-map: 0.0.1 292 | dev: true 293 | 294 | /broadcast-channel/3.7.0: 295 | resolution: {integrity: sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==} 296 | dependencies: 297 | '@babel/runtime': 7.18.9 298 | detect-node: 2.1.0 299 | js-sha3: 0.8.0 300 | microseconds: 0.2.0 301 | nano-time: 1.0.0 302 | oblivious-set: 1.0.0 303 | rimraf: 3.0.2 304 | unload: 2.2.0 305 | dev: true 306 | 307 | /buffer-from/1.1.2: 308 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 309 | dev: true 310 | 311 | /bytes/3.1.2: 312 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} 313 | engines: {node: '>= 0.8'} 314 | dev: true 315 | 316 | /call-bind/1.0.2: 317 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 318 | dependencies: 319 | function-bind: 1.1.1 320 | get-intrinsic: 1.1.2 321 | dev: true 322 | 323 | /concat-map/0.0.1: 324 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 325 | dev: true 326 | 327 | /content-disposition/0.5.4: 328 | resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} 329 | engines: {node: '>= 0.6'} 330 | dependencies: 331 | safe-buffer: 5.2.1 332 | dev: true 333 | 334 | /content-type/1.0.4: 335 | resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==} 336 | engines: {node: '>= 0.6'} 337 | dev: true 338 | 339 | /cookie-signature/1.0.6: 340 | resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} 341 | dev: true 342 | 343 | /cookie-signature/1.2.0: 344 | resolution: {integrity: sha512-R0BOPfLGTitaKhgKROKZQN6iyq2iDQcH1DOF8nJoaWapguX5bC2w+Q/I9NmmM5lfcvEarnLZr+cCvmEYYSXvYA==} 345 | engines: {node: '>=6.6.0'} 346 | dev: true 347 | 348 | /cookie/0.4.2: 349 | resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} 350 | engines: {node: '>= 0.6'} 351 | dev: true 352 | 353 | /cookie/0.5.0: 354 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 355 | engines: {node: '>= 0.6'} 356 | dev: true 357 | 358 | /csstype/3.1.0: 359 | resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==} 360 | dev: true 361 | 362 | /data-uri-to-buffer/3.0.1: 363 | resolution: {integrity: sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==} 364 | engines: {node: '>= 6'} 365 | dev: true 366 | 367 | /debug/2.6.9: 368 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 369 | peerDependencies: 370 | supports-color: '*' 371 | peerDependenciesMeta: 372 | supports-color: 373 | optional: true 374 | dependencies: 375 | ms: 2.0.0 376 | dev: true 377 | 378 | /define-properties/1.1.4: 379 | resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} 380 | engines: {node: '>= 0.4'} 381 | dependencies: 382 | has-property-descriptors: 1.0.0 383 | object-keys: 1.1.1 384 | dev: true 385 | 386 | /depd/2.0.0: 387 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 388 | engines: {node: '>= 0.8'} 389 | dev: true 390 | 391 | /destroy/1.2.0: 392 | resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} 393 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 394 | dev: true 395 | 396 | /detect-node/2.1.0: 397 | resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} 398 | dev: true 399 | 400 | /ee-first/1.1.1: 401 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 402 | dev: true 403 | 404 | /encodeurl/1.0.2: 405 | resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} 406 | engines: {node: '>= 0.8'} 407 | dev: true 408 | 409 | /es-abstract/1.20.1: 410 | resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==} 411 | engines: {node: '>= 0.4'} 412 | dependencies: 413 | call-bind: 1.0.2 414 | es-to-primitive: 1.2.1 415 | function-bind: 1.1.1 416 | function.prototype.name: 1.1.5 417 | get-intrinsic: 1.1.2 418 | get-symbol-description: 1.0.0 419 | has: 1.0.3 420 | has-property-descriptors: 1.0.0 421 | has-symbols: 1.0.3 422 | internal-slot: 1.0.3 423 | is-callable: 1.2.4 424 | is-negative-zero: 2.0.2 425 | is-regex: 1.1.4 426 | is-shared-array-buffer: 1.0.2 427 | is-string: 1.0.7 428 | is-weakref: 1.0.2 429 | object-inspect: 1.12.2 430 | object-keys: 1.1.1 431 | object.assign: 4.1.2 432 | regexp.prototype.flags: 1.4.3 433 | string.prototype.trimend: 1.0.5 434 | string.prototype.trimstart: 1.0.5 435 | unbox-primitive: 1.0.2 436 | dev: true 437 | 438 | /es-to-primitive/1.2.1: 439 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 440 | engines: {node: '>= 0.4'} 441 | dependencies: 442 | is-callable: 1.2.4 443 | is-date-object: 1.0.5 444 | is-symbol: 1.0.4 445 | dev: true 446 | 447 | /esbuild-android-64/0.14.50: 448 | resolution: {integrity: sha512-H7iUEm7gUJHzidsBlFPGF6FTExazcgXL/46xxLo6i6bMtPim6ZmXyTccS8yOMpy6HAC6dPZ/JCQqrkkin69n6Q==} 449 | engines: {node: '>=12'} 450 | cpu: [x64] 451 | os: [android] 452 | requiresBuild: true 453 | dev: false 454 | optional: true 455 | 456 | /esbuild-android-arm64/0.14.50: 457 | resolution: {integrity: sha512-NFaoqEwa+OYfoYVpQWDMdKII7wZZkAjtJFo1WdnBeCYlYikvUhTnf2aPwPu5qEAw/ie1NYK0yn3cafwP+kP+OQ==} 458 | engines: {node: '>=12'} 459 | cpu: [arm64] 460 | os: [android] 461 | requiresBuild: true 462 | dev: false 463 | optional: true 464 | 465 | /esbuild-darwin-64/0.14.50: 466 | resolution: {integrity: sha512-gDQsCvGnZiJv9cfdO48QqxkRV8oKAXgR2CGp7TdIpccwFdJMHf8hyIJhMW/05b/HJjET/26Us27Jx91BFfEVSA==} 467 | engines: {node: '>=12'} 468 | cpu: [x64] 469 | os: [darwin] 470 | requiresBuild: true 471 | dev: false 472 | optional: true 473 | 474 | /esbuild-darwin-arm64/0.14.50: 475 | resolution: {integrity: sha512-36nNs5OjKIb/Q50Sgp8+rYW/PqirRiFN0NFc9hEvgPzNJxeJedktXwzfJSln4EcRFRh5Vz4IlqFRScp+aiBBzA==} 476 | engines: {node: '>=12'} 477 | cpu: [arm64] 478 | os: [darwin] 479 | requiresBuild: true 480 | dev: false 481 | optional: true 482 | 483 | /esbuild-freebsd-64/0.14.50: 484 | resolution: {integrity: sha512-/1pHHCUem8e/R86/uR+4v5diI2CtBdiWKiqGuPa9b/0x3Nwdh5AOH7lj+8823C6uX1e0ufwkSLkS+aFZiBCWxA==} 485 | engines: {node: '>=12'} 486 | cpu: [x64] 487 | os: [freebsd] 488 | requiresBuild: true 489 | dev: false 490 | optional: true 491 | 492 | /esbuild-freebsd-arm64/0.14.50: 493 | resolution: {integrity: sha512-iKwUVMQztnPZe5pUYHdMkRc9aSpvoV1mkuHlCoPtxZA3V+Kg/ptpzkcSY+fKd0kuom+l6Rc93k0UPVkP7xoqrw==} 494 | engines: {node: '>=12'} 495 | cpu: [arm64] 496 | os: [freebsd] 497 | requiresBuild: true 498 | dev: false 499 | optional: true 500 | 501 | /esbuild-linux-32/0.14.50: 502 | resolution: {integrity: sha512-sWUwvf3uz7dFOpLzYuih+WQ7dRycrBWHCdoXJ4I4XdMxEHCECd8b7a9N9u7FzT6XR2gHPk9EzvchQUtiEMRwqw==} 503 | engines: {node: '>=12'} 504 | cpu: [ia32] 505 | os: [linux] 506 | requiresBuild: true 507 | dev: false 508 | optional: true 509 | 510 | /esbuild-linux-64/0.14.50: 511 | resolution: {integrity: sha512-u0PQxPhaeI629t4Y3EEcQ0wmWG+tC/LpP2K7yDFvwuPq0jSQ8SIN+ARNYfRjGW15O2we3XJvklbGV0wRuUCPig==} 512 | engines: {node: '>=12'} 513 | cpu: [x64] 514 | os: [linux] 515 | requiresBuild: true 516 | dev: false 517 | optional: true 518 | 519 | /esbuild-linux-arm/0.14.50: 520 | resolution: {integrity: sha512-VALZq13bhmFJYFE/mLEb+9A0w5vo8z+YDVOWeaf9vOTrSC31RohRIwtxXBnVJ7YKLYfEMzcgFYf+OFln3Y0cWg==} 521 | engines: {node: '>=12'} 522 | cpu: [arm] 523 | os: [linux] 524 | requiresBuild: true 525 | dev: false 526 | optional: true 527 | 528 | /esbuild-linux-arm64/0.14.50: 529 | resolution: {integrity: sha512-ZyfoNgsTftD7Rp5S7La5auomKdNeB3Ck+kSKXC4pp96VnHyYGjHHXWIlcbH8i+efRn9brszo1/Thl1qn8RqmhQ==} 530 | engines: {node: '>=12'} 531 | cpu: [arm64] 532 | os: [linux] 533 | requiresBuild: true 534 | dev: false 535 | optional: true 536 | 537 | /esbuild-linux-mips64le/0.14.50: 538 | resolution: {integrity: sha512-ygo31Vxn/WrmjKCHkBoutOlFG5yM9J2UhzHb0oWD9O61dGg+Hzjz9hjf5cmM7FBhAzdpOdEWHIrVOg2YAi6rTw==} 539 | engines: {node: '>=12'} 540 | cpu: [mips64el] 541 | os: [linux] 542 | requiresBuild: true 543 | dev: false 544 | optional: true 545 | 546 | /esbuild-linux-ppc64le/0.14.50: 547 | resolution: {integrity: sha512-xWCKU5UaiTUT6Wz/O7GKP9KWdfbsb7vhfgQzRfX4ahh5NZV4ozZ4+SdzYG8WxetsLy84UzLX3Pi++xpVn1OkFQ==} 548 | engines: {node: '>=12'} 549 | cpu: [ppc64] 550 | os: [linux] 551 | requiresBuild: true 552 | dev: false 553 | optional: true 554 | 555 | /esbuild-linux-riscv64/0.14.50: 556 | resolution: {integrity: sha512-0+dsneSEihZTopoO9B6Z6K4j3uI7EdxBP7YSF5rTwUgCID+wHD3vM1gGT0m+pjCW+NOacU9kH/WE9N686FHAJg==} 557 | engines: {node: '>=12'} 558 | cpu: [riscv64] 559 | os: [linux] 560 | requiresBuild: true 561 | dev: false 562 | optional: true 563 | 564 | /esbuild-linux-s390x/0.14.50: 565 | resolution: {integrity: sha512-tVjqcu8o0P9H4StwbIhL1sQYm5mWATlodKB6dpEZFkcyTI8kfIGWiWcrGmkNGH2i1kBUOsdlBafPxR3nzp3TDA==} 566 | engines: {node: '>=12'} 567 | cpu: [s390x] 568 | os: [linux] 569 | requiresBuild: true 570 | dev: false 571 | optional: true 572 | 573 | /esbuild-netbsd-64/0.14.50: 574 | resolution: {integrity: sha512-0R/glfqAQ2q6MHDf7YJw/TulibugjizBxyPvZIcorH0Mb7vSimdHy0XF5uCba5CKt+r4wjax1mvO9lZ4jiAhEg==} 575 | engines: {node: '>=12'} 576 | cpu: [x64] 577 | os: [netbsd] 578 | requiresBuild: true 579 | dev: false 580 | optional: true 581 | 582 | /esbuild-openbsd-64/0.14.50: 583 | resolution: {integrity: sha512-7PAtmrR5mDOFubXIkuxYQ4bdNS6XCK8AIIHUiZxq1kL8cFIH5731jPcXQ4JNy/wbj1C9sZ8rzD8BIM80Tqk29w==} 584 | engines: {node: '>=12'} 585 | cpu: [x64] 586 | os: [openbsd] 587 | requiresBuild: true 588 | dev: false 589 | optional: true 590 | 591 | /esbuild-sunos-64/0.14.50: 592 | resolution: {integrity: sha512-gBxNY/wyptvD7PkHIYcq7se6SQEXcSC8Y7mE0FJB+CGgssEWf6vBPfTTZ2b6BWKnmaP6P6qb7s/KRIV5T2PxsQ==} 593 | engines: {node: '>=12'} 594 | cpu: [x64] 595 | os: [sunos] 596 | requiresBuild: true 597 | dev: false 598 | optional: true 599 | 600 | /esbuild-windows-32/0.14.50: 601 | resolution: {integrity: sha512-MOOe6J9cqe/iW1qbIVYSAqzJFh0p2LBLhVUIWdMVnNUNjvg2/4QNX4oT4IzgDeldU+Bym9/Tn6+DxvUHJXL5Zw==} 602 | engines: {node: '>=12'} 603 | cpu: [ia32] 604 | os: [win32] 605 | requiresBuild: true 606 | dev: false 607 | optional: true 608 | 609 | /esbuild-windows-64/0.14.50: 610 | resolution: {integrity: sha512-r/qE5Ex3w1jjGv/JlpPoWB365ldkppUlnizhMxJgojp907ZF1PgLTuW207kgzZcSCXyquL9qJkMsY+MRtaZ5yQ==} 611 | engines: {node: '>=12'} 612 | cpu: [x64] 613 | os: [win32] 614 | requiresBuild: true 615 | dev: false 616 | optional: true 617 | 618 | /esbuild-windows-arm64/0.14.50: 619 | resolution: {integrity: sha512-EMS4lQnsIe12ZyAinOINx7eq2mjpDdhGZZWDwPZE/yUTN9cnc2Ze/xUTYIAyaJqrqQda3LnDpADKpvLvol6ENQ==} 620 | engines: {node: '>=12'} 621 | cpu: [arm64] 622 | os: [win32] 623 | requiresBuild: true 624 | dev: false 625 | optional: true 626 | 627 | /esbuild/0.14.50: 628 | resolution: {integrity: sha512-SbC3k35Ih2IC6trhbMYW7hYeGdjPKf9atTKwBUHqMCYFZZ9z8zhuvfnZihsnJypl74FjiAKjBRqFkBkAd0rS/w==} 629 | engines: {node: '>=12'} 630 | hasBin: true 631 | requiresBuild: true 632 | optionalDependencies: 633 | esbuild-android-64: 0.14.50 634 | esbuild-android-arm64: 0.14.50 635 | esbuild-darwin-64: 0.14.50 636 | esbuild-darwin-arm64: 0.14.50 637 | esbuild-freebsd-64: 0.14.50 638 | esbuild-freebsd-arm64: 0.14.50 639 | esbuild-linux-32: 0.14.50 640 | esbuild-linux-64: 0.14.50 641 | esbuild-linux-arm: 0.14.50 642 | esbuild-linux-arm64: 0.14.50 643 | esbuild-linux-mips64le: 0.14.50 644 | esbuild-linux-ppc64le: 0.14.50 645 | esbuild-linux-riscv64: 0.14.50 646 | esbuild-linux-s390x: 0.14.50 647 | esbuild-netbsd-64: 0.14.50 648 | esbuild-openbsd-64: 0.14.50 649 | esbuild-sunos-64: 0.14.50 650 | esbuild-windows-32: 0.14.50 651 | esbuild-windows-64: 0.14.50 652 | esbuild-windows-arm64: 0.14.50 653 | dev: false 654 | 655 | /escape-html/1.0.3: 656 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 657 | dev: true 658 | 659 | /etag/1.8.1: 660 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} 661 | engines: {node: '>= 0.6'} 662 | dev: true 663 | 664 | /event-target-shim/5.0.1: 665 | resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 666 | engines: {node: '>=6'} 667 | dev: true 668 | 669 | /express/4.18.1: 670 | resolution: {integrity: sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==} 671 | engines: {node: '>= 0.10.0'} 672 | dependencies: 673 | accepts: 1.3.8 674 | array-flatten: 1.1.1 675 | body-parser: 1.20.0 676 | content-disposition: 0.5.4 677 | content-type: 1.0.4 678 | cookie: 0.5.0 679 | cookie-signature: 1.0.6 680 | debug: 2.6.9 681 | depd: 2.0.0 682 | encodeurl: 1.0.2 683 | escape-html: 1.0.3 684 | etag: 1.8.1 685 | finalhandler: 1.2.0 686 | fresh: 0.5.2 687 | http-errors: 2.0.0 688 | merge-descriptors: 1.0.1 689 | methods: 1.1.2 690 | on-finished: 2.4.1 691 | parseurl: 1.3.3 692 | path-to-regexp: 0.1.7 693 | proxy-addr: 2.0.7 694 | qs: 6.10.3 695 | range-parser: 1.2.1 696 | safe-buffer: 5.2.1 697 | send: 0.18.0 698 | serve-static: 1.15.0 699 | setprototypeof: 1.2.0 700 | statuses: 2.0.1 701 | type-is: 1.6.18 702 | utils-merge: 1.0.1 703 | vary: 1.1.2 704 | transitivePeerDependencies: 705 | - supports-color 706 | dev: true 707 | 708 | /finalhandler/1.2.0: 709 | resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} 710 | engines: {node: '>= 0.8'} 711 | dependencies: 712 | debug: 2.6.9 713 | encodeurl: 1.0.2 714 | escape-html: 1.0.3 715 | on-finished: 2.4.1 716 | parseurl: 1.3.3 717 | statuses: 2.0.1 718 | unpipe: 1.0.0 719 | transitivePeerDependencies: 720 | - supports-color 721 | dev: true 722 | 723 | /for-each/0.3.3: 724 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 725 | dependencies: 726 | is-callable: 1.2.4 727 | dev: true 728 | 729 | /forwarded/0.2.0: 730 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 731 | engines: {node: '>= 0.6'} 732 | dev: true 733 | 734 | /fresh/0.5.2: 735 | resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} 736 | engines: {node: '>= 0.6'} 737 | dev: true 738 | 739 | /fs.realpath/1.0.0: 740 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 741 | dev: true 742 | 743 | /function-bind/1.1.1: 744 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 745 | dev: true 746 | 747 | /function.prototype.name/1.1.5: 748 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} 749 | engines: {node: '>= 0.4'} 750 | dependencies: 751 | call-bind: 1.0.2 752 | define-properties: 1.1.4 753 | es-abstract: 1.20.1 754 | functions-have-names: 1.2.3 755 | dev: true 756 | 757 | /functions-have-names/1.2.3: 758 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 759 | dev: true 760 | 761 | /get-intrinsic/1.1.2: 762 | resolution: {integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==} 763 | dependencies: 764 | function-bind: 1.1.1 765 | has: 1.0.3 766 | has-symbols: 1.0.3 767 | dev: true 768 | 769 | /get-symbol-description/1.0.0: 770 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 771 | engines: {node: '>= 0.4'} 772 | dependencies: 773 | call-bind: 1.0.2 774 | get-intrinsic: 1.1.2 775 | dev: true 776 | 777 | /glob/7.2.3: 778 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 779 | dependencies: 780 | fs.realpath: 1.0.0 781 | inflight: 1.0.6 782 | inherits: 2.0.4 783 | minimatch: 3.1.2 784 | once: 1.4.0 785 | path-is-absolute: 1.0.1 786 | dev: true 787 | 788 | /has-bigints/1.0.2: 789 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 790 | dev: true 791 | 792 | /has-property-descriptors/1.0.0: 793 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 794 | dependencies: 795 | get-intrinsic: 1.1.2 796 | dev: true 797 | 798 | /has-symbols/1.0.3: 799 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 800 | engines: {node: '>= 0.4'} 801 | dev: true 802 | 803 | /has-tostringtag/1.0.0: 804 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 805 | engines: {node: '>= 0.4'} 806 | dependencies: 807 | has-symbols: 1.0.3 808 | dev: true 809 | 810 | /has/1.0.3: 811 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 812 | engines: {node: '>= 0.4.0'} 813 | dependencies: 814 | function-bind: 1.1.1 815 | dev: true 816 | 817 | /history/5.3.0: 818 | resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} 819 | dependencies: 820 | '@babel/runtime': 7.18.9 821 | dev: true 822 | 823 | /http-errors/2.0.0: 824 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 825 | engines: {node: '>= 0.8'} 826 | dependencies: 827 | depd: 2.0.0 828 | inherits: 2.0.4 829 | setprototypeof: 1.2.0 830 | statuses: 2.0.1 831 | toidentifier: 1.0.1 832 | dev: true 833 | 834 | /iconv-lite/0.4.24: 835 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 836 | engines: {node: '>=0.10.0'} 837 | dependencies: 838 | safer-buffer: 2.1.2 839 | dev: true 840 | 841 | /inflight/1.0.6: 842 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 843 | dependencies: 844 | once: 1.4.0 845 | wrappy: 1.0.2 846 | dev: true 847 | 848 | /inherits/2.0.4: 849 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 850 | dev: true 851 | 852 | /internal-slot/1.0.3: 853 | resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} 854 | engines: {node: '>= 0.4'} 855 | dependencies: 856 | get-intrinsic: 1.1.2 857 | has: 1.0.3 858 | side-channel: 1.0.4 859 | dev: true 860 | 861 | /ipaddr.js/1.9.1: 862 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 863 | engines: {node: '>= 0.10'} 864 | dev: true 865 | 866 | /is-arguments/1.1.1: 867 | resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} 868 | engines: {node: '>= 0.4'} 869 | dependencies: 870 | call-bind: 1.0.2 871 | has-tostringtag: 1.0.0 872 | dev: true 873 | 874 | /is-bigint/1.0.4: 875 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 876 | dependencies: 877 | has-bigints: 1.0.2 878 | dev: true 879 | 880 | /is-boolean-object/1.1.2: 881 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 882 | engines: {node: '>= 0.4'} 883 | dependencies: 884 | call-bind: 1.0.2 885 | has-tostringtag: 1.0.0 886 | dev: true 887 | 888 | /is-callable/1.2.4: 889 | resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} 890 | engines: {node: '>= 0.4'} 891 | dev: true 892 | 893 | /is-date-object/1.0.5: 894 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 895 | engines: {node: '>= 0.4'} 896 | dependencies: 897 | has-tostringtag: 1.0.0 898 | dev: true 899 | 900 | /is-generator-function/1.0.10: 901 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} 902 | engines: {node: '>= 0.4'} 903 | dependencies: 904 | has-tostringtag: 1.0.0 905 | dev: true 906 | 907 | /is-negative-zero/2.0.2: 908 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 909 | engines: {node: '>= 0.4'} 910 | dev: true 911 | 912 | /is-number-object/1.0.7: 913 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 914 | engines: {node: '>= 0.4'} 915 | dependencies: 916 | has-tostringtag: 1.0.0 917 | dev: true 918 | 919 | /is-regex/1.1.4: 920 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 921 | engines: {node: '>= 0.4'} 922 | dependencies: 923 | call-bind: 1.0.2 924 | has-tostringtag: 1.0.0 925 | dev: true 926 | 927 | /is-shared-array-buffer/1.0.2: 928 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 929 | dependencies: 930 | call-bind: 1.0.2 931 | dev: true 932 | 933 | /is-string/1.0.7: 934 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 935 | engines: {node: '>= 0.4'} 936 | dependencies: 937 | has-tostringtag: 1.0.0 938 | dev: true 939 | 940 | /is-symbol/1.0.4: 941 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 942 | engines: {node: '>= 0.4'} 943 | dependencies: 944 | has-symbols: 1.0.3 945 | dev: true 946 | 947 | /is-typed-array/1.1.9: 948 | resolution: {integrity: sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==} 949 | engines: {node: '>= 0.4'} 950 | dependencies: 951 | available-typed-arrays: 1.0.5 952 | call-bind: 1.0.2 953 | es-abstract: 1.20.1 954 | for-each: 0.3.3 955 | has-tostringtag: 1.0.0 956 | dev: true 957 | 958 | /is-weakref/1.0.2: 959 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 960 | dependencies: 961 | call-bind: 1.0.2 962 | dev: true 963 | 964 | /js-sha3/0.8.0: 965 | resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} 966 | dev: true 967 | 968 | /js-tokens/4.0.0: 969 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 970 | dev: true 971 | 972 | /jsesc/3.0.2: 973 | resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} 974 | engines: {node: '>=6'} 975 | hasBin: true 976 | dev: true 977 | 978 | /loose-envify/1.4.0: 979 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 980 | hasBin: true 981 | dependencies: 982 | js-tokens: 4.0.0 983 | dev: true 984 | 985 | /match-sorter/6.3.1: 986 | resolution: {integrity: sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==} 987 | dependencies: 988 | '@babel/runtime': 7.18.9 989 | remove-accents: 0.4.2 990 | dev: true 991 | 992 | /media-typer/0.3.0: 993 | resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} 994 | engines: {node: '>= 0.6'} 995 | dev: true 996 | 997 | /merge-descriptors/1.0.1: 998 | resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} 999 | dev: true 1000 | 1001 | /methods/1.1.2: 1002 | resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} 1003 | engines: {node: '>= 0.6'} 1004 | dev: true 1005 | 1006 | /microseconds/0.2.0: 1007 | resolution: {integrity: sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==} 1008 | dev: true 1009 | 1010 | /mime-db/1.52.0: 1011 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1012 | engines: {node: '>= 0.6'} 1013 | dev: true 1014 | 1015 | /mime-types/2.1.35: 1016 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1017 | engines: {node: '>= 0.6'} 1018 | dependencies: 1019 | mime-db: 1.52.0 1020 | dev: true 1021 | 1022 | /mime/1.6.0: 1023 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 1024 | engines: {node: '>=4'} 1025 | hasBin: true 1026 | dev: true 1027 | 1028 | /minimatch/3.1.2: 1029 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1030 | dependencies: 1031 | brace-expansion: 1.1.11 1032 | dev: true 1033 | 1034 | /mrmime/1.0.1: 1035 | resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} 1036 | engines: {node: '>=10'} 1037 | dev: true 1038 | 1039 | /ms/2.0.0: 1040 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 1041 | dev: true 1042 | 1043 | /ms/2.1.3: 1044 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1045 | dev: true 1046 | 1047 | /nano-time/1.0.0: 1048 | resolution: {integrity: sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==} 1049 | dependencies: 1050 | big-integer: 1.6.51 1051 | dev: true 1052 | 1053 | /negotiator/0.6.3: 1054 | resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} 1055 | engines: {node: '>= 0.6'} 1056 | dev: true 1057 | 1058 | /object-inspect/1.12.2: 1059 | resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} 1060 | dev: true 1061 | 1062 | /object-keys/1.1.1: 1063 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1064 | engines: {node: '>= 0.4'} 1065 | dev: true 1066 | 1067 | /object.assign/4.1.2: 1068 | resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} 1069 | engines: {node: '>= 0.4'} 1070 | dependencies: 1071 | call-bind: 1.0.2 1072 | define-properties: 1.1.4 1073 | has-symbols: 1.0.3 1074 | object-keys: 1.1.1 1075 | dev: true 1076 | 1077 | /oblivious-set/1.0.0: 1078 | resolution: {integrity: sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==} 1079 | dev: true 1080 | 1081 | /on-finished/2.4.1: 1082 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 1083 | engines: {node: '>= 0.8'} 1084 | dependencies: 1085 | ee-first: 1.1.1 1086 | dev: true 1087 | 1088 | /once/1.4.0: 1089 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1090 | dependencies: 1091 | wrappy: 1.0.2 1092 | dev: true 1093 | 1094 | /parseurl/1.3.3: 1095 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 1096 | engines: {node: '>= 0.8'} 1097 | dev: true 1098 | 1099 | /path-is-absolute/1.0.1: 1100 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1101 | engines: {node: '>=0.10.0'} 1102 | dev: true 1103 | 1104 | /path-to-regexp/0.1.7: 1105 | resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} 1106 | dev: true 1107 | 1108 | /proxy-addr/2.0.7: 1109 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 1110 | engines: {node: '>= 0.10'} 1111 | dependencies: 1112 | forwarded: 0.2.0 1113 | ipaddr.js: 1.9.1 1114 | dev: true 1115 | 1116 | /qs/6.10.3: 1117 | resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} 1118 | engines: {node: '>=0.6'} 1119 | dependencies: 1120 | side-channel: 1.0.4 1121 | dev: true 1122 | 1123 | /range-parser/1.2.1: 1124 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 1125 | engines: {node: '>= 0.6'} 1126 | dev: true 1127 | 1128 | /raw-body/2.5.1: 1129 | resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} 1130 | engines: {node: '>= 0.8'} 1131 | dependencies: 1132 | bytes: 3.1.2 1133 | http-errors: 2.0.0 1134 | iconv-lite: 0.4.24 1135 | unpipe: 1.0.0 1136 | dev: true 1137 | 1138 | /react-dom/18.2.0_react@18.2.0: 1139 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 1140 | peerDependencies: 1141 | react: ^18.2.0 1142 | dependencies: 1143 | loose-envify: 1.4.0 1144 | react: 18.2.0 1145 | scheduler: 0.23.0 1146 | dev: true 1147 | 1148 | /react-query/3.39.2_biqbaboplfbrettd7655fr4n2y: 1149 | resolution: {integrity: sha512-F6hYDKyNgDQfQOuR1Rsp3VRzJnWHx6aRnnIZHMNGGgbL3SBgpZTDg8MQwmxOgpCAoqZJA+JSNCydF1xGJqKOCA==} 1150 | peerDependencies: 1151 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1152 | react-dom: '*' 1153 | react-native: '*' 1154 | peerDependenciesMeta: 1155 | react-dom: 1156 | optional: true 1157 | react-native: 1158 | optional: true 1159 | dependencies: 1160 | '@babel/runtime': 7.18.9 1161 | broadcast-channel: 3.7.0 1162 | match-sorter: 6.3.1 1163 | react: 18.2.0 1164 | react-dom: 18.2.0_react@18.2.0 1165 | dev: true 1166 | 1167 | /react-router-dom/6.3.0_biqbaboplfbrettd7655fr4n2y: 1168 | resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==} 1169 | peerDependencies: 1170 | react: '>=16.8' 1171 | react-dom: '>=16.8' 1172 | dependencies: 1173 | history: 5.3.0 1174 | react: 18.2.0 1175 | react-dom: 18.2.0_react@18.2.0 1176 | react-router: 6.3.0_react@18.2.0 1177 | dev: true 1178 | 1179 | /react-router/6.3.0_react@18.2.0: 1180 | resolution: {integrity: sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==} 1181 | peerDependencies: 1182 | react: '>=16.8' 1183 | dependencies: 1184 | history: 5.3.0 1185 | react: 18.2.0 1186 | dev: true 1187 | 1188 | /react/18.2.0: 1189 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 1190 | engines: {node: '>=0.10.0'} 1191 | dependencies: 1192 | loose-envify: 1.4.0 1193 | dev: true 1194 | 1195 | /regenerator-runtime/0.13.9: 1196 | resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} 1197 | dev: true 1198 | 1199 | /regexp.prototype.flags/1.4.3: 1200 | resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} 1201 | engines: {node: '>= 0.4'} 1202 | dependencies: 1203 | call-bind: 1.0.2 1204 | define-properties: 1.1.4 1205 | functions-have-names: 1.2.3 1206 | dev: true 1207 | 1208 | /remove-accents/0.4.2: 1209 | resolution: {integrity: sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==} 1210 | dev: true 1211 | 1212 | /rimraf/3.0.2: 1213 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1214 | hasBin: true 1215 | dependencies: 1216 | glob: 7.2.3 1217 | dev: true 1218 | 1219 | /safe-buffer/5.2.1: 1220 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1221 | dev: true 1222 | 1223 | /safer-buffer/2.1.2: 1224 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1225 | dev: true 1226 | 1227 | /scheduler/0.23.0: 1228 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 1229 | dependencies: 1230 | loose-envify: 1.4.0 1231 | dev: true 1232 | 1233 | /send/0.18.0: 1234 | resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} 1235 | engines: {node: '>= 0.8.0'} 1236 | dependencies: 1237 | debug: 2.6.9 1238 | depd: 2.0.0 1239 | destroy: 1.2.0 1240 | encodeurl: 1.0.2 1241 | escape-html: 1.0.3 1242 | etag: 1.8.1 1243 | fresh: 0.5.2 1244 | http-errors: 2.0.0 1245 | mime: 1.6.0 1246 | ms: 2.1.3 1247 | on-finished: 2.4.1 1248 | range-parser: 1.2.1 1249 | statuses: 2.0.1 1250 | transitivePeerDependencies: 1251 | - supports-color 1252 | dev: true 1253 | 1254 | /serve-static/1.15.0: 1255 | resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} 1256 | engines: {node: '>= 0.8.0'} 1257 | dependencies: 1258 | encodeurl: 1.0.2 1259 | escape-html: 1.0.3 1260 | parseurl: 1.3.3 1261 | send: 0.18.0 1262 | transitivePeerDependencies: 1263 | - supports-color 1264 | dev: true 1265 | 1266 | /set-cookie-parser/2.5.0: 1267 | resolution: {integrity: sha512-cHMAtSXilfyBePduZEBVPTCftTQWz6ehWJD5YNUg4mqvRosrrjKbo4WS8JkB0/RxonMoohHm7cOGH60mDkRQ9w==} 1268 | dev: true 1269 | 1270 | /setprototypeof/1.2.0: 1271 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 1272 | dev: true 1273 | 1274 | /side-channel/1.0.4: 1275 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 1276 | dependencies: 1277 | call-bind: 1.0.2 1278 | get-intrinsic: 1.1.2 1279 | object-inspect: 1.12.2 1280 | dev: true 1281 | 1282 | /source-map-support/0.5.21: 1283 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1284 | dependencies: 1285 | buffer-from: 1.1.2 1286 | source-map: 0.6.1 1287 | dev: true 1288 | 1289 | /source-map/0.6.1: 1290 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1291 | engines: {node: '>=0.10.0'} 1292 | dev: true 1293 | 1294 | /source-map/0.7.4: 1295 | resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} 1296 | engines: {node: '>= 8'} 1297 | dev: true 1298 | 1299 | /statuses/2.0.1: 1300 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 1301 | engines: {node: '>= 0.8'} 1302 | dev: true 1303 | 1304 | /stream-slice/0.1.2: 1305 | resolution: {integrity: sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==} 1306 | dev: true 1307 | 1308 | /string.prototype.trimend/1.0.5: 1309 | resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} 1310 | dependencies: 1311 | call-bind: 1.0.2 1312 | define-properties: 1.1.4 1313 | es-abstract: 1.20.1 1314 | dev: true 1315 | 1316 | /string.prototype.trimstart/1.0.5: 1317 | resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} 1318 | dependencies: 1319 | call-bind: 1.0.2 1320 | define-properties: 1.1.4 1321 | es-abstract: 1.20.1 1322 | dev: true 1323 | 1324 | /toidentifier/1.0.1: 1325 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 1326 | engines: {node: '>=0.6'} 1327 | dev: true 1328 | 1329 | /tslib/2.4.0: 1330 | resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} 1331 | dev: true 1332 | 1333 | /type-is/1.6.18: 1334 | resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 1335 | engines: {node: '>= 0.6'} 1336 | dependencies: 1337 | media-typer: 0.3.0 1338 | mime-types: 2.1.35 1339 | dev: true 1340 | 1341 | /typescript/4.7.4: 1342 | resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} 1343 | engines: {node: '>=4.2.0'} 1344 | hasBin: true 1345 | dev: true 1346 | 1347 | /unbox-primitive/1.0.2: 1348 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 1349 | dependencies: 1350 | call-bind: 1.0.2 1351 | has-bigints: 1.0.2 1352 | has-symbols: 1.0.3 1353 | which-boxed-primitive: 1.0.2 1354 | dev: true 1355 | 1356 | /unload/2.2.0: 1357 | resolution: {integrity: sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==} 1358 | dependencies: 1359 | '@babel/runtime': 7.18.9 1360 | detect-node: 2.1.0 1361 | dev: true 1362 | 1363 | /unpipe/1.0.0: 1364 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} 1365 | engines: {node: '>= 0.8'} 1366 | dev: true 1367 | 1368 | /util/0.12.4: 1369 | resolution: {integrity: sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==} 1370 | dependencies: 1371 | inherits: 2.0.4 1372 | is-arguments: 1.1.1 1373 | is-generator-function: 1.0.10 1374 | is-typed-array: 1.1.9 1375 | safe-buffer: 5.2.1 1376 | which-typed-array: 1.1.8 1377 | dev: true 1378 | 1379 | /utils-merge/1.0.1: 1380 | resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} 1381 | engines: {node: '>= 0.4.0'} 1382 | dev: true 1383 | 1384 | /vary/1.1.2: 1385 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 1386 | engines: {node: '>= 0.8'} 1387 | dev: true 1388 | 1389 | /web-encoding/1.1.5: 1390 | resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==} 1391 | dependencies: 1392 | util: 0.12.4 1393 | optionalDependencies: 1394 | '@zxing/text-encoding': 0.9.0 1395 | dev: true 1396 | 1397 | /web-streams-polyfill/3.2.1: 1398 | resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} 1399 | engines: {node: '>= 8'} 1400 | dev: true 1401 | 1402 | /which-boxed-primitive/1.0.2: 1403 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 1404 | dependencies: 1405 | is-bigint: 1.0.4 1406 | is-boolean-object: 1.1.2 1407 | is-number-object: 1.0.7 1408 | is-string: 1.0.7 1409 | is-symbol: 1.0.4 1410 | dev: true 1411 | 1412 | /which-typed-array/1.1.8: 1413 | resolution: {integrity: sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==} 1414 | engines: {node: '>= 0.4'} 1415 | dependencies: 1416 | available-typed-arrays: 1.0.5 1417 | call-bind: 1.0.2 1418 | es-abstract: 1.20.1 1419 | for-each: 0.3.3 1420 | has-tostringtag: 1.0.0 1421 | is-typed-array: 1.1.9 1422 | dev: true 1423 | 1424 | /wrappy/1.0.2: 1425 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1426 | dev: true 1427 | 1428 | /zod/3.17.10: 1429 | resolution: {integrity: sha512-IHXnQYQuOOOL/XgHhgl8YjNxBHi3xX0mVcHmqsvJgcxKkEczPshoWdxqyFwsARpf41E0v9U95WUROqsHHxt0UQ==} 1430 | dev: true 1431 | --------------------------------------------------------------------------------