├── backend ├── src │ ├── privateKey.ts │ ├── config.ts │ ├── index.ts │ ├── types.ts │ ├── db.ts │ ├── middleware.ts │ └── routers │ │ ├── user.ts │ │ └── worker.ts ├── .gitignore ├── prisma │ ├── migrations │ │ ├── 20240509112516_add_done_to_task │ │ │ └── migration.sql │ │ ├── migration_lock.toml │ │ ├── 20240509111720_remove_balance_id │ │ │ └── migration.sql │ │ ├── 20240509104304_remove_option_id │ │ │ └── migration.sql │ │ ├── 20240509120311_add_uniqueness_constraint │ │ │ └── migration.sql │ │ ├── 20240509121358_make_it_number │ │ │ └── migration.sql │ │ ├── 20240509123710_add_payouts │ │ │ └── migration.sql │ │ └── 20240509084558_init │ │ │ └── migration.sql │ └── schema.prisma ├── package.json ├── tsconfig.json └── yarn.lock ├── user-frontend ├── .eslintrc.json ├── app │ ├── globals.css │ ├── favicon.ico │ ├── (root) │ │ ├── page.tsx │ │ ├── layout.tsx │ │ └── task │ │ │ └── [taskId] │ │ │ └── page.tsx │ └── layout.tsx ├── next.config.mjs ├── utils │ └── index.ts ├── postcss.config.mjs ├── components │ ├── Hero.tsx │ ├── Appbar.tsx │ ├── UploadImage.tsx │ └── Upload.tsx ├── .gitignore ├── tailwind.config.ts ├── public │ ├── vercel.svg │ └── next.svg ├── tsconfig.json ├── package.json └── README.md └── worker-frontend ├── .eslintrc.json ├── app ├── globals.css ├── favicon.ico ├── (root) │ ├── page.tsx │ └── layout.tsx └── layout.tsx ├── next.config.mjs ├── utils └── index.ts ├── postcss.config.mjs ├── .gitignore ├── tailwind.config.ts ├── public ├── vercel.svg └── next.svg ├── tsconfig.json ├── package.json ├── README.md └── components ├── Appbar.tsx └── NextTask.tsx /backend/src/privateKey.ts: -------------------------------------------------------------------------------- 1 | 2 | export const privateKey = ""; -------------------------------------------------------------------------------- /user-frontend/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /worker-frontend/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /user-frontend/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /worker-frontend/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /backend/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | # Keep environment variables out of version control 4 | .env 5 | -------------------------------------------------------------------------------- /user-frontend/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code100x/decentralized-fiverr/HEAD/user-frontend/app/favicon.ico -------------------------------------------------------------------------------- /worker-frontend/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/code100x/decentralized-fiverr/HEAD/worker-frontend/app/favicon.ico -------------------------------------------------------------------------------- /user-frontend/next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {}; 3 | 4 | export default nextConfig; 5 | -------------------------------------------------------------------------------- /worker-frontend/next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {}; 3 | 4 | export default nextConfig; 5 | -------------------------------------------------------------------------------- /user-frontend/utils/index.ts: -------------------------------------------------------------------------------- 1 | 2 | export const BACKEND_URL = "http://localhost:3000"; 3 | export const CLOUDFRONT_URL = "https://d2szwvl7yo497w.cloudfront.net" -------------------------------------------------------------------------------- /worker-frontend/utils/index.ts: -------------------------------------------------------------------------------- 1 | 2 | export const BACKEND_URL = "http://localhost:3000"; 3 | export const CLOUDFRONT_URL = "https://d2szwvl7yo497w.cloudfront.net" -------------------------------------------------------------------------------- /backend/prisma/migrations/20240509112516_add_done_to_task/migration.sql: -------------------------------------------------------------------------------- 1 | -- AlterTable 2 | ALTER TABLE "Task" ADD COLUMN "done" BOOLEAN NOT NULL DEFAULT false; 3 | -------------------------------------------------------------------------------- /backend/prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- 1 | # Please do not edit this file manually 2 | # It should be added in your version-control system (i.e. Git) 3 | provider = "postgresql" -------------------------------------------------------------------------------- /user-frontend/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /worker-frontend/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /backend/src/config.ts: -------------------------------------------------------------------------------- 1 | export const JWT_SECRET = process.env.JWT_SECRET ?? "kirat123"; 2 | export const WORKER_JWT_SECRET = JWT_SECRET + "worker"; 3 | 4 | export const TOTAL_DECIMALS = 1000_000; 5 | 6 | // 1/1000_000_000_000_000_000 -------------------------------------------------------------------------------- /backend/prisma/migrations/20240509111720_remove_balance_id/migration.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Warnings: 3 | 4 | - You are about to drop the column `balance_id` on the `Worker` table. All the data in the column will be lost. 5 | 6 | */ 7 | -- AlterTable 8 | ALTER TABLE "Worker" DROP COLUMN "balance_id"; 9 | -------------------------------------------------------------------------------- /worker-frontend/app/(root)/page.tsx: -------------------------------------------------------------------------------- 1 | import { Appbar } from "@/components/Appbar"; 2 | import { NextTask } from "@/components/NextTask"; 3 | import Image from "next/image"; 4 | 5 | export default function Home() { 6 | return ( 7 |
8 | 9 | 10 |
11 | ); 12 | } 13 | -------------------------------------------------------------------------------- /backend/src/index.ts: -------------------------------------------------------------------------------- 1 | import express from "express"; 2 | import userRouter from "./routers/user" 3 | import workerRouter from "./routers/worker" 4 | import cors from "cors"; 5 | 6 | const app = express(); 7 | 8 | app.use(express.json()); 9 | app.use(cors()) 10 | 11 | app.use("/v1/user", userRouter); 12 | app.use("/v1/worker", workerRouter); 13 | 14 | app.listen(3000) 15 | -------------------------------------------------------------------------------- /backend/prisma/migrations/20240509104304_remove_option_id/migration.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Warnings: 3 | 4 | - You are about to drop the column `option_id` on the `Option` table. All the data in the column will be lost. 5 | 6 | */ 7 | -- AlterTable 8 | ALTER TABLE "Option" DROP COLUMN "option_id"; 9 | 10 | -- AlterTable 11 | ALTER TABLE "Task" ALTER COLUMN "title" DROP NOT NULL; 12 | -------------------------------------------------------------------------------- /backend/src/types.ts: -------------------------------------------------------------------------------- 1 | 2 | import z from "zod"; 3 | 4 | export const createTaskInput = z.object({ 5 | options: z.array(z.object({ 6 | imageUrl: z.string() 7 | })).min(2), 8 | title: z.string().optional(), 9 | signature: z.string() 10 | }); 11 | 12 | export const createSubmissionInput = z.object({ 13 | taskId: z.string(), 14 | selection: z.string(), 15 | }); -------------------------------------------------------------------------------- /backend/prisma/migrations/20240509120311_add_uniqueness_constraint/migration.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Warnings: 3 | 4 | - A unique constraint covering the columns `[worker_id,task_id]` on the table `Submission` will be added. If there are existing duplicate values, this will fail. 5 | 6 | */ 7 | -- CreateIndex 8 | CREATE UNIQUE INDEX "Submission_worker_id_task_id_key" ON "Submission"("worker_id", "task_id"); 9 | -------------------------------------------------------------------------------- /backend/prisma/migrations/20240509121358_make_it_number/migration.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Warnings: 3 | 4 | - Changed the type of `amount` on the `Task` table. No cast exists, the column would be dropped and recreated, which cannot be done if there is data, since the column is required. 5 | 6 | */ 7 | -- AlterTable 8 | ALTER TABLE "Task" DROP COLUMN "amount", 9 | ADD COLUMN "amount" INTEGER NOT NULL; 10 | -------------------------------------------------------------------------------- /user-frontend/components/Hero.tsx: -------------------------------------------------------------------------------- 1 | 2 | export const Hero = () => { 3 | return
4 |
5 | Welcome to Turkify 6 |
7 |
8 | Your one stop destination to getting your data labelled 9 |
10 |
11 | } -------------------------------------------------------------------------------- /user-frontend/app/(root)/page.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | import { Appbar } from "@/components/Appbar"; 3 | import { Hero } from "@/components/Hero"; 4 | import { Upload } from "@/components/Upload"; 5 | import { UploadImage } from "@/components/UploadImage"; 6 | import Image from "next/image"; 7 | import { useState } from "react"; 8 | 9 | export default function Home() { 10 | 11 | return ( 12 |
13 | 14 | 15 | 16 |
17 | ); 18 | } 19 | -------------------------------------------------------------------------------- /user-frontend/.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 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /worker-frontend/.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 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /user-frontend/app/layout.tsx: -------------------------------------------------------------------------------- 1 | 2 | import type { Metadata } from "next"; 3 | import { Inter } from "next/font/google"; 4 | import "./globals.css"; 5 | 6 | const inter = Inter({ subsets: ["latin"] }); 7 | 8 | export const metadata: Metadata = { 9 | title: "Create Next App", 10 | description: "Generated by create next app", 11 | }; 12 | 13 | export default function RootLayout({ 14 | children, 15 | }: Readonly<{ 16 | children: React.ReactNode; 17 | }>) { 18 | return ( 19 | 20 | {children} 21 | 22 | ); 23 | } 24 | -------------------------------------------------------------------------------- /worker-frontend/app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from "next"; 2 | import { Inter } from "next/font/google"; 3 | import "./globals.css"; 4 | 5 | const inter = Inter({ subsets: ["latin"] }); 6 | 7 | export const metadata: Metadata = { 8 | title: "Create Next App", 9 | description: "Generated by create next app", 10 | }; 11 | 12 | export default function RootLayout({ 13 | children, 14 | }: Readonly<{ 15 | children: React.ReactNode; 16 | }>) { 17 | return ( 18 | 19 | {children} 20 | 21 | ); 22 | } 23 | -------------------------------------------------------------------------------- /user-frontend/tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss"; 2 | 3 | const config: Config = { 4 | content: [ 5 | "./pages/**/*.{js,ts,jsx,tsx,mdx}", 6 | "./components/**/*.{js,ts,jsx,tsx,mdx}", 7 | "./app/**/*.{js,ts,jsx,tsx,mdx}", 8 | ], 9 | theme: { 10 | extend: { 11 | backgroundImage: { 12 | "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", 13 | "gradient-conic": 14 | "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", 15 | }, 16 | }, 17 | }, 18 | plugins: [], 19 | }; 20 | export default config; 21 | -------------------------------------------------------------------------------- /worker-frontend/tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss"; 2 | 3 | const config: Config = { 4 | content: [ 5 | "./pages/**/*.{js,ts,jsx,tsx,mdx}", 6 | "./components/**/*.{js,ts,jsx,tsx,mdx}", 7 | "./app/**/*.{js,ts,jsx,tsx,mdx}", 8 | ], 9 | theme: { 10 | extend: { 11 | backgroundImage: { 12 | "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", 13 | "gradient-conic": 14 | "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", 15 | }, 16 | }, 17 | }, 18 | plugins: [], 19 | }; 20 | export default config; 21 | -------------------------------------------------------------------------------- /backend/src/db.ts: -------------------------------------------------------------------------------- 1 | import { PrismaClient } from "@prisma/client"; 2 | 3 | const prismaClient = new PrismaClient(); 4 | 5 | export const getNextTask = async (userId: number) => { 6 | const task = await prismaClient.task.findFirst({ 7 | where: { 8 | done: false, 9 | submissions: { 10 | none: { 11 | worker_id: userId 12 | } 13 | } 14 | }, 15 | select: { 16 | id: true, 17 | amount: true, 18 | title: true, 19 | options: true 20 | } 21 | }) 22 | 23 | return task 24 | } -------------------------------------------------------------------------------- /user-frontend/public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /worker-frontend/public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /user-frontend/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["dom", "dom.iterable", "esnext"], 4 | "allowJs": true, 5 | "skipLibCheck": true, 6 | "strict": true, 7 | "noEmit": true, 8 | "esModuleInterop": true, 9 | "module": "esnext", 10 | "moduleResolution": "bundler", 11 | "resolveJsonModule": true, 12 | "isolatedModules": true, 13 | "jsx": "preserve", 14 | "incremental": true, 15 | "plugins": [ 16 | { 17 | "name": "next" 18 | } 19 | ], 20 | "paths": { 21 | "@/*": ["./*"] 22 | } 23 | }, 24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 25 | "exclude": ["node_modules"] 26 | } 27 | -------------------------------------------------------------------------------- /worker-frontend/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["dom", "dom.iterable", "esnext"], 4 | "allowJs": true, 5 | "skipLibCheck": true, 6 | "strict": true, 7 | "noEmit": true, 8 | "esModuleInterop": true, 9 | "module": "esnext", 10 | "moduleResolution": "bundler", 11 | "resolveJsonModule": true, 12 | "isolatedModules": true, 13 | "jsx": "preserve", 14 | "incremental": true, 15 | "plugins": [ 16 | { 17 | "name": "next" 18 | } 19 | ], 20 | "paths": { 21 | "@/*": ["./*"] 22 | } 23 | }, 24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 25 | "exclude": ["node_modules"] 26 | } 27 | -------------------------------------------------------------------------------- /backend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "backend", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "@aws-sdk/client-s3": "^3.572.0", 14 | "@aws-sdk/s3-presigned-post": "^3.572.0", 15 | "@aws-sdk/s3-request-presigner": "^3.572.0", 16 | "@prisma/client": "^5.13.0", 17 | "@solana/web3.js": "^1.91.8", 18 | "@types/cors": "^2.8.17", 19 | "@types/express": "^4.17.21", 20 | "@types/jsonwebtoken": "^9.0.6", 21 | "bs58": "^5.0.0", 22 | "cors": "^2.8.5", 23 | "express": "^4.19.2", 24 | "jsonwebtoken": "^9.0.2", 25 | "prisma": "^5.13.0", 26 | "tweetnacl": "^1.0.3", 27 | "zod": "^3.23.8" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /user-frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "user-frontend", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "next lint" 10 | }, 11 | "dependencies": { 12 | "@solana/wallet-adapter-base": "^0.9.23", 13 | "@solana/wallet-adapter-react": "^0.15.35", 14 | "@solana/wallet-adapter-react-ui": "^0.9.35", 15 | "@solana/wallet-adapter-wallets": "^0.19.32", 16 | "@solana/web3.js": "^1.91.8", 17 | "axios": "^1.6.8", 18 | "next": "14.2.3", 19 | "react": "^18", 20 | "react-dom": "^18" 21 | }, 22 | "devDependencies": { 23 | "@types/node": "^20", 24 | "@types/react": "^18", 25 | "@types/react-dom": "^18", 26 | "eslint": "^8", 27 | "eslint-config-next": "14.2.3", 28 | "postcss": "^8", 29 | "tailwindcss": "^3.4.1", 30 | "typescript": "^5" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /worker-frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "worker-frontend", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "next lint" 10 | }, 11 | "dependencies": { 12 | "@solana/wallet-adapter-base": "^0.9.23", 13 | "@solana/wallet-adapter-react": "^0.15.35", 14 | "@solana/wallet-adapter-react-ui": "^0.9.35", 15 | "@solana/wallet-adapter-wallets": "^0.19.32", 16 | "@solana/web3.js": "^1.91.8", 17 | "axios": "^1.6.8", 18 | "next": "14.2.3", 19 | "react": "^18.3.1", 20 | "react-dom": "^18" 21 | }, 22 | "devDependencies": { 23 | "@types/node": "^20", 24 | "@types/react": "^18", 25 | "@types/react-dom": "^18", 26 | "eslint": "^8", 27 | "eslint-config-next": "14.2.3", 28 | "postcss": "^8", 29 | "tailwindcss": "^3.4.1", 30 | "typescript": "^5" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /backend/prisma/migrations/20240509123710_add_payouts/migration.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Warnings: 3 | 4 | - Changed the type of `amount` on the `Submission` table. No cast exists, the column would be dropped and recreated, which cannot be done if there is data, since the column is required. 5 | 6 | */ 7 | -- CreateEnum 8 | CREATE TYPE "TxnStatus" AS ENUM ('Processing', 'Success', 'Failure'); 9 | 10 | -- AlterTable 11 | ALTER TABLE "Submission" DROP COLUMN "amount", 12 | ADD COLUMN "amount" INTEGER NOT NULL; 13 | 14 | -- CreateTable 15 | CREATE TABLE "Payouts" ( 16 | "id" SERIAL NOT NULL, 17 | "user_id" INTEGER NOT NULL, 18 | "amount" INTEGER NOT NULL, 19 | "signature" TEXT NOT NULL, 20 | "status" "TxnStatus" NOT NULL, 21 | 22 | CONSTRAINT "Payouts_pkey" PRIMARY KEY ("id") 23 | ); 24 | 25 | -- AddForeignKey 26 | ALTER TABLE "Payouts" ADD CONSTRAINT "Payouts_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; 27 | -------------------------------------------------------------------------------- /worker-frontend/app/(root)/layout.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | import React, { FC, useMemo } from 'react'; 3 | import { ConnectionProvider, WalletProvider } from '@solana/wallet-adapter-react'; 4 | import { WalletAdapterNetwork } from '@solana/wallet-adapter-base'; 5 | import { 6 | WalletModalProvider 7 | } from '@solana/wallet-adapter-react-ui'; 8 | 9 | // Default styles that can be overridden by your app 10 | require('@solana/wallet-adapter-react-ui/styles.css'); 11 | 12 | export default function RootLayout({ 13 | children, 14 | }: Readonly<{ 15 | children: React.ReactNode; 16 | }>) { 17 | const network = WalletAdapterNetwork.Mainnet; 18 | 19 | // You can also provide a custom RPC endpoint. 20 | const endpoint = "your_rpc_url"; 21 | 22 | const wallets = useMemo( 23 | () => [], 24 | [network] 25 | ); 26 | 27 | return ( 28 | 29 | 30 | 31 | {children} 32 | 33 | 34 | 35 | ); 36 | } 37 | -------------------------------------------------------------------------------- /user-frontend/app/(root)/layout.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | import React, { FC, useMemo } from 'react'; 3 | import { ConnectionProvider, WalletProvider } from '@solana/wallet-adapter-react'; 4 | import { WalletAdapterNetwork } from '@solana/wallet-adapter-base'; 5 | import { 6 | WalletModalProvider 7 | } from '@solana/wallet-adapter-react-ui'; 8 | import { clusterApiUrl } from '@solana/web3.js'; 9 | 10 | // Default styles that can be overridden by your app 11 | require('@solana/wallet-adapter-react-ui/styles.css'); 12 | 13 | export default function RootLayout({ 14 | children, 15 | }: Readonly<{ 16 | children: React.ReactNode; 17 | }>) { 18 | const network = WalletAdapterNetwork.Mainnet; 19 | 20 | // You can also provide a custom RPC endpoint. 21 | const endpoint = "your_rpc_url"; 22 | 23 | const wallets = useMemo( 24 | () => [], 25 | [network] 26 | ); 27 | 28 | return ( 29 | 30 | 31 | 32 | {children} 33 | 34 | 35 | 36 | ); 37 | } 38 | -------------------------------------------------------------------------------- /user-frontend/public/next.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /worker-frontend/public/next.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /user-frontend/components/Appbar.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | import { 3 | WalletDisconnectButton, 4 | WalletMultiButton 5 | } from '@solana/wallet-adapter-react-ui'; 6 | import { useWallet } from '@solana/wallet-adapter-react'; 7 | import { useEffect } from 'react'; 8 | import axios from 'axios'; 9 | import { BACKEND_URL } from '@/utils'; 10 | 11 | export const Appbar = () => { 12 | const { publicKey , signMessage} = useWallet(); 13 | 14 | async function signAndSend() { 15 | if (!publicKey) { 16 | return; 17 | } 18 | const message = new TextEncoder().encode("Sign into mechanical turks"); 19 | const signature = await signMessage?.(message); 20 | console.log(signature) 21 | console.log(publicKey) 22 | const response = await axios.post(`${BACKEND_URL}/v1/user/signin`, { 23 | signature, 24 | publicKey: publicKey?.toString() 25 | }); 26 | 27 | localStorage.setItem("token", response.data.token); 28 | } 29 | 30 | useEffect(() => { 31 | signAndSend() 32 | }, [publicKey]); 33 | 34 | return
35 |
36 | Turkify 37 |
38 |
39 | {publicKey  ? : } 40 |
41 |
42 | } -------------------------------------------------------------------------------- /user-frontend/README.md: -------------------------------------------------------------------------------- 1 | This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). 2 | 3 | ## Getting Started 4 | 5 | First, run the development server: 6 | 7 | ```bash 8 | npm run dev 9 | # or 10 | yarn dev 11 | # or 12 | pnpm dev 13 | # or 14 | bun dev 15 | ``` 16 | 17 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. 18 | 19 | You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. 20 | 21 | This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. 22 | 23 | ## Learn More 24 | 25 | To learn more about Next.js, take a look at the following resources: 26 | 27 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. 28 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. 29 | 30 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! 31 | 32 | ## Deploy on Vercel 33 | 34 | The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. 35 | 36 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. 37 | -------------------------------------------------------------------------------- /worker-frontend/README.md: -------------------------------------------------------------------------------- 1 | This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). 2 | 3 | ## Getting Started 4 | 5 | First, run the development server: 6 | 7 | ```bash 8 | npm run dev 9 | # or 10 | yarn dev 11 | # or 12 | pnpm dev 13 | # or 14 | bun dev 15 | ``` 16 | 17 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. 18 | 19 | You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. 20 | 21 | This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. 22 | 23 | ## Learn More 24 | 25 | To learn more about Next.js, take a look at the following resources: 26 | 27 | - [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. 28 | - [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. 29 | 30 | You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! 31 | 32 | ## Deploy on Vercel 33 | 34 | The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. 35 | 36 | Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. 37 | -------------------------------------------------------------------------------- /backend/src/middleware.ts: -------------------------------------------------------------------------------- 1 | import { NextFunction, Request, Response } from "express"; 2 | import { JWT_SECRET, WORKER_JWT_SECRET } from "./config"; 3 | import jwt from "jsonwebtoken"; 4 | 5 | export function authMiddleware(req: Request, res: Response, next: NextFunction) { 6 | const authHeader = req.headers["authorization"] ?? ""; 7 | 8 | try { 9 | const decoded = jwt.verify(authHeader, JWT_SECRET); 10 | console.log(decoded); 11 | // @ts-ignore 12 | if (decoded.userId) { 13 | // @ts-ignore 14 | req.userId = decoded.userId; 15 | return next(); 16 | } else { 17 | return res.status(403).json({ 18 | message: "You are not logged in" 19 | }) 20 | } 21 | } catch(e) { 22 | return res.status(403).json({ 23 | message: "You are not logged in" 24 | }) 25 | } 26 | } 27 | 28 | export function workerMiddleware(req: Request, res: Response, next: NextFunction) { 29 | const authHeader = req.headers["authorization"] ?? ""; 30 | 31 | console.log(authHeader); 32 | try { 33 | const decoded = jwt.verify(authHeader, WORKER_JWT_SECRET); 34 | // @ts-ignore 35 | if (decoded.userId) { 36 | // @ts-ignore 37 | req.userId = decoded.userId; 38 | return next(); 39 | } else { 40 | return res.status(403).json({ 41 | message: "You are not logged in" 42 | }) 43 | } 44 | } catch(e) { 45 | return res.status(403).json({ 46 | message: "You are not logged in" 47 | }) 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /user-frontend/app/(root)/task/[taskId]/page.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | import { Appbar } from '@/components/Appbar'; 3 | import { BACKEND_URL } from '@/utils'; 4 | import axios from 'axios'; 5 | import { useEffect, useState } from 'react'; 6 | 7 | async function getTaskDetails(taskId: string) { 8 | const response = await axios.get(`${BACKEND_URL}/v1/user/task?taskId=${taskId}`, { 9 | headers: { 10 | "Authorization": localStorage.getItem("token") 11 | } 12 | }) 13 | return response.data 14 | } 15 | 16 | export default function Page({params: { 17 | taskId 18 | }}: {params: { taskId: string }}) { 19 | const [result, setResult] = useState>({}); 25 | const [taskDetails, setTaskDetails] = useState<{ 26 | title?: string 27 | }>({}); 28 | 29 | useEffect(() => { 30 | getTaskDetails(taskId) 31 | .then((data) => { 32 | setResult(data.result) 33 | setTaskDetails(data.taskDetails) 34 | }) 35 | }, [taskId]); 36 | 37 | return
38 | 39 |
40 | {taskDetails.title} 41 |
42 |
43 | {Object.keys(result || {}).map(taskId => )} 44 |
45 |
46 | } 47 | 48 | function Task({imageUrl, votes}: { 49 | imageUrl: string; 50 | votes: number; 51 | }) { 52 | return
53 | 54 |
55 | {votes} 56 |
57 |
58 | } -------------------------------------------------------------------------------- /worker-frontend/components/Appbar.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | import { 3 | WalletDisconnectButton, 4 | WalletMultiButton 5 | } from '@solana/wallet-adapter-react-ui'; 6 | import { useWallet } from '@solana/wallet-adapter-react'; 7 | import { useEffect, useState } from 'react'; 8 | import axios from 'axios'; 9 | import { BACKEND_URL } from '@/utils'; 10 | 11 | export const Appbar = () => { 12 | const { publicKey , signMessage} = useWallet(); 13 | const [balance, setBalance] = useState(0); 14 | 15 | async function signAndSend() { 16 | if (!publicKey) { 17 | return; 18 | } 19 | const message = new TextEncoder().encode("Sign into mechanical turks as a worker"); 20 | const signature = await signMessage?.(message); 21 | console.log(signature) 22 | console.log(publicKey) 23 | const response = await axios.post(`${BACKEND_URL}/v1/worker/signin`, { 24 | signature, 25 | publicKey: publicKey?.toString() 26 | }); 27 | 28 | setBalance(response.data.amount) 29 | 30 | localStorage.setItem("token", response.data.token); 31 | } 32 | 33 | useEffect(() => { 34 | signAndSend() 35 | }, [publicKey]); 36 | 37 | return
38 |
39 | Turkify 40 |
41 |
42 | 51 | {publicKey  ? : } 52 |
53 |
54 | } -------------------------------------------------------------------------------- /backend/prisma/schema.prisma: -------------------------------------------------------------------------------- 1 | // This is your Prisma schema file, 2 | // learn more about it in the docs: https://pris.ly/d/prisma-schema 3 | 4 | // Looking for ways to speed up your queries, or scale easily with your serverless or edge functions? 5 | // Try Prisma Accelerate: https://pris.ly/cli/accelerate-init 6 | 7 | generator client { 8 | provider = "prisma-client-js" 9 | } 10 | 11 | datasource db { 12 | provider = "postgresql" 13 | url = env("DATABASE_URL") 14 | } 15 | 16 | model User { 17 | id Int @id @default(autoincrement()) 18 | address String @unique 19 | tasks Task[] 20 | payouts Payouts[] 21 | } 22 | 23 | model Worker { 24 | id Int @id @default(autoincrement()) 25 | address String @unique 26 | submissions Submission[] 27 | pending_amount Int // amount in lamports (* 10^9) 28 | locked_amount Int 29 | } 30 | 31 | model Task { 32 | id Int @id @default(autoincrement()) 33 | title String? @default("Select the most clickable thumbnail") 34 | options Option[] 35 | user_id Int 36 | signature String 37 | amount Int 38 | done Boolean @default(false) 39 | user User @relation(fields: [user_id], references: [id]) 40 | submissions Submission[] 41 | } 42 | 43 | model Option { 44 | id Int @id @default(autoincrement()) 45 | image_url String 46 | task_id Int 47 | task Task @relation(fields: [task_id], references: [id]) 48 | submissions Submission[] 49 | } 50 | 51 | model Submission { 52 | id Int @id @default(autoincrement()) 53 | worker_id Int 54 | worker Worker @relation(fields: [worker_id], references: [id]) 55 | option_id Int 56 | option Option @relation(fields: [option_id], references: [id]) 57 | task_id Int 58 | task Task @relation(fields: [task_id], references: [id]) 59 | amount Int 60 | @@unique([worker_id, task_id]) 61 | } 62 | 63 | model Payouts { 64 | id Int @id @default(autoincrement()) 65 | user_id Int 66 | user User @relation(fields: [user_id], references: [id]) 67 | amount Int 68 | signature String 69 | status TxnStatus 70 | } 71 | 72 | enum TxnStatus { 73 | Processing 74 | Success 75 | Failure 76 | } -------------------------------------------------------------------------------- /backend/prisma/migrations/20240509084558_init/migration.sql: -------------------------------------------------------------------------------- 1 | -- CreateTable 2 | CREATE TABLE "User" ( 3 | "id" SERIAL NOT NULL, 4 | "address" TEXT NOT NULL, 5 | 6 | CONSTRAINT "User_pkey" PRIMARY KEY ("id") 7 | ); 8 | 9 | -- CreateTable 10 | CREATE TABLE "Worker" ( 11 | "id" SERIAL NOT NULL, 12 | "address" TEXT NOT NULL, 13 | "balance_id" INTEGER NOT NULL, 14 | "pending_amount" INTEGER NOT NULL, 15 | "locked_amount" INTEGER NOT NULL, 16 | 17 | CONSTRAINT "Worker_pkey" PRIMARY KEY ("id") 18 | ); 19 | 20 | -- CreateTable 21 | CREATE TABLE "Task" ( 22 | "id" SERIAL NOT NULL, 23 | "title" TEXT NOT NULL DEFAULT 'Select the most clickable thumbnail', 24 | "user_id" INTEGER NOT NULL, 25 | "signature" TEXT NOT NULL, 26 | "amount" TEXT NOT NULL, 27 | 28 | CONSTRAINT "Task_pkey" PRIMARY KEY ("id") 29 | ); 30 | 31 | -- CreateTable 32 | CREATE TABLE "Option" ( 33 | "id" SERIAL NOT NULL, 34 | "image_url" TEXT NOT NULL, 35 | "option_id" INTEGER NOT NULL, 36 | "task_id" INTEGER NOT NULL, 37 | 38 | CONSTRAINT "Option_pkey" PRIMARY KEY ("id") 39 | ); 40 | 41 | -- CreateTable 42 | CREATE TABLE "Submission" ( 43 | "id" SERIAL NOT NULL, 44 | "worker_id" INTEGER NOT NULL, 45 | "option_id" INTEGER NOT NULL, 46 | "task_id" INTEGER NOT NULL, 47 | "amount" TEXT NOT NULL, 48 | 49 | CONSTRAINT "Submission_pkey" PRIMARY KEY ("id") 50 | ); 51 | 52 | -- CreateIndex 53 | CREATE UNIQUE INDEX "User_address_key" ON "User"("address"); 54 | 55 | -- CreateIndex 56 | CREATE UNIQUE INDEX "Worker_address_key" ON "Worker"("address"); 57 | 58 | -- AddForeignKey 59 | ALTER TABLE "Task" ADD CONSTRAINT "Task_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; 60 | 61 | -- AddForeignKey 62 | ALTER TABLE "Option" ADD CONSTRAINT "Option_task_id_fkey" FOREIGN KEY ("task_id") REFERENCES "Task"("id") ON DELETE RESTRICT ON UPDATE CASCADE; 63 | 64 | -- AddForeignKey 65 | ALTER TABLE "Submission" ADD CONSTRAINT "Submission_worker_id_fkey" FOREIGN KEY ("worker_id") REFERENCES "Worker"("id") ON DELETE RESTRICT ON UPDATE CASCADE; 66 | 67 | -- AddForeignKey 68 | ALTER TABLE "Submission" ADD CONSTRAINT "Submission_option_id_fkey" FOREIGN KEY ("option_id") REFERENCES "Option"("id") ON DELETE RESTRICT ON UPDATE CASCADE; 69 | 70 | -- AddForeignKey 71 | ALTER TABLE "Submission" ADD CONSTRAINT "Submission_task_id_fkey" FOREIGN KEY ("task_id") REFERENCES "Task"("id") ON DELETE RESTRICT ON UPDATE CASCADE; 72 | -------------------------------------------------------------------------------- /user-frontend/components/UploadImage.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | import { BACKEND_URL, CLOUDFRONT_URL } from "@/utils"; 3 | import axios from "axios"; 4 | import { useState } from "react" 5 | 6 | export function UploadImage({ onImageAdded, image }: { 7 | onImageAdded: (image: string) => void; 8 | image?: string; 9 | }) { 10 | const [uploading, setUploading] = useState(false); 11 | 12 | async function onFileSelect(e: any) { 13 | setUploading(true); 14 | try { 15 | const file = e.target.files[0]; 16 | const response = await axios.get(`${BACKEND_URL}/v1/user/presignedUrl`, { 17 | headers: { 18 | "Authorization": localStorage.getItem("token") 19 | } 20 | }); 21 | const presignedUrl = response.data.preSignedUrl; 22 | const formData = new FormData(); 23 | formData.set("bucket", response.data.fields["bucket"]) 24 | formData.set("X-Amz-Algorithm", response.data.fields["X-Amz-Algorithm"]); 25 | formData.set("X-Amz-Credential", response.data.fields["X-Amz-Credential"]); 26 | formData.set("X-Amz-Algorithm", response.data.fields["X-Amz-Algorithm"]); 27 | formData.set("X-Amz-Date", response.data.fields["X-Amz-Date"]); 28 | formData.set("key", response.data.fields["key"]); 29 | formData.set("Policy", response.data.fields["Policy"]); 30 | formData.set("X-Amz-Signature", response.data.fields["X-Amz-Signature"]); 31 | formData.set("X-Amz-Algorithm", response.data.fields["X-Amz-Algorithm"]); 32 | formData.append("file", file); 33 | const awsResponse = await axios.post(presignedUrl, formData); 34 | 35 | onImageAdded(`${CLOUDFRONT_URL}/${response.data.fields["key"]}`); 36 | } catch(e) { 37 | console.log(e) 38 | } 39 | setUploading(false); 40 | } 41 | 42 | if (image) { 43 | return 44 | } 45 | 46 | return
47 |
48 |
49 |
50 | {uploading ?
Loading...
: <> 51 | + 52 | 53 | } 54 |
55 |
56 |
57 |
58 | } -------------------------------------------------------------------------------- /worker-frontend/components/NextTask.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | import { BACKEND_URL } from "@/utils"; 3 | import axios from "axios"; 4 | import { useEffect, useState } from "react" 5 | 6 | interface Task { 7 | "id": number, 8 | "amount": number, 9 | "title": string, 10 | "options": { 11 | id: number; 12 | image_url: string; 13 | task_id: number 14 | }[] 15 | } 16 | 17 | // CSR 18 | export const NextTask = () => { 19 | const [currentTask, setCurrentTask] = useState(null); 20 | const [loading, setLoading] = useState(true); 21 | const [submitting, setSubmitting] = useState(false); 22 | 23 | useEffect(() => { 24 | setLoading(true); 25 | axios.get(`${BACKEND_URL}/v1/worker/nextTask`, { 26 | headers: { 27 | "Authorization": localStorage.getItem("token") 28 | } 29 | }) 30 | .then(res => { 31 | setCurrentTask(res.data.task); 32 | setLoading(false) 33 | }) 34 | .catch(e => { 35 | setLoading(false) 36 | setCurrentTask(null) 37 | }) 38 | }, []) 39 | 40 | if (loading) { 41 | return
42 |
43 | Loading... 44 |
45 |
46 | } 47 | 48 | if (!currentTask) { 49 | return
50 |
51 | Please check back in some time, there are no pending tasks at the momebt 52 |
53 |
54 | } 55 | 56 | return
57 |
58 | {currentTask.title} 59 |
60 | {submitting && "Submitting..."} 61 |
62 |
63 |
64 | {currentTask.options.map(option =>
90 |
91 | } 92 | 93 | function Option({imageUrl, onSelect}: { 94 | imageUrl: string; 95 | onSelect: () => void; 96 | }) { 97 | return
98 | 99 |
100 | } -------------------------------------------------------------------------------- /user-frontend/components/Upload.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | import { PublicKey, SystemProgram, Transaction } from '@solana/web3.js'; 3 | import { UploadImage } from "@/components/UploadImage"; 4 | import { BACKEND_URL } from "@/utils"; 5 | import axios from "axios"; 6 | import { useRouter } from "next/navigation"; 7 | import { useState } from "react"; 8 | import { useWallet, useConnection } from '@solana/wallet-adapter-react'; 9 | 10 | export const Upload = () => { 11 | const [images, setImages] = useState([]); 12 | const [title, setTitle] = useState(""); 13 | const [txSignature, setTxSignature] = useState(""); 14 | const { publicKey, sendTransaction } = useWallet(); 15 | const { connection } = useConnection(); 16 | const router = useRouter(); 17 | 18 | async function onSubmit() { 19 | const response = await axios.post(`${BACKEND_URL}/v1/user/task`, { 20 | options: images.map(image => ({ 21 | imageUrl: image, 22 | })), 23 | title, 24 | signature: txSignature 25 | }, { 26 | headers: { 27 | "Authorization": localStorage.getItem("token") 28 | } 29 | }) 30 | 31 | router.push(`/task/${response.data.id}`) 32 | } 33 | 34 | async function makePayment() { 35 | 36 | const transaction = new Transaction().add( 37 | SystemProgram.transfer({ 38 | fromPubkey: publicKey!, 39 | toPubkey: new PublicKey("2KeovpYvrgpziaDsq8nbNMP4mc48VNBVXb5arbqrg9Cq"), 40 | lamports: 100000000, 41 | }) 42 | ); 43 | 44 | const { 45 | context: { slot: minContextSlot }, 46 | value: { blockhash, lastValidBlockHeight } 47 | } = await connection.getLatestBlockhashAndContext(); 48 | 49 | const signature = await sendTransaction(transaction, connection, { minContextSlot }); 50 | 51 | await connection.confirmTransaction({ blockhash, lastValidBlockHeight, signature }); 52 | setTxSignature(signature); 53 | } 54 | 55 | return
56 |
57 |
58 | Create a task 59 |
60 | 61 | 62 | 63 | { 64 | setTitle(e.target.value); 65 | }} type="text" id="first_name" className="ml-4 mt-1 bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5" placeholder="What is your task?" required /> 66 | 67 | 68 |
69 | {images.map(image => { 70 | setImages(i => [...i, imageUrl]); 71 | }} />)} 72 |
73 | 74 |
75 | { 76 | setImages(i => [...i, imageUrl]); 77 | }} /> 78 |
79 | 80 |
81 | 84 |
85 | 86 |
87 |
88 | } -------------------------------------------------------------------------------- /backend/src/routers/user.ts: -------------------------------------------------------------------------------- 1 | import nacl from "tweetnacl"; 2 | import { PrismaClient } from "@prisma/client"; 3 | import { Router } from "express"; 4 | import { S3Client, GetObjectCommand, PutObjectCommand } from '@aws-sdk/client-s3' 5 | import jwt from "jsonwebtoken"; 6 | import { JWT_SECRET, TOTAL_DECIMALS } from "../config"; 7 | import { authMiddleware } from "../middleware"; 8 | import { createPresignedPost } from '@aws-sdk/s3-presigned-post' 9 | import { createTaskInput } from "../types"; 10 | import { Connection, PublicKey, Transaction } from "@solana/web3.js"; 11 | 12 | const connection = new Connection(process.env.RPC_URL ?? ""); 13 | 14 | const PARENT_WALLET_ADDRESS = "2KeovpYvrgpziaDsq8nbNMP4mc48VNBVXb5arbqrg9Cq"; 15 | 16 | const DEFAULT_TITLE = "Select the most clickable thumbnail"; 17 | 18 | const s3Client = new S3Client({ 19 | credentials: { 20 | accessKeyId: process.env.ACCESS_KEY_ID ?? "", 21 | secretAccessKey: process.env.ACCESS_SECRET ?? "", 22 | }, 23 | region: "us-east-1" 24 | }) 25 | 26 | const router = Router(); 27 | 28 | const prismaClient = new PrismaClient(); 29 | 30 | 31 | prismaClient.$transaction( 32 | async (prisma) => { 33 | // Code running in a transaction... 34 | }, 35 | { 36 | maxWait: 5000, // default: 2000 37 | timeout: 10000, // default: 5000 38 | } 39 | ) 40 | 41 | router.get("/task", authMiddleware, async (req, res) => { 42 | // @ts-ignore 43 | const taskId: string = req.query.taskId; 44 | // @ts-ignore 45 | const userId: string = req.userId; 46 | 47 | const taskDetails = await prismaClient.task.findFirst({ 48 | where: { 49 | user_id: Number(userId), 50 | id: Number(taskId) 51 | }, 52 | include: { 53 | options: true 54 | } 55 | }) 56 | 57 | if (!taskDetails) { 58 | return res.status(411).json({ 59 | message: "You dont have access to this task" 60 | }) 61 | } 62 | 63 | // Todo: Can u make this faster? 64 | const responses = await prismaClient.submission.findMany({ 65 | where: { 66 | task_id: Number(taskId) 67 | }, 68 | include: { 69 | option: true 70 | } 71 | }); 72 | 73 | const result: Record = {}; 79 | 80 | taskDetails.options.forEach(option => { 81 | result[option.id] = { 82 | count: 0, 83 | option: { 84 | imageUrl: option.image_url 85 | } 86 | } 87 | }) 88 | 89 | responses.forEach(r => { 90 | result[r.option_id].count++; 91 | }); 92 | 93 | res.json({ 94 | result, 95 | taskDetails 96 | }) 97 | 98 | }) 99 | 100 | router.post("/task", authMiddleware, async (req, res) => { 101 | //@ts-ignore 102 | const userId = req.userId 103 | // validate the inputs from the user; 104 | const body = req.body; 105 | 106 | const parseData = createTaskInput.safeParse(body); 107 | 108 | const user = await prismaClient.user.findFirst({ 109 | where: { 110 | id: userId 111 | } 112 | }) 113 | 114 | if (!parseData.success) { 115 | return res.status(411).json({ 116 | message: "You've sent the wrong inputs" 117 | }) 118 | } 119 | 120 | const transaction = await connection.getTransaction(parseData.data.signature, { 121 | maxSupportedTransactionVersion: 1 122 | }); 123 | 124 | console.log(transaction); 125 | 126 | if ((transaction?.meta?.postBalances[1] ?? 0) - (transaction?.meta?.preBalances[1] ?? 0) !== 100000000) { 127 | return res.status(411).json({ 128 | message: "Transaction signature/amount incorrect" 129 | }) 130 | } 131 | 132 | if (transaction?.transaction.message.getAccountKeys().get(1)?.toString() !== PARENT_WALLET_ADDRESS) { 133 | return res.status(411).json({ 134 | message: "Transaction sent to wrong address" 135 | }) 136 | } 137 | 138 | if (transaction?.transaction.message.getAccountKeys().get(0)?.toString() !== user?.address) { 139 | return res.status(411).json({ 140 | message: "Transaction sent to wrong address" 141 | }) 142 | } 143 | // was this money paid by this user address or a different address? 144 | 145 | // parse the signature here to ensure the person has paid 0.1 SOL 146 | // const transaction = Transaction.from(parseData.data.signature); 147 | 148 | let response = await prismaClient.$transaction(async tx => { 149 | 150 | const response = await tx.task.create({ 151 | data: { 152 | title: parseData.data.title ?? DEFAULT_TITLE, 153 | amount: 0.1 * TOTAL_DECIMALS, 154 | //TODO: Signature should be unique in the table else people can reuse a signature 155 | signature: parseData.data.signature, 156 | user_id: userId 157 | } 158 | }); 159 | 160 | await tx.option.createMany({ 161 | data: parseData.data.options.map(x => ({ 162 | image_url: x.imageUrl, 163 | task_id: response.id 164 | })) 165 | }) 166 | 167 | return response; 168 | 169 | }) 170 | 171 | res.json({ 172 | id: response.id 173 | }) 174 | 175 | }) 176 | 177 | router.get("/presignedUrl", authMiddleware, async (req, res) => { 178 | // @ts-ignore 179 | const userId = req.userId; 180 | 181 | const { url, fields } = await createPresignedPost(s3Client, { 182 | Bucket: 'hkirat-cms', 183 | Key: `fiver/${userId}/${Math.random()}/image.jpg`, 184 | Conditions: [ 185 | ['content-length-range', 0, 5 * 1024 * 1024] // 5 MB max 186 | ], 187 | Expires: 3600 188 | }) 189 | 190 | res.json({ 191 | preSignedUrl: url, 192 | fields 193 | }) 194 | 195 | }) 196 | 197 | router.post("/signin", async(req, res) => { 198 | const { publicKey, signature } = req.body; 199 | const message = new TextEncoder().encode("Sign into mechanical turks"); 200 | 201 | const result = nacl.sign.detached.verify( 202 | message, 203 | new Uint8Array(signature.data), 204 | new PublicKey(publicKey).toBytes(), 205 | ); 206 | 207 | 208 | if (!result) { 209 | return res.status(411).json({ 210 | message: "Incorrect signature" 211 | }) 212 | } 213 | 214 | const existingUser = await prismaClient.user.findFirst({ 215 | where: { 216 | address: publicKey 217 | } 218 | }) 219 | 220 | if (existingUser) { 221 | const token = jwt.sign({ 222 | userId: existingUser.id 223 | }, JWT_SECRET) 224 | 225 | res.json({ 226 | token 227 | }) 228 | } else { 229 | const user = await prismaClient.user.create({ 230 | data: { 231 | address: publicKey, 232 | } 233 | }) 234 | 235 | const token = jwt.sign({ 236 | userId: user.id 237 | }, JWT_SECRET) 238 | 239 | res.json({ 240 | token 241 | }) 242 | } 243 | }); 244 | 245 | export default router; -------------------------------------------------------------------------------- /backend/src/routers/worker.ts: -------------------------------------------------------------------------------- 1 | import nacl from "tweetnacl"; 2 | import { PrismaClient } from "@prisma/client"; 3 | import { Router } from "express"; 4 | import jwt from "jsonwebtoken"; 5 | import { workerMiddleware } from "../middleware"; 6 | import { TOTAL_DECIMALS, WORKER_JWT_SECRET } from "../config"; 7 | import { getNextTask } from "../db"; 8 | import { createSubmissionInput } from "../types"; 9 | import { Connection, Keypair, PublicKey, SystemProgram, Transaction, sendAndConfirmTransaction } from "@solana/web3.js"; 10 | import { privateKey } from "../privateKey"; 11 | import { decode } from "bs58"; 12 | const connection = new Connection(process.env.RPC_URL ?? ""); 13 | 14 | const TOTAL_SUBMISSIONS = 100; 15 | 16 | const prismaClient = new PrismaClient(); 17 | 18 | prismaClient.$transaction( 19 | async (prisma) => { 20 | // Code running in a transaction... 21 | }, 22 | { 23 | maxWait: 5000, // default: 2000 24 | timeout: 10000, // default: 5000 25 | } 26 | ) 27 | 28 | const router = Router(); 29 | 30 | router.post("/payout", workerMiddleware, async (req, res) => { 31 | // @ts-ignore 32 | const userId: string = req.userId; 33 | const worker = await prismaClient.worker.findFirst({ 34 | where: { id: Number(userId) } 35 | }) 36 | 37 | if (!worker) { 38 | return res.status(403).json({ 39 | message: "User not found" 40 | }) 41 | } 42 | 43 | const transaction = new Transaction().add( 44 | SystemProgram.transfer({ 45 | fromPubkey: new PublicKey("2KeovpYvrgpziaDsq8nbNMP4mc48VNBVXb5arbqrg9Cq"), 46 | toPubkey: new PublicKey(worker.address), 47 | lamports: 1000_000_000 * worker.pending_amount / TOTAL_DECIMALS, 48 | }) 49 | ); 50 | 51 | 52 | console.log(worker.address); 53 | 54 | const keypair = Keypair.fromSecretKey(decode(privateKey)); 55 | 56 | // TODO: There's a double spending problem here 57 | // The user can request the withdrawal multiple times 58 | // Can u figure out a way to fix it? 59 | let signature = ""; 60 | try { 61 | signature = await sendAndConfirmTransaction( 62 | connection, 63 | transaction, 64 | [keypair], 65 | ); 66 | 67 | } catch(e) { 68 | return res.json({ 69 | message: "Transaction failed" 70 | }) 71 | } 72 | 73 | console.log(signature) 74 | 75 | // We should add a lock here 76 | await prismaClient.$transaction(async tx => { 77 | await tx.worker.update({ 78 | where: { 79 | id: Number(userId) 80 | }, 81 | data: { 82 | pending_amount: { 83 | decrement: worker.pending_amount 84 | }, 85 | locked_amount: { 86 | increment: worker.pending_amount 87 | } 88 | } 89 | }) 90 | 91 | await tx.payouts.create({ 92 | data: { 93 | user_id: Number(userId), 94 | amount: worker.pending_amount, 95 | status: "Processing", 96 | signature: signature 97 | } 98 | }) 99 | }) 100 | 101 | res.json({ 102 | message: "Processing payout", 103 | amount: worker.pending_amount 104 | }) 105 | 106 | 107 | }) 108 | 109 | router.get("/balance", workerMiddleware, async (req, res) => { 110 | // @ts-ignore 111 | const userId: string = req.userId; 112 | 113 | const worker = await prismaClient.worker.findFirst({ 114 | where: { 115 | id: Number(userId) 116 | } 117 | }) 118 | 119 | res.json({ 120 | pendingAmount: worker?.pending_amount, 121 | lockedAmount: worker?.pending_amount, 122 | }) 123 | }) 124 | 125 | 126 | router.post("/submission", workerMiddleware, async (req, res) => { 127 | // @ts-ignore 128 | const userId = req.userId; 129 | const body = req.body; 130 | const parsedBody = createSubmissionInput.safeParse(body); 131 | 132 | if (parsedBody.success) { 133 | const task = await getNextTask(Number(userId)); 134 | if (!task || task?.id !== Number(parsedBody.data.taskId)) { 135 | return res.status(411).json({ 136 | message: "Incorrect task id" 137 | }) 138 | } 139 | 140 | const amount = (Number(task.amount) / TOTAL_SUBMISSIONS).toString(); 141 | 142 | const submission = await prismaClient.$transaction(async tx => { 143 | const submission = await tx.submission.create({ 144 | data: { 145 | option_id: Number(parsedBody.data.selection), 146 | worker_id: userId, 147 | task_id: Number(parsedBody.data.taskId), 148 | amount: Number(amount) 149 | } 150 | }) 151 | 152 | await tx.worker.update({ 153 | where: { 154 | id: userId, 155 | }, 156 | data: { 157 | pending_amount: { 158 | increment: Number(amount) 159 | } 160 | } 161 | }) 162 | 163 | return submission; 164 | }) 165 | 166 | const nextTask = await getNextTask(Number(userId)); 167 | res.json({ 168 | nextTask, 169 | amount 170 | }) 171 | 172 | 173 | } else { 174 | res.status(411).json({ 175 | message: "Incorrect inputs" 176 | }) 177 | 178 | } 179 | 180 | }) 181 | 182 | router.get("/nextTask", workerMiddleware, async (req, res) => { 183 | // @ts-ignore 184 | const userId: string = req.userId; 185 | 186 | const task = await getNextTask(Number(userId)); 187 | 188 | if (!task) { 189 | res.status(411).json({ 190 | message: "No more tasks left for you to review" 191 | }) 192 | } else { 193 | res.json({ 194 | task 195 | }) 196 | } 197 | }) 198 | 199 | router.post("/signin", async(req, res) => { 200 | const { publicKey, signature } = req.body; 201 | const message = new TextEncoder().encode("Sign into mechanical turks as a worker"); 202 | 203 | const result = nacl.sign.detached.verify( 204 | message, 205 | new Uint8Array(signature.data), 206 | new PublicKey(publicKey).toBytes(), 207 | ); 208 | 209 | if (!result) { 210 | return res.status(411).json({ 211 | message: "Incorrect signature" 212 | }) 213 | } 214 | 215 | const existingUser = await prismaClient.worker.findFirst({ 216 | where: { 217 | address: publicKey 218 | } 219 | }) 220 | 221 | if (existingUser) { 222 | const token = jwt.sign({ 223 | userId: existingUser.id 224 | }, WORKER_JWT_SECRET) 225 | 226 | res.json({ 227 | token, 228 | amount: existingUser.pending_amount / TOTAL_DECIMALS 229 | }) 230 | } else { 231 | const user = await prismaClient.worker.create({ 232 | data: { 233 | address: publicKey, 234 | pending_amount: 0, 235 | locked_amount: 0 236 | } 237 | }); 238 | 239 | const token = jwt.sign({ 240 | userId: user.id 241 | }, WORKER_JWT_SECRET) 242 | 243 | res.json({ 244 | token, 245 | amount: 0 246 | }) 247 | } 248 | }); 249 | 250 | export default router; -------------------------------------------------------------------------------- /backend/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Visit https://aka.ms/tsconfig to read more about this file */ 4 | 5 | /* Projects */ 6 | // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ 7 | // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ 8 | // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ 9 | // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ 10 | // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ 11 | // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ 12 | 13 | /* Language and Environment */ 14 | "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ 15 | // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ 16 | // "jsx": "preserve", /* Specify what JSX code is generated. */ 17 | // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ 18 | // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ 19 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ 20 | // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ 21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ 22 | // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ 23 | // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ 24 | // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ 25 | // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ 26 | 27 | /* Modules */ 28 | "module": "commonjs", /* Specify what module code is generated. */ 29 | "rootDir": "./src", /* Specify the root folder within your source files. */ 30 | // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ 31 | // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ 32 | // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ 33 | // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ 34 | // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ 35 | // "types": [], /* Specify type package names to be included without being referenced in a source file. */ 36 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 37 | // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ 38 | // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ 39 | // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ 40 | // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ 41 | // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ 42 | // "resolveJsonModule": true, /* Enable importing .json files. */ 43 | // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ 44 | // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ 45 | 46 | /* JavaScript Support */ 47 | // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ 48 | // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ 49 | // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ 50 | 51 | /* Emit */ 52 | // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ 53 | // "declarationMap": true, /* Create sourcemaps for d.ts files. */ 54 | // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ 55 | // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ 56 | // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ 57 | // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ 58 | "outDir": "./dist", /* Specify an output folder for all emitted files. */ 59 | // "removeComments": true, /* Disable emitting comments. */ 60 | // "noEmit": true, /* Disable emitting files from a compilation. */ 61 | // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ 62 | // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ 63 | // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ 64 | // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ 65 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 66 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ 67 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ 68 | // "newLine": "crlf", /* Set the newline character for emitting files. */ 69 | // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ 70 | // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ 71 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ 72 | // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ 73 | // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ 74 | // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ 75 | 76 | /* Interop Constraints */ 77 | // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ 78 | // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ 79 | // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ 80 | "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ 81 | // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ 82 | "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ 83 | 84 | /* Type Checking */ 85 | "strict": true, /* Enable all strict type-checking options. */ 86 | // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ 87 | // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ 88 | // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ 89 | // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ 90 | // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ 91 | // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ 92 | // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ 93 | // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ 94 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ 95 | // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ 96 | // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ 97 | // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ 98 | // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ 99 | // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ 100 | // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ 101 | // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ 102 | // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ 103 | // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ 104 | 105 | /* Completeness */ 106 | // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ 107 | "skipLibCheck": true /* Skip type checking all .d.ts files. */ 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /backend/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@aws-crypto/crc32@3.0.0": 6 | version "3.0.0" 7 | resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa" 8 | integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA== 9 | dependencies: 10 | "@aws-crypto/util" "^3.0.0" 11 | "@aws-sdk/types" "^3.222.0" 12 | tslib "^1.11.1" 13 | 14 | "@aws-crypto/crc32c@3.0.0": 15 | version "3.0.0" 16 | resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz#016c92da559ef638a84a245eecb75c3e97cb664f" 17 | integrity sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w== 18 | dependencies: 19 | "@aws-crypto/util" "^3.0.0" 20 | "@aws-sdk/types" "^3.222.0" 21 | tslib "^1.11.1" 22 | 23 | "@aws-crypto/ie11-detection@^3.0.0": 24 | version "3.0.0" 25 | resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" 26 | integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== 27 | dependencies: 28 | tslib "^1.11.1" 29 | 30 | "@aws-crypto/sha1-browser@3.0.0": 31 | version "3.0.0" 32 | resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz#f9083c00782b24714f528b1a1fef2174002266a3" 33 | integrity sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw== 34 | dependencies: 35 | "@aws-crypto/ie11-detection" "^3.0.0" 36 | "@aws-crypto/supports-web-crypto" "^3.0.0" 37 | "@aws-crypto/util" "^3.0.0" 38 | "@aws-sdk/types" "^3.222.0" 39 | "@aws-sdk/util-locate-window" "^3.0.0" 40 | "@aws-sdk/util-utf8-browser" "^3.0.0" 41 | tslib "^1.11.1" 42 | 43 | "@aws-crypto/sha256-browser@3.0.0": 44 | version "3.0.0" 45 | resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" 46 | integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== 47 | dependencies: 48 | "@aws-crypto/ie11-detection" "^3.0.0" 49 | "@aws-crypto/sha256-js" "^3.0.0" 50 | "@aws-crypto/supports-web-crypto" "^3.0.0" 51 | "@aws-crypto/util" "^3.0.0" 52 | "@aws-sdk/types" "^3.222.0" 53 | "@aws-sdk/util-locate-window" "^3.0.0" 54 | "@aws-sdk/util-utf8-browser" "^3.0.0" 55 | tslib "^1.11.1" 56 | 57 | "@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0": 58 | version "3.0.0" 59 | resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" 60 | integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== 61 | dependencies: 62 | "@aws-crypto/util" "^3.0.0" 63 | "@aws-sdk/types" "^3.222.0" 64 | tslib "^1.11.1" 65 | 66 | "@aws-crypto/supports-web-crypto@^3.0.0": 67 | version "3.0.0" 68 | resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" 69 | integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== 70 | dependencies: 71 | tslib "^1.11.1" 72 | 73 | "@aws-crypto/util@^3.0.0": 74 | version "3.0.0" 75 | resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0" 76 | integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== 77 | dependencies: 78 | "@aws-sdk/types" "^3.222.0" 79 | "@aws-sdk/util-utf8-browser" "^3.0.0" 80 | tslib "^1.11.1" 81 | 82 | "@aws-sdk/client-s3@3.572.0", "@aws-sdk/client-s3@^3.572.0": 83 | version "3.572.0" 84 | resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.572.0.tgz#2ef0882029a5f621e11e2d3ce685381f0781bf1b" 85 | integrity sha512-YLtJRVZN+ktOaseWeTtthmimRQoWxygdzRPFlb1HpDPX+akBrGkL7Mz69onpXKfqm9Loz3diUXHqKfpxRX9Pog== 86 | dependencies: 87 | "@aws-crypto/sha1-browser" "3.0.0" 88 | "@aws-crypto/sha256-browser" "3.0.0" 89 | "@aws-crypto/sha256-js" "3.0.0" 90 | "@aws-sdk/client-sso-oidc" "3.572.0" 91 | "@aws-sdk/client-sts" "3.572.0" 92 | "@aws-sdk/core" "3.572.0" 93 | "@aws-sdk/credential-provider-node" "3.572.0" 94 | "@aws-sdk/middleware-bucket-endpoint" "3.568.0" 95 | "@aws-sdk/middleware-expect-continue" "3.572.0" 96 | "@aws-sdk/middleware-flexible-checksums" "3.572.0" 97 | "@aws-sdk/middleware-host-header" "3.567.0" 98 | "@aws-sdk/middleware-location-constraint" "3.567.0" 99 | "@aws-sdk/middleware-logger" "3.568.0" 100 | "@aws-sdk/middleware-recursion-detection" "3.567.0" 101 | "@aws-sdk/middleware-sdk-s3" "3.572.0" 102 | "@aws-sdk/middleware-signing" "3.572.0" 103 | "@aws-sdk/middleware-ssec" "3.567.0" 104 | "@aws-sdk/middleware-user-agent" "3.572.0" 105 | "@aws-sdk/region-config-resolver" "3.572.0" 106 | "@aws-sdk/signature-v4-multi-region" "3.572.0" 107 | "@aws-sdk/types" "3.567.0" 108 | "@aws-sdk/util-endpoints" "3.572.0" 109 | "@aws-sdk/util-user-agent-browser" "3.567.0" 110 | "@aws-sdk/util-user-agent-node" "3.568.0" 111 | "@aws-sdk/xml-builder" "3.567.0" 112 | "@smithy/config-resolver" "^2.2.0" 113 | "@smithy/core" "^1.4.2" 114 | "@smithy/eventstream-serde-browser" "^2.2.0" 115 | "@smithy/eventstream-serde-config-resolver" "^2.2.0" 116 | "@smithy/eventstream-serde-node" "^2.2.0" 117 | "@smithy/fetch-http-handler" "^2.5.0" 118 | "@smithy/hash-blob-browser" "^2.2.0" 119 | "@smithy/hash-node" "^2.2.0" 120 | "@smithy/hash-stream-node" "^2.2.0" 121 | "@smithy/invalid-dependency" "^2.2.0" 122 | "@smithy/md5-js" "^2.2.0" 123 | "@smithy/middleware-content-length" "^2.2.0" 124 | "@smithy/middleware-endpoint" "^2.5.1" 125 | "@smithy/middleware-retry" "^2.3.1" 126 | "@smithy/middleware-serde" "^2.3.0" 127 | "@smithy/middleware-stack" "^2.2.0" 128 | "@smithy/node-config-provider" "^2.3.0" 129 | "@smithy/node-http-handler" "^2.5.0" 130 | "@smithy/protocol-http" "^3.3.0" 131 | "@smithy/smithy-client" "^2.5.1" 132 | "@smithy/types" "^2.12.0" 133 | "@smithy/url-parser" "^2.2.0" 134 | "@smithy/util-base64" "^2.3.0" 135 | "@smithy/util-body-length-browser" "^2.2.0" 136 | "@smithy/util-body-length-node" "^2.3.0" 137 | "@smithy/util-defaults-mode-browser" "^2.2.1" 138 | "@smithy/util-defaults-mode-node" "^2.3.1" 139 | "@smithy/util-endpoints" "^1.2.0" 140 | "@smithy/util-retry" "^2.2.0" 141 | "@smithy/util-stream" "^2.2.0" 142 | "@smithy/util-utf8" "^2.3.0" 143 | "@smithy/util-waiter" "^2.2.0" 144 | tslib "^2.6.2" 145 | 146 | "@aws-sdk/client-sso-oidc@3.572.0": 147 | version "3.572.0" 148 | resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.572.0.tgz#0abe3282c0900f0641770a928d31221a06df494d" 149 | integrity sha512-S6C/S6xYesDakEuzYvlY1DMMKLtKQxdbbygq3hfeG2R0jUt9KpRLsQXK8qrBuVCKa3WcnjN/30hp4g/iUWFU/w== 150 | dependencies: 151 | "@aws-crypto/sha256-browser" "3.0.0" 152 | "@aws-crypto/sha256-js" "3.0.0" 153 | "@aws-sdk/client-sts" "3.572.0" 154 | "@aws-sdk/core" "3.572.0" 155 | "@aws-sdk/credential-provider-node" "3.572.0" 156 | "@aws-sdk/middleware-host-header" "3.567.0" 157 | "@aws-sdk/middleware-logger" "3.568.0" 158 | "@aws-sdk/middleware-recursion-detection" "3.567.0" 159 | "@aws-sdk/middleware-user-agent" "3.572.0" 160 | "@aws-sdk/region-config-resolver" "3.572.0" 161 | "@aws-sdk/types" "3.567.0" 162 | "@aws-sdk/util-endpoints" "3.572.0" 163 | "@aws-sdk/util-user-agent-browser" "3.567.0" 164 | "@aws-sdk/util-user-agent-node" "3.568.0" 165 | "@smithy/config-resolver" "^2.2.0" 166 | "@smithy/core" "^1.4.2" 167 | "@smithy/fetch-http-handler" "^2.5.0" 168 | "@smithy/hash-node" "^2.2.0" 169 | "@smithy/invalid-dependency" "^2.2.0" 170 | "@smithy/middleware-content-length" "^2.2.0" 171 | "@smithy/middleware-endpoint" "^2.5.1" 172 | "@smithy/middleware-retry" "^2.3.1" 173 | "@smithy/middleware-serde" "^2.3.0" 174 | "@smithy/middleware-stack" "^2.2.0" 175 | "@smithy/node-config-provider" "^2.3.0" 176 | "@smithy/node-http-handler" "^2.5.0" 177 | "@smithy/protocol-http" "^3.3.0" 178 | "@smithy/smithy-client" "^2.5.1" 179 | "@smithy/types" "^2.12.0" 180 | "@smithy/url-parser" "^2.2.0" 181 | "@smithy/util-base64" "^2.3.0" 182 | "@smithy/util-body-length-browser" "^2.2.0" 183 | "@smithy/util-body-length-node" "^2.3.0" 184 | "@smithy/util-defaults-mode-browser" "^2.2.1" 185 | "@smithy/util-defaults-mode-node" "^2.3.1" 186 | "@smithy/util-endpoints" "^1.2.0" 187 | "@smithy/util-middleware" "^2.2.0" 188 | "@smithy/util-retry" "^2.2.0" 189 | "@smithy/util-utf8" "^2.3.0" 190 | tslib "^2.6.2" 191 | 192 | "@aws-sdk/client-sso@3.572.0": 193 | version "3.572.0" 194 | resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.572.0.tgz#d686db985b4c430dbfa6854c8fa1c17de2c3d7ac" 195 | integrity sha512-S+xhScao5MD79AkrcHmFpEDk+CgoiuB/31WFcTcnrTio5TOUONAaT0QyscOIwRp7BZ7Aez7TBM+loTteJ+TQvg== 196 | dependencies: 197 | "@aws-crypto/sha256-browser" "3.0.0" 198 | "@aws-crypto/sha256-js" "3.0.0" 199 | "@aws-sdk/core" "3.572.0" 200 | "@aws-sdk/middleware-host-header" "3.567.0" 201 | "@aws-sdk/middleware-logger" "3.568.0" 202 | "@aws-sdk/middleware-recursion-detection" "3.567.0" 203 | "@aws-sdk/middleware-user-agent" "3.572.0" 204 | "@aws-sdk/region-config-resolver" "3.572.0" 205 | "@aws-sdk/types" "3.567.0" 206 | "@aws-sdk/util-endpoints" "3.572.0" 207 | "@aws-sdk/util-user-agent-browser" "3.567.0" 208 | "@aws-sdk/util-user-agent-node" "3.568.0" 209 | "@smithy/config-resolver" "^2.2.0" 210 | "@smithy/core" "^1.4.2" 211 | "@smithy/fetch-http-handler" "^2.5.0" 212 | "@smithy/hash-node" "^2.2.0" 213 | "@smithy/invalid-dependency" "^2.2.0" 214 | "@smithy/middleware-content-length" "^2.2.0" 215 | "@smithy/middleware-endpoint" "^2.5.1" 216 | "@smithy/middleware-retry" "^2.3.1" 217 | "@smithy/middleware-serde" "^2.3.0" 218 | "@smithy/middleware-stack" "^2.2.0" 219 | "@smithy/node-config-provider" "^2.3.0" 220 | "@smithy/node-http-handler" "^2.5.0" 221 | "@smithy/protocol-http" "^3.3.0" 222 | "@smithy/smithy-client" "^2.5.1" 223 | "@smithy/types" "^2.12.0" 224 | "@smithy/url-parser" "^2.2.0" 225 | "@smithy/util-base64" "^2.3.0" 226 | "@smithy/util-body-length-browser" "^2.2.0" 227 | "@smithy/util-body-length-node" "^2.3.0" 228 | "@smithy/util-defaults-mode-browser" "^2.2.1" 229 | "@smithy/util-defaults-mode-node" "^2.3.1" 230 | "@smithy/util-endpoints" "^1.2.0" 231 | "@smithy/util-middleware" "^2.2.0" 232 | "@smithy/util-retry" "^2.2.0" 233 | "@smithy/util-utf8" "^2.3.0" 234 | tslib "^2.6.2" 235 | 236 | "@aws-sdk/client-sts@3.572.0": 237 | version "3.572.0" 238 | resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.572.0.tgz#75437254cb314a0a0cdb7b28887d502442167408" 239 | integrity sha512-jCQuH2qkbWoSY4wckLSfzf3OPh7zc7ZckEbIGGVUQar/JVff6EIbpQ+uNG29DDEOpdPPd8rrJsVuUlA/nvJdXA== 240 | dependencies: 241 | "@aws-crypto/sha256-browser" "3.0.0" 242 | "@aws-crypto/sha256-js" "3.0.0" 243 | "@aws-sdk/client-sso-oidc" "3.572.0" 244 | "@aws-sdk/core" "3.572.0" 245 | "@aws-sdk/credential-provider-node" "3.572.0" 246 | "@aws-sdk/middleware-host-header" "3.567.0" 247 | "@aws-sdk/middleware-logger" "3.568.0" 248 | "@aws-sdk/middleware-recursion-detection" "3.567.0" 249 | "@aws-sdk/middleware-user-agent" "3.572.0" 250 | "@aws-sdk/region-config-resolver" "3.572.0" 251 | "@aws-sdk/types" "3.567.0" 252 | "@aws-sdk/util-endpoints" "3.572.0" 253 | "@aws-sdk/util-user-agent-browser" "3.567.0" 254 | "@aws-sdk/util-user-agent-node" "3.568.0" 255 | "@smithy/config-resolver" "^2.2.0" 256 | "@smithy/core" "^1.4.2" 257 | "@smithy/fetch-http-handler" "^2.5.0" 258 | "@smithy/hash-node" "^2.2.0" 259 | "@smithy/invalid-dependency" "^2.2.0" 260 | "@smithy/middleware-content-length" "^2.2.0" 261 | "@smithy/middleware-endpoint" "^2.5.1" 262 | "@smithy/middleware-retry" "^2.3.1" 263 | "@smithy/middleware-serde" "^2.3.0" 264 | "@smithy/middleware-stack" "^2.2.0" 265 | "@smithy/node-config-provider" "^2.3.0" 266 | "@smithy/node-http-handler" "^2.5.0" 267 | "@smithy/protocol-http" "^3.3.0" 268 | "@smithy/smithy-client" "^2.5.1" 269 | "@smithy/types" "^2.12.0" 270 | "@smithy/url-parser" "^2.2.0" 271 | "@smithy/util-base64" "^2.3.0" 272 | "@smithy/util-body-length-browser" "^2.2.0" 273 | "@smithy/util-body-length-node" "^2.3.0" 274 | "@smithy/util-defaults-mode-browser" "^2.2.1" 275 | "@smithy/util-defaults-mode-node" "^2.3.1" 276 | "@smithy/util-endpoints" "^1.2.0" 277 | "@smithy/util-middleware" "^2.2.0" 278 | "@smithy/util-retry" "^2.2.0" 279 | "@smithy/util-utf8" "^2.3.0" 280 | tslib "^2.6.2" 281 | 282 | "@aws-sdk/core@3.572.0": 283 | version "3.572.0" 284 | resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.572.0.tgz#875cbd9e2ca6b78a3c2663cf67aed24e6b143667" 285 | integrity sha512-DBmf94qfN0dfaLl5EnNcq6TakWfOtVXYifHoTbX+VBwESj3rlY4W+W4mAnvBgAqDjlLFy7bBljmx+vnjnV73lg== 286 | dependencies: 287 | "@smithy/core" "^1.4.2" 288 | "@smithy/protocol-http" "^3.3.0" 289 | "@smithy/signature-v4" "^2.3.0" 290 | "@smithy/smithy-client" "^2.5.1" 291 | "@smithy/types" "^2.12.0" 292 | fast-xml-parser "4.2.5" 293 | tslib "^2.6.2" 294 | 295 | "@aws-sdk/credential-provider-env@3.568.0": 296 | version "3.568.0" 297 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.568.0.tgz#fc7fda0bc48bbc75065a9084e41d429037e0e1c5" 298 | integrity sha512-MVTQoZwPnP1Ev5A7LG+KzeU6sCB8BcGkZeDT1z1V5Wt7GPq0MgFQTSSjhImnB9jqRSZkl1079Bt3PbO6lfIS8g== 299 | dependencies: 300 | "@aws-sdk/types" "3.567.0" 301 | "@smithy/property-provider" "^2.2.0" 302 | "@smithy/types" "^2.12.0" 303 | tslib "^2.6.2" 304 | 305 | "@aws-sdk/credential-provider-http@3.568.0": 306 | version "3.568.0" 307 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.568.0.tgz#7f7239bed7c23db7356ebeae5f3b3bda9f751b08" 308 | integrity sha512-gL0NlyI2eW17hnCrh45hZV+qjtBquB+Bckiip9R6DIVRKqYcoILyiFhuOgf2bXeF23gVh6j18pvUvIoTaFWs5w== 309 | dependencies: 310 | "@aws-sdk/types" "3.567.0" 311 | "@smithy/fetch-http-handler" "^2.5.0" 312 | "@smithy/node-http-handler" "^2.5.0" 313 | "@smithy/property-provider" "^2.2.0" 314 | "@smithy/protocol-http" "^3.3.0" 315 | "@smithy/smithy-client" "^2.5.1" 316 | "@smithy/types" "^2.12.0" 317 | "@smithy/util-stream" "^2.2.0" 318 | tslib "^2.6.2" 319 | 320 | "@aws-sdk/credential-provider-ini@3.572.0": 321 | version "3.572.0" 322 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.572.0.tgz#b6a447e85a10938a1f038bd7e1096c73229e6699" 323 | integrity sha512-05KzbAp77fEiQXqMeodXeMbT83FOqSyBrfSEMz6U8uBXeJCy8zPUjN3acqcbG55/HNJHUvg1cftqzy+fUz71gA== 324 | dependencies: 325 | "@aws-sdk/credential-provider-env" "3.568.0" 326 | "@aws-sdk/credential-provider-process" "3.572.0" 327 | "@aws-sdk/credential-provider-sso" "3.572.0" 328 | "@aws-sdk/credential-provider-web-identity" "3.568.0" 329 | "@aws-sdk/types" "3.567.0" 330 | "@smithy/credential-provider-imds" "^2.3.0" 331 | "@smithy/property-provider" "^2.2.0" 332 | "@smithy/shared-ini-file-loader" "^2.4.0" 333 | "@smithy/types" "^2.12.0" 334 | tslib "^2.6.2" 335 | 336 | "@aws-sdk/credential-provider-node@3.572.0": 337 | version "3.572.0" 338 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.572.0.tgz#dbb1d26a8a2c18c52f8067f6c6371ee850c1fb05" 339 | integrity sha512-anlYZnpmVkfp9Gan+LcEkQvmRf/m0KcbR11th8sBEyI5lxMaHKXhnAtC/hEGT7e3L6rgNOrFYTPuSvllITD/Pg== 340 | dependencies: 341 | "@aws-sdk/credential-provider-env" "3.568.0" 342 | "@aws-sdk/credential-provider-http" "3.568.0" 343 | "@aws-sdk/credential-provider-ini" "3.572.0" 344 | "@aws-sdk/credential-provider-process" "3.572.0" 345 | "@aws-sdk/credential-provider-sso" "3.572.0" 346 | "@aws-sdk/credential-provider-web-identity" "3.568.0" 347 | "@aws-sdk/types" "3.567.0" 348 | "@smithy/credential-provider-imds" "^2.3.0" 349 | "@smithy/property-provider" "^2.2.0" 350 | "@smithy/shared-ini-file-loader" "^2.4.0" 351 | "@smithy/types" "^2.12.0" 352 | tslib "^2.6.2" 353 | 354 | "@aws-sdk/credential-provider-process@3.572.0": 355 | version "3.572.0" 356 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.572.0.tgz#6054c37721d44b3e855b41f4ad8e3dd73f84e6cf" 357 | integrity sha512-hXcOytf0BadSm/MMy7MV8mmY0+Jv3mkavsHNBx0R82hw5ollD0I3JyOAaCtdUpztF0I72F8K+q8SpJQZ+EwArw== 358 | dependencies: 359 | "@aws-sdk/types" "3.567.0" 360 | "@smithy/property-provider" "^2.2.0" 361 | "@smithy/shared-ini-file-loader" "^2.4.0" 362 | "@smithy/types" "^2.12.0" 363 | tslib "^2.6.2" 364 | 365 | "@aws-sdk/credential-provider-sso@3.572.0": 366 | version "3.572.0" 367 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.572.0.tgz#d0fe8122538fc498e9d4f797dfe99eed5bfc7443" 368 | integrity sha512-iIlnpJiDXFp3XC4hJNSiNurnU24mr3iLB3HoNa9efr944bo6XBl9FQdk3NssIkqzSmgyoB2CEUx/daBHz4XSow== 369 | dependencies: 370 | "@aws-sdk/client-sso" "3.572.0" 371 | "@aws-sdk/token-providers" "3.572.0" 372 | "@aws-sdk/types" "3.567.0" 373 | "@smithy/property-provider" "^2.2.0" 374 | "@smithy/shared-ini-file-loader" "^2.4.0" 375 | "@smithy/types" "^2.12.0" 376 | tslib "^2.6.2" 377 | 378 | "@aws-sdk/credential-provider-web-identity@3.568.0": 379 | version "3.568.0" 380 | resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.568.0.tgz#b4e7958dc92a6cbbf5e9fd065cecd76573d4b70f" 381 | integrity sha512-ZJSmTmoIdg6WqAULjYzaJ3XcbgBzVy36lir6Y0UBMRGaxDgos1AARuX6EcYzXOl+ksLvxt/xMQ+3aYh1LWfKSw== 382 | dependencies: 383 | "@aws-sdk/types" "3.567.0" 384 | "@smithy/property-provider" "^2.2.0" 385 | "@smithy/types" "^2.12.0" 386 | tslib "^2.6.2" 387 | 388 | "@aws-sdk/middleware-bucket-endpoint@3.568.0": 389 | version "3.568.0" 390 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.568.0.tgz#790c0943cc097d3a83665131bc9e0743598cc6ca" 391 | integrity sha512-uc/nbSpXv64ct/wV3Ksz0/bXAsEtXuoZu5J9FTcFnM7c2MSofa0YQrtrJ8cG65uGbdeiFoJwPA048BTG/ilhCA== 392 | dependencies: 393 | "@aws-sdk/types" "3.567.0" 394 | "@aws-sdk/util-arn-parser" "3.568.0" 395 | "@smithy/node-config-provider" "^2.3.0" 396 | "@smithy/protocol-http" "^3.3.0" 397 | "@smithy/types" "^2.12.0" 398 | "@smithy/util-config-provider" "^2.3.0" 399 | tslib "^2.6.2" 400 | 401 | "@aws-sdk/middleware-expect-continue@3.572.0": 402 | version "3.572.0" 403 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.572.0.tgz#91df3b88a0a109450db84577609ed19520dfff38" 404 | integrity sha512-+NKWVK295rOEANU/ohqEfNjkcEdZao7z6HxkMXX4gu4mDpSsVU8WhYr5hp5k3PUhtaiPU8M1rdfQBrZQc4uttw== 405 | dependencies: 406 | "@aws-sdk/types" "3.567.0" 407 | "@smithy/protocol-http" "^3.3.0" 408 | "@smithy/types" "^2.12.0" 409 | tslib "^2.6.2" 410 | 411 | "@aws-sdk/middleware-flexible-checksums@3.572.0": 412 | version "3.572.0" 413 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.572.0.tgz#639ee54f838a5382a69f07351cd783488b6ad89b" 414 | integrity sha512-ysblGDRn1yy8TlKUrwhnFbl3RuMfbVW1rbtePClEYpC/1u9MsqPmm/fmWJJGKat7NclnsgpQyfSQ64DCuaEedg== 415 | dependencies: 416 | "@aws-crypto/crc32" "3.0.0" 417 | "@aws-crypto/crc32c" "3.0.0" 418 | "@aws-sdk/types" "3.567.0" 419 | "@smithy/is-array-buffer" "^2.2.0" 420 | "@smithy/protocol-http" "^3.3.0" 421 | "@smithy/types" "^2.12.0" 422 | "@smithy/util-utf8" "^2.3.0" 423 | tslib "^2.6.2" 424 | 425 | "@aws-sdk/middleware-host-header@3.567.0": 426 | version "3.567.0" 427 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.567.0.tgz#52f278234458ec3035e9534fee582c95a8fec4f7" 428 | integrity sha512-zQHHj2N3in9duKghH7AuRNrOMLnKhW6lnmb7dznou068DJtDr76w475sHp2TF0XELsOGENbbBsOlN/S5QBFBVQ== 429 | dependencies: 430 | "@aws-sdk/types" "3.567.0" 431 | "@smithy/protocol-http" "^3.3.0" 432 | "@smithy/types" "^2.12.0" 433 | tslib "^2.6.2" 434 | 435 | "@aws-sdk/middleware-location-constraint@3.567.0": 436 | version "3.567.0" 437 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.567.0.tgz#c469e745a3fa146dd29d0024a9f4d2a498985822" 438 | integrity sha512-XiGTH4VxrJ5fj6zeF6UL5U5EuJwLqj9bHW5pB+EKfw0pmbnyqfRdYNt46v4GsQql2iVOq1Z/Fiv754nIItBI/A== 439 | dependencies: 440 | "@aws-sdk/types" "3.567.0" 441 | "@smithy/types" "^2.12.0" 442 | tslib "^2.6.2" 443 | 444 | "@aws-sdk/middleware-logger@3.568.0": 445 | version "3.568.0" 446 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.568.0.tgz#aeb85cc8f7da431442d0f5914f3a3e262eb55a09" 447 | integrity sha512-BinH72RG7K3DHHC1/tCulocFv+ZlQ9SrPF9zYT0T1OT95JXuHhB7fH8gEABrc6DAtOdJJh2fgxQjPy5tzPtsrA== 448 | dependencies: 449 | "@aws-sdk/types" "3.567.0" 450 | "@smithy/types" "^2.12.0" 451 | tslib "^2.6.2" 452 | 453 | "@aws-sdk/middleware-recursion-detection@3.567.0": 454 | version "3.567.0" 455 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.567.0.tgz#95d91f071b57fb5245d522db70df1652275f06ac" 456 | integrity sha512-rFk3QhdT4IL6O/UWHmNdjJiURutBCy+ogGqaNHf/RELxgXH3KmYorLwCe0eFb5hq8f6vr3zl4/iH7YtsUOuo1w== 457 | dependencies: 458 | "@aws-sdk/types" "3.567.0" 459 | "@smithy/protocol-http" "^3.3.0" 460 | "@smithy/types" "^2.12.0" 461 | tslib "^2.6.2" 462 | 463 | "@aws-sdk/middleware-sdk-s3@3.572.0": 464 | version "3.572.0" 465 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.572.0.tgz#62534ecbfc55d91fcb768b97bb14f73577c3b00e" 466 | integrity sha512-ygQL1G2hWoJXkUGL/Xr5q9ojXCH8hgt/oKsxJtc5U8ZXw3SRlL6pCVE7+aiD0l8mgIGbW0vrL08Oc/jYWlakdw== 467 | dependencies: 468 | "@aws-sdk/types" "3.567.0" 469 | "@aws-sdk/util-arn-parser" "3.568.0" 470 | "@smithy/node-config-provider" "^2.3.0" 471 | "@smithy/protocol-http" "^3.3.0" 472 | "@smithy/signature-v4" "^2.3.0" 473 | "@smithy/smithy-client" "^2.5.1" 474 | "@smithy/types" "^2.12.0" 475 | "@smithy/util-config-provider" "^2.3.0" 476 | tslib "^2.6.2" 477 | 478 | "@aws-sdk/middleware-signing@3.572.0": 479 | version "3.572.0" 480 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.572.0.tgz#d3c648e3a280774115003d7ea07860f80f79a19d" 481 | integrity sha512-/pEVgHnf8LsTG0hu9yqqvmLMknlKO5c19NM3J9qTWGLPfySi8tWrFuREAFKAxqJFgDw1IdFWd+dXIkodpbGwew== 482 | dependencies: 483 | "@aws-sdk/types" "3.567.0" 484 | "@smithy/property-provider" "^2.2.0" 485 | "@smithy/protocol-http" "^3.3.0" 486 | "@smithy/signature-v4" "^2.3.0" 487 | "@smithy/types" "^2.12.0" 488 | "@smithy/util-middleware" "^2.2.0" 489 | tslib "^2.6.2" 490 | 491 | "@aws-sdk/middleware-ssec@3.567.0": 492 | version "3.567.0" 493 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.567.0.tgz#0a425182d940f963b34146b22dc2872cb21c41e4" 494 | integrity sha512-lhpBwFi3Tcw+jlOdaCsg3lCAg4oOSJB00bW/aLTFeZWutwi9VexMmsddZllx99lN+LDeCjryNyVd2TCRCKwYhQ== 495 | dependencies: 496 | "@aws-sdk/types" "3.567.0" 497 | "@smithy/types" "^2.12.0" 498 | tslib "^2.6.2" 499 | 500 | "@aws-sdk/middleware-user-agent@3.572.0": 501 | version "3.572.0" 502 | resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.572.0.tgz#e629083356e3ea1303544240be82e2784d768984" 503 | integrity sha512-R4bBbLp1ywtF1kJoOX1juDMztKPWeQHNj6XuTvtruFDn1RdfnBlbM3+9rguRfH5s4V+xfl8SSWchnyo2cI00xg== 504 | dependencies: 505 | "@aws-sdk/types" "3.567.0" 506 | "@aws-sdk/util-endpoints" "3.572.0" 507 | "@smithy/protocol-http" "^3.3.0" 508 | "@smithy/types" "^2.12.0" 509 | tslib "^2.6.2" 510 | 511 | "@aws-sdk/region-config-resolver@3.572.0": 512 | version "3.572.0" 513 | resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.572.0.tgz#51a4485bf1b1c3a154fe96e8b9fc0a1e80240fef" 514 | integrity sha512-xkZMIxek44F4YW5r9otD1O5Y/kDkgAb6JNJePkP1qPVojrkCmin3OFYAOZgGm+T4DZAQ5rWhpaqTAWmnRumYfw== 515 | dependencies: 516 | "@aws-sdk/types" "3.567.0" 517 | "@smithy/node-config-provider" "^2.3.0" 518 | "@smithy/types" "^2.12.0" 519 | "@smithy/util-config-provider" "^2.3.0" 520 | "@smithy/util-middleware" "^2.2.0" 521 | tslib "^2.6.2" 522 | 523 | "@aws-sdk/s3-presigned-post@^3.572.0": 524 | version "3.572.0" 525 | resolved "https://registry.yarnpkg.com/@aws-sdk/s3-presigned-post/-/s3-presigned-post-3.572.0.tgz#0139e97cfb7bd1705449a39d795238af75be4779" 526 | integrity sha512-U2bj6azF+sd7pizgQk4yhgrDqzo/TFTC2W6h7a59In3OzD4WdDbDQHMtt4j3n8QQ171LgGhZSquPL7/LC4diIQ== 527 | dependencies: 528 | "@aws-sdk/client-s3" "3.572.0" 529 | "@aws-sdk/types" "3.567.0" 530 | "@aws-sdk/util-format-url" "3.567.0" 531 | "@smithy/middleware-endpoint" "^2.5.1" 532 | "@smithy/signature-v4" "^2.3.0" 533 | "@smithy/types" "^2.12.0" 534 | "@smithy/util-hex-encoding" "^2.2.0" 535 | "@smithy/util-utf8" "^2.3.0" 536 | tslib "^2.6.2" 537 | 538 | "@aws-sdk/s3-request-presigner@^3.572.0": 539 | version "3.572.0" 540 | resolved "https://registry.yarnpkg.com/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.572.0.tgz#98a8a93dd8d3751a702c02983c98239b1863d4b9" 541 | integrity sha512-naeJGRLnobJOy4JK5jPmBtTu7EkZUHgEJUO1QWvMCNp9VAiqbVwf72/vx5neFWZ7Ioe62s7tIrpQfHiNvmQ0oA== 542 | dependencies: 543 | "@aws-sdk/signature-v4-multi-region" "3.572.0" 544 | "@aws-sdk/types" "3.567.0" 545 | "@aws-sdk/util-format-url" "3.567.0" 546 | "@smithy/middleware-endpoint" "^2.5.1" 547 | "@smithy/protocol-http" "^3.3.0" 548 | "@smithy/smithy-client" "^2.5.1" 549 | "@smithy/types" "^2.12.0" 550 | tslib "^2.6.2" 551 | 552 | "@aws-sdk/signature-v4-multi-region@3.572.0": 553 | version "3.572.0" 554 | resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.572.0.tgz#0d50b39bbe715ae65dd3954a14df09d9c22fb04d" 555 | integrity sha512-FD6FIi8py1ZAR53NjD2VXKDvvQUhhZu7CDUfC9gjAa7JDtv+rJvM9ZuoiQjaDnzzqYxTr4pKqqjLsd6+8BCSWA== 556 | dependencies: 557 | "@aws-sdk/middleware-sdk-s3" "3.572.0" 558 | "@aws-sdk/types" "3.567.0" 559 | "@smithy/protocol-http" "^3.3.0" 560 | "@smithy/signature-v4" "^2.3.0" 561 | "@smithy/types" "^2.12.0" 562 | tslib "^2.6.2" 563 | 564 | "@aws-sdk/token-providers@3.572.0": 565 | version "3.572.0" 566 | resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.572.0.tgz#b63ef02f1700057e9f4532365cd098699b0f8328" 567 | integrity sha512-IkSu8p32tQZhKqwmfLZLGfYwNhsS/HUQBLnDMHJlr9VifmDqlTurcr+DwMCaMimuFhcLeb45vqTymKf/ro/OBw== 568 | dependencies: 569 | "@aws-sdk/types" "3.567.0" 570 | "@smithy/property-provider" "^2.2.0" 571 | "@smithy/shared-ini-file-loader" "^2.4.0" 572 | "@smithy/types" "^2.12.0" 573 | tslib "^2.6.2" 574 | 575 | "@aws-sdk/types@3.567.0", "@aws-sdk/types@^3.222.0": 576 | version "3.567.0" 577 | resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.567.0.tgz#b2dc88e154140b1ff87e94f63c97447bdb1c1738" 578 | integrity sha512-JBznu45cdgQb8+T/Zab7WpBmfEAh77gsk99xuF4biIb2Sw1mdseONdoGDjEJX57a25TzIv/WUJ2oABWumckz1A== 579 | dependencies: 580 | "@smithy/types" "^2.12.0" 581 | tslib "^2.6.2" 582 | 583 | "@aws-sdk/util-arn-parser@3.568.0": 584 | version "3.568.0" 585 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz#6a19a8c6bbaa520b6be1c278b2b8c17875b91527" 586 | integrity sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w== 587 | dependencies: 588 | tslib "^2.6.2" 589 | 590 | "@aws-sdk/util-endpoints@3.572.0": 591 | version "3.572.0" 592 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.572.0.tgz#41a42cbeb6744f5cf0b983c1b9dd958cb0bd66e0" 593 | integrity sha512-AIEC7ItIWBqkJLtqcSd0HG8tvdh3zVwqnKPHNrcfFay0Xonqx3p/qTCDwGosh5CM5hDGzyOSRA5PkacEDBTz9w== 594 | dependencies: 595 | "@aws-sdk/types" "3.567.0" 596 | "@smithy/types" "^2.12.0" 597 | "@smithy/util-endpoints" "^1.2.0" 598 | tslib "^2.6.2" 599 | 600 | "@aws-sdk/util-format-url@3.567.0": 601 | version "3.567.0" 602 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-format-url/-/util-format-url-3.567.0.tgz#823785d1287ea7df011f9fc9fcf06ed896e16591" 603 | integrity sha512-zqfuUrSFVYoT02mWnHaP0I7TRjjS3ZE8GhAVyHRUvVOv/O2dFWopFI9jFtMsT21vns7c9yQ1ACH/Kcn3s9t2EQ== 604 | dependencies: 605 | "@aws-sdk/types" "3.567.0" 606 | "@smithy/querystring-builder" "^2.2.0" 607 | "@smithy/types" "^2.12.0" 608 | tslib "^2.6.2" 609 | 610 | "@aws-sdk/util-locate-window@^3.0.0": 611 | version "3.568.0" 612 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz#2acc4b2236af0d7494f7e517401ba6b3c4af11ff" 613 | integrity sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig== 614 | dependencies: 615 | tslib "^2.6.2" 616 | 617 | "@aws-sdk/util-user-agent-browser@3.567.0": 618 | version "3.567.0" 619 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.567.0.tgz#1ef37a87b28155274d62e31c1ac5c1c043dcd0b3" 620 | integrity sha512-cqP0uXtZ7m7hRysf3fRyJwcY1jCgQTpJy7BHB5VpsE7DXlXHD5+Ur5L42CY7UrRPrB6lc6YGFqaAOs5ghMcLyA== 621 | dependencies: 622 | "@aws-sdk/types" "3.567.0" 623 | "@smithy/types" "^2.12.0" 624 | bowser "^2.11.0" 625 | tslib "^2.6.2" 626 | 627 | "@aws-sdk/util-user-agent-node@3.568.0": 628 | version "3.568.0" 629 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.568.0.tgz#8bfb81b23d4947462f1e49c70187b85e7cd3837a" 630 | integrity sha512-NVoZoLnKF+eXPBvXg+KqixgJkPSrerR6Gqmbjwqbv14Ini+0KNKB0/MXas1mDGvvEgtNkHI/Cb9zlJ3KXpti2A== 631 | dependencies: 632 | "@aws-sdk/types" "3.567.0" 633 | "@smithy/node-config-provider" "^2.3.0" 634 | "@smithy/types" "^2.12.0" 635 | tslib "^2.6.2" 636 | 637 | "@aws-sdk/util-utf8-browser@^3.0.0": 638 | version "3.259.0" 639 | resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" 640 | integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== 641 | dependencies: 642 | tslib "^2.3.1" 643 | 644 | "@aws-sdk/xml-builder@3.567.0": 645 | version "3.567.0" 646 | resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.567.0.tgz#8dad7461955a8f8458593973b31b3457ea5ad887" 647 | integrity sha512-Db25jK9sZdGa7PEQTdm60YauUVbeYGsSEMQOHGP6ifbXfCknqgkPgWV16DqAKJUsbII0xgkJ9LpppkmYal3K/g== 648 | dependencies: 649 | "@smithy/types" "^2.12.0" 650 | tslib "^2.6.2" 651 | 652 | "@babel/runtime@^7.24.5": 653 | version "7.24.5" 654 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.5.tgz#230946857c053a36ccc66e1dd03b17dd0c4ed02c" 655 | integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g== 656 | dependencies: 657 | regenerator-runtime "^0.14.0" 658 | 659 | "@noble/curves@^1.4.0": 660 | version "1.4.0" 661 | resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.0.tgz#f05771ef64da724997f69ee1261b2417a49522d6" 662 | integrity sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg== 663 | dependencies: 664 | "@noble/hashes" "1.4.0" 665 | 666 | "@noble/hashes@1.4.0", "@noble/hashes@^1.4.0": 667 | version "1.4.0" 668 | resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" 669 | integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== 670 | 671 | "@prisma/client@^5.13.0": 672 | version "5.13.0" 673 | resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.13.0.tgz#b9f1d0983d714e982675201d8222a9ecb4bdad4a" 674 | integrity sha512-uYdfpPncbZ/syJyiYBwGZS8Gt1PTNoErNYMuqHDa2r30rNSFtgTA/LXsSk55R7pdRTMi5pHkeP9B14K6nHmwkg== 675 | 676 | "@prisma/debug@5.13.0": 677 | version "5.13.0" 678 | resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-5.13.0.tgz#d88b0f6fafa0c216e20e284ed9fc30f1cbe45786" 679 | integrity sha512-699iqlEvzyCj9ETrXhs8o8wQc/eVW+FigSsHpiskSFydhjVuwTJEfj/nIYqTaWFYuxiWQRfm3r01meuW97SZaQ== 680 | 681 | "@prisma/engines-version@5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b": 682 | version "5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b" 683 | resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b.tgz#a72a4fb83ba1fd01ad45f795aa55168f60d34723" 684 | integrity sha512-AyUuhahTINGn8auyqYdmxsN+qn0mw3eg+uhkp8zwknXYIqoT3bChG4RqNY/nfDkPvzWAPBa9mrDyBeOnWSgO6A== 685 | 686 | "@prisma/engines@5.13.0": 687 | version "5.13.0" 688 | resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.13.0.tgz#8994ebf7b4e35aee7746a8465ec22738379bcab6" 689 | integrity sha512-hIFLm4H1boj6CBZx55P4xKby9jgDTeDG0Jj3iXtwaaHmlD5JmiDkZhh8+DYWkTGchu+rRF36AVROLnk0oaqhHw== 690 | dependencies: 691 | "@prisma/debug" "5.13.0" 692 | "@prisma/engines-version" "5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b" 693 | "@prisma/fetch-engine" "5.13.0" 694 | "@prisma/get-platform" "5.13.0" 695 | 696 | "@prisma/fetch-engine@5.13.0": 697 | version "5.13.0" 698 | resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-5.13.0.tgz#9b6945c7b38bb59e840f8905b20ea7a3d059ca55" 699 | integrity sha512-Yh4W+t6YKyqgcSEB3odBXt7QyVSm0OQlBSldQF2SNXtmOgMX8D7PF/fvH6E6qBCpjB/yeJLy/FfwfFijoHI6sA== 700 | dependencies: 701 | "@prisma/debug" "5.13.0" 702 | "@prisma/engines-version" "5.13.0-23.b9a39a7ee606c28e3455d0fd60e78c3ba82b1a2b" 703 | "@prisma/get-platform" "5.13.0" 704 | 705 | "@prisma/get-platform@5.13.0": 706 | version "5.13.0" 707 | resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-5.13.0.tgz#99ef909a52b9d79b64d72d2d3d8210c4892b6572" 708 | integrity sha512-B/WrQwYTzwr7qCLifQzYOmQhZcFmIFhR81xC45gweInSUn2hTEbfKUPd2keAog+y5WI5xLAFNJ3wkXplvSVkSw== 709 | dependencies: 710 | "@prisma/debug" "5.13.0" 711 | 712 | "@smithy/abort-controller@^2.2.0": 713 | version "2.2.0" 714 | resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.2.0.tgz#18983401a5e2154b5c94057730024a7d14cbcd35" 715 | integrity sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw== 716 | dependencies: 717 | "@smithy/types" "^2.12.0" 718 | tslib "^2.6.2" 719 | 720 | "@smithy/chunked-blob-reader-native@^2.2.0": 721 | version "2.2.0" 722 | resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.2.0.tgz#aff8bddf9fdc1052f885e1b15aa81e4d274e541e" 723 | integrity sha512-VNB5+1oCgX3Fzs072yuRsUoC2N4Zg/LJ11DTxX3+Qu+Paa6AmbIF0E9sc2wthz9Psrk/zcOlTCyuposlIhPjZQ== 724 | dependencies: 725 | "@smithy/util-base64" "^2.3.0" 726 | tslib "^2.6.2" 727 | 728 | "@smithy/chunked-blob-reader@^2.2.0": 729 | version "2.2.0" 730 | resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.2.0.tgz#192c1787bf3f4f87e2763803425f418e6e613e09" 731 | integrity sha512-3GJNvRwXBGdkDZZOGiziVYzDpn4j6zfyULHMDKAGIUo72yHALpE9CbhfQp/XcLNVoc1byfMpn6uW5H2BqPjgaQ== 732 | dependencies: 733 | tslib "^2.6.2" 734 | 735 | "@smithy/config-resolver@^2.2.0": 736 | version "2.2.0" 737 | resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.2.0.tgz#54f40478bb61709b396960a3535866dba5422757" 738 | integrity sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA== 739 | dependencies: 740 | "@smithy/node-config-provider" "^2.3.0" 741 | "@smithy/types" "^2.12.0" 742 | "@smithy/util-config-provider" "^2.3.0" 743 | "@smithy/util-middleware" "^2.2.0" 744 | tslib "^2.6.2" 745 | 746 | "@smithy/core@^1.4.2": 747 | version "1.4.2" 748 | resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.4.2.tgz#1c3ed886d403041ce5bd2d816448420c57baa19c" 749 | integrity sha512-2fek3I0KZHWJlRLvRTqxTEri+qV0GRHrJIoLFuBMZB4EMg4WgeBGfF0X6abnrNYpq55KJ6R4D6x4f0vLnhzinA== 750 | dependencies: 751 | "@smithy/middleware-endpoint" "^2.5.1" 752 | "@smithy/middleware-retry" "^2.3.1" 753 | "@smithy/middleware-serde" "^2.3.0" 754 | "@smithy/protocol-http" "^3.3.0" 755 | "@smithy/smithy-client" "^2.5.1" 756 | "@smithy/types" "^2.12.0" 757 | "@smithy/util-middleware" "^2.2.0" 758 | tslib "^2.6.2" 759 | 760 | "@smithy/credential-provider-imds@^2.3.0": 761 | version "2.3.0" 762 | resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz#326ce401b82e53f3c7ee4862a066136959a06166" 763 | integrity sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w== 764 | dependencies: 765 | "@smithy/node-config-provider" "^2.3.0" 766 | "@smithy/property-provider" "^2.2.0" 767 | "@smithy/types" "^2.12.0" 768 | "@smithy/url-parser" "^2.2.0" 769 | tslib "^2.6.2" 770 | 771 | "@smithy/eventstream-codec@^2.2.0": 772 | version "2.2.0" 773 | resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.2.0.tgz#63d74fa817188995eb55e792a38060b0ede98dc4" 774 | integrity sha512-8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw== 775 | dependencies: 776 | "@aws-crypto/crc32" "3.0.0" 777 | "@smithy/types" "^2.12.0" 778 | "@smithy/util-hex-encoding" "^2.2.0" 779 | tslib "^2.6.2" 780 | 781 | "@smithy/eventstream-serde-browser@^2.2.0": 782 | version "2.2.0" 783 | resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.2.0.tgz#69c93cc0210f04caeb0770856ef88c9a82564e11" 784 | integrity sha512-UaPf8jKbcP71BGiO0CdeLmlg+RhWnlN8ipsMSdwvqBFigl5nil3rHOI/5GE3tfiuX8LvY5Z9N0meuU7Rab7jWw== 785 | dependencies: 786 | "@smithy/eventstream-serde-universal" "^2.2.0" 787 | "@smithy/types" "^2.12.0" 788 | tslib "^2.6.2" 789 | 790 | "@smithy/eventstream-serde-config-resolver@^2.2.0": 791 | version "2.2.0" 792 | resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.2.0.tgz#23c8698ce594a128bcc556153efb7fecf6d04f87" 793 | integrity sha512-RHhbTw/JW3+r8QQH7PrganjNCiuiEZmpi6fYUAetFfPLfZ6EkiA08uN3EFfcyKubXQxOwTeJRZSQmDDCdUshaA== 794 | dependencies: 795 | "@smithy/types" "^2.12.0" 796 | tslib "^2.6.2" 797 | 798 | "@smithy/eventstream-serde-node@^2.2.0": 799 | version "2.2.0" 800 | resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.2.0.tgz#b82870a838b1bd32ad6e0cf33a520191a325508e" 801 | integrity sha512-zpQMtJVqCUMn+pCSFcl9K/RPNtQE0NuMh8sKpCdEHafhwRsjP50Oq/4kMmvxSRy6d8Jslqd8BLvDngrUtmN9iA== 802 | dependencies: 803 | "@smithy/eventstream-serde-universal" "^2.2.0" 804 | "@smithy/types" "^2.12.0" 805 | tslib "^2.6.2" 806 | 807 | "@smithy/eventstream-serde-universal@^2.2.0": 808 | version "2.2.0" 809 | resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.2.0.tgz#a75e330040d5e2ca2ac0d8bccde3e390ac5afd38" 810 | integrity sha512-pvoe/vvJY0mOpuF84BEtyZoYfbehiFj8KKWk1ds2AT0mTLYFVs+7sBJZmioOFdBXKd48lfrx1vumdPdmGlCLxA== 811 | dependencies: 812 | "@smithy/eventstream-codec" "^2.2.0" 813 | "@smithy/types" "^2.12.0" 814 | tslib "^2.6.2" 815 | 816 | "@smithy/fetch-http-handler@^2.5.0": 817 | version "2.5.0" 818 | resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz#0b8e1562807fdf91fe7dd5cde620d7a03ddc10ac" 819 | integrity sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw== 820 | dependencies: 821 | "@smithy/protocol-http" "^3.3.0" 822 | "@smithy/querystring-builder" "^2.2.0" 823 | "@smithy/types" "^2.12.0" 824 | "@smithy/util-base64" "^2.3.0" 825 | tslib "^2.6.2" 826 | 827 | "@smithy/hash-blob-browser@^2.2.0": 828 | version "2.2.0" 829 | resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-2.2.0.tgz#d26db0e88b8fc4b59ee487bd026363ea9b48cf3a" 830 | integrity sha512-SGPoVH8mdXBqrkVCJ1Hd1X7vh1zDXojNN1yZyZTZsCno99hVue9+IYzWDjq/EQDDXxmITB0gBmuyPh8oAZSTcg== 831 | dependencies: 832 | "@smithy/chunked-blob-reader" "^2.2.0" 833 | "@smithy/chunked-blob-reader-native" "^2.2.0" 834 | "@smithy/types" "^2.12.0" 835 | tslib "^2.6.2" 836 | 837 | "@smithy/hash-node@^2.2.0": 838 | version "2.2.0" 839 | resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.2.0.tgz#df29e1e64811be905cb3577703b0e2d0b07fc5cc" 840 | integrity sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g== 841 | dependencies: 842 | "@smithy/types" "^2.12.0" 843 | "@smithy/util-buffer-from" "^2.2.0" 844 | "@smithy/util-utf8" "^2.3.0" 845 | tslib "^2.6.2" 846 | 847 | "@smithy/hash-stream-node@^2.2.0": 848 | version "2.2.0" 849 | resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-2.2.0.tgz#7b341fdc89851af6b98d8c01e47185caf0a4b2d9" 850 | integrity sha512-aT+HCATOSRMGpPI7bi7NSsTNVZE/La9IaxLXWoVAYMxHT5hGO3ZOGEMZQg8A6nNL+pdFGtZQtND1eoY084HgHQ== 851 | dependencies: 852 | "@smithy/types" "^2.12.0" 853 | "@smithy/util-utf8" "^2.3.0" 854 | tslib "^2.6.2" 855 | 856 | "@smithy/invalid-dependency@^2.2.0": 857 | version "2.2.0" 858 | resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz#ee3d8980022cb5edb514ac187d159b3e773640f0" 859 | integrity sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q== 860 | dependencies: 861 | "@smithy/types" "^2.12.0" 862 | tslib "^2.6.2" 863 | 864 | "@smithy/is-array-buffer@^2.2.0": 865 | version "2.2.0" 866 | resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111" 867 | integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA== 868 | dependencies: 869 | tslib "^2.6.2" 870 | 871 | "@smithy/md5-js@^2.2.0": 872 | version "2.2.0" 873 | resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-2.2.0.tgz#033c4c89fe0cbb3f7e99cca3b7b63a2824c98c6d" 874 | integrity sha512-M26XTtt9IIusVMOWEAhIvFIr9jYj4ISPPGJROqw6vXngO3IYJCnVVSMFn4Tx1rUTG5BiKJNg9u2nxmBiZC5IlQ== 875 | dependencies: 876 | "@smithy/types" "^2.12.0" 877 | "@smithy/util-utf8" "^2.3.0" 878 | tslib "^2.6.2" 879 | 880 | "@smithy/middleware-content-length@^2.2.0": 881 | version "2.2.0" 882 | resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz#a82e97bd83d8deab69e07fea4512563bedb9461a" 883 | integrity sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ== 884 | dependencies: 885 | "@smithy/protocol-http" "^3.3.0" 886 | "@smithy/types" "^2.12.0" 887 | tslib "^2.6.2" 888 | 889 | "@smithy/middleware-endpoint@^2.5.1": 890 | version "2.5.1" 891 | resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.1.tgz#1333c58304aff4d843e8ef4b85c8cb88975dd5ad" 892 | integrity sha512-1/8kFp6Fl4OsSIVTWHnNjLnTL8IqpIb/D3sTSczrKFnrE9VMNWxnrRKNvpUHOJ6zpGD5f62TPm7+17ilTJpiCQ== 893 | dependencies: 894 | "@smithy/middleware-serde" "^2.3.0" 895 | "@smithy/node-config-provider" "^2.3.0" 896 | "@smithy/shared-ini-file-loader" "^2.4.0" 897 | "@smithy/types" "^2.12.0" 898 | "@smithy/url-parser" "^2.2.0" 899 | "@smithy/util-middleware" "^2.2.0" 900 | tslib "^2.6.2" 901 | 902 | "@smithy/middleware-retry@^2.3.1": 903 | version "2.3.1" 904 | resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.3.1.tgz#d6fdce94f2f826642c01b4448e97a509c4556ede" 905 | integrity sha512-P2bGufFpFdYcWvqpyqqmalRtwFUNUA8vHjJR5iGqbfR6mp65qKOLcUd6lTr4S9Gn/enynSrSf3p3FVgVAf6bXA== 906 | dependencies: 907 | "@smithy/node-config-provider" "^2.3.0" 908 | "@smithy/protocol-http" "^3.3.0" 909 | "@smithy/service-error-classification" "^2.1.5" 910 | "@smithy/smithy-client" "^2.5.1" 911 | "@smithy/types" "^2.12.0" 912 | "@smithy/util-middleware" "^2.2.0" 913 | "@smithy/util-retry" "^2.2.0" 914 | tslib "^2.6.2" 915 | uuid "^9.0.1" 916 | 917 | "@smithy/middleware-serde@^2.3.0": 918 | version "2.3.0" 919 | resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz#a7615ba646a88b6f695f2d55de13d8158181dd13" 920 | integrity sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q== 921 | dependencies: 922 | "@smithy/types" "^2.12.0" 923 | tslib "^2.6.2" 924 | 925 | "@smithy/middleware-stack@^2.2.0": 926 | version "2.2.0" 927 | resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz#3fb49eae6313f16f6f30fdaf28e11a7321f34d9f" 928 | integrity sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA== 929 | dependencies: 930 | "@smithy/types" "^2.12.0" 931 | tslib "^2.6.2" 932 | 933 | "@smithy/node-config-provider@^2.3.0": 934 | version "2.3.0" 935 | resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz#9fac0c94a14c5b5b8b8fa37f20c310a844ab9922" 936 | integrity sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg== 937 | dependencies: 938 | "@smithy/property-provider" "^2.2.0" 939 | "@smithy/shared-ini-file-loader" "^2.4.0" 940 | "@smithy/types" "^2.12.0" 941 | tslib "^2.6.2" 942 | 943 | "@smithy/node-http-handler@^2.5.0": 944 | version "2.5.0" 945 | resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz#7b5e0565dd23d340380489bd5fe4316d2bed32de" 946 | integrity sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA== 947 | dependencies: 948 | "@smithy/abort-controller" "^2.2.0" 949 | "@smithy/protocol-http" "^3.3.0" 950 | "@smithy/querystring-builder" "^2.2.0" 951 | "@smithy/types" "^2.12.0" 952 | tslib "^2.6.2" 953 | 954 | "@smithy/property-provider@^2.2.0": 955 | version "2.2.0" 956 | resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.2.0.tgz#37e3525a3fa3e11749f86a4f89f0fd7765a6edb0" 957 | integrity sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg== 958 | dependencies: 959 | "@smithy/types" "^2.12.0" 960 | tslib "^2.6.2" 961 | 962 | "@smithy/protocol-http@^3.3.0": 963 | version "3.3.0" 964 | resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.3.0.tgz#a37df7b4bb4960cdda560ce49acfd64c455e4090" 965 | integrity sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ== 966 | dependencies: 967 | "@smithy/types" "^2.12.0" 968 | tslib "^2.6.2" 969 | 970 | "@smithy/querystring-builder@^2.2.0": 971 | version "2.2.0" 972 | resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz#22937e19fcd0aaa1a3e614ef8cb6f8e86756a4ef" 973 | integrity sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A== 974 | dependencies: 975 | "@smithy/types" "^2.12.0" 976 | "@smithy/util-uri-escape" "^2.2.0" 977 | tslib "^2.6.2" 978 | 979 | "@smithy/querystring-parser@^2.2.0": 980 | version "2.2.0" 981 | resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz#24a5633f4b3806ff2888d4c2f4169e105fdffd79" 982 | integrity sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA== 983 | dependencies: 984 | "@smithy/types" "^2.12.0" 985 | tslib "^2.6.2" 986 | 987 | "@smithy/service-error-classification@^2.1.5": 988 | version "2.1.5" 989 | resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz#0568a977cc0db36299d8703a5d8609c1f600c005" 990 | integrity sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ== 991 | dependencies: 992 | "@smithy/types" "^2.12.0" 993 | 994 | "@smithy/shared-ini-file-loader@^2.4.0": 995 | version "2.4.0" 996 | resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz#1636d6eb9bff41e36ac9c60364a37fd2ffcb9947" 997 | integrity sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA== 998 | dependencies: 999 | "@smithy/types" "^2.12.0" 1000 | tslib "^2.6.2" 1001 | 1002 | "@smithy/signature-v4@^2.3.0": 1003 | version "2.3.0" 1004 | resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.3.0.tgz#c30dd4028ae50c607db99459981cce8cdab7a3fd" 1005 | integrity sha512-ui/NlpILU+6HAQBfJX8BBsDXuKSNrjTSuOYArRblcrErwKFutjrCNb/OExfVRyj9+26F9J+ZmfWT+fKWuDrH3Q== 1006 | dependencies: 1007 | "@smithy/is-array-buffer" "^2.2.0" 1008 | "@smithy/types" "^2.12.0" 1009 | "@smithy/util-hex-encoding" "^2.2.0" 1010 | "@smithy/util-middleware" "^2.2.0" 1011 | "@smithy/util-uri-escape" "^2.2.0" 1012 | "@smithy/util-utf8" "^2.3.0" 1013 | tslib "^2.6.2" 1014 | 1015 | "@smithy/smithy-client@^2.5.1": 1016 | version "2.5.1" 1017 | resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.5.1.tgz#0fd2efff09dc65500d260e590f7541f8a387eae3" 1018 | integrity sha512-jrbSQrYCho0yDaaf92qWgd+7nAeap5LtHTI51KXqmpIFCceKU3K9+vIVTUH72bOJngBMqa4kyu1VJhRcSrk/CQ== 1019 | dependencies: 1020 | "@smithy/middleware-endpoint" "^2.5.1" 1021 | "@smithy/middleware-stack" "^2.2.0" 1022 | "@smithy/protocol-http" "^3.3.0" 1023 | "@smithy/types" "^2.12.0" 1024 | "@smithy/util-stream" "^2.2.0" 1025 | tslib "^2.6.2" 1026 | 1027 | "@smithy/types@^2.12.0": 1028 | version "2.12.0" 1029 | resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.12.0.tgz#c44845f8ba07e5e8c88eda5aed7e6a0c462da041" 1030 | integrity sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw== 1031 | dependencies: 1032 | tslib "^2.6.2" 1033 | 1034 | "@smithy/url-parser@^2.2.0": 1035 | version "2.2.0" 1036 | resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.2.0.tgz#6fcda6116391a4f61fef5580eb540e128359b3c0" 1037 | integrity sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ== 1038 | dependencies: 1039 | "@smithy/querystring-parser" "^2.2.0" 1040 | "@smithy/types" "^2.12.0" 1041 | tslib "^2.6.2" 1042 | 1043 | "@smithy/util-base64@^2.3.0": 1044 | version "2.3.0" 1045 | resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.3.0.tgz#312dbb4d73fb94249c7261aee52de4195c2dd8e2" 1046 | integrity sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw== 1047 | dependencies: 1048 | "@smithy/util-buffer-from" "^2.2.0" 1049 | "@smithy/util-utf8" "^2.3.0" 1050 | tslib "^2.6.2" 1051 | 1052 | "@smithy/util-body-length-browser@^2.2.0": 1053 | version "2.2.0" 1054 | resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz#25620645c6b62b42594ef4a93b66e6ab70e27d2c" 1055 | integrity sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w== 1056 | dependencies: 1057 | tslib "^2.6.2" 1058 | 1059 | "@smithy/util-body-length-node@^2.3.0": 1060 | version "2.3.0" 1061 | resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz#d065a9b5e305ff899536777bbfe075cdc980136f" 1062 | integrity sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw== 1063 | dependencies: 1064 | tslib "^2.6.2" 1065 | 1066 | "@smithy/util-buffer-from@^2.2.0": 1067 | version "2.2.0" 1068 | resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b" 1069 | integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA== 1070 | dependencies: 1071 | "@smithy/is-array-buffer" "^2.2.0" 1072 | tslib "^2.6.2" 1073 | 1074 | "@smithy/util-config-provider@^2.3.0": 1075 | version "2.3.0" 1076 | resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz#bc79f99562d12a1f8423100ca662a6fb07cde943" 1077 | integrity sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ== 1078 | dependencies: 1079 | tslib "^2.6.2" 1080 | 1081 | "@smithy/util-defaults-mode-browser@^2.2.1": 1082 | version "2.2.1" 1083 | resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.1.tgz#9db31416daf575d2963c502e0528cfe8055f0c4e" 1084 | integrity sha512-RtKW+8j8skk17SYowucwRUjeh4mCtnm5odCL0Lm2NtHQBsYKrNW0od9Rhopu9wF1gHMfHeWF7i90NwBz/U22Kw== 1085 | dependencies: 1086 | "@smithy/property-provider" "^2.2.0" 1087 | "@smithy/smithy-client" "^2.5.1" 1088 | "@smithy/types" "^2.12.0" 1089 | bowser "^2.11.0" 1090 | tslib "^2.6.2" 1091 | 1092 | "@smithy/util-defaults-mode-node@^2.3.1": 1093 | version "2.3.1" 1094 | resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.1.tgz#4613210a3d107aadb3f85bd80cb71c796dd8bf0a" 1095 | integrity sha512-vkMXHQ0BcLFysBMWgSBLSk3+leMpFSyyFj8zQtv5ZyUBx8/owVh1/pPEkzmW/DR/Gy/5c8vjLDD9gZjXNKbrpA== 1096 | dependencies: 1097 | "@smithy/config-resolver" "^2.2.0" 1098 | "@smithy/credential-provider-imds" "^2.3.0" 1099 | "@smithy/node-config-provider" "^2.3.0" 1100 | "@smithy/property-provider" "^2.2.0" 1101 | "@smithy/smithy-client" "^2.5.1" 1102 | "@smithy/types" "^2.12.0" 1103 | tslib "^2.6.2" 1104 | 1105 | "@smithy/util-endpoints@^1.2.0": 1106 | version "1.2.0" 1107 | resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.2.0.tgz#b8b805f47e8044c158372f69b88337703117665d" 1108 | integrity sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ== 1109 | dependencies: 1110 | "@smithy/node-config-provider" "^2.3.0" 1111 | "@smithy/types" "^2.12.0" 1112 | tslib "^2.6.2" 1113 | 1114 | "@smithy/util-hex-encoding@^2.2.0": 1115 | version "2.2.0" 1116 | resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz#87edb7c88c2f422cfca4bb21f1394ae9602c5085" 1117 | integrity sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ== 1118 | dependencies: 1119 | tslib "^2.6.2" 1120 | 1121 | "@smithy/util-middleware@^2.2.0": 1122 | version "2.2.0" 1123 | resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.2.0.tgz#80cfad40f6cca9ffe42a5899b5cb6abd53a50006" 1124 | integrity sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw== 1125 | dependencies: 1126 | "@smithy/types" "^2.12.0" 1127 | tslib "^2.6.2" 1128 | 1129 | "@smithy/util-retry@^2.2.0": 1130 | version "2.2.0" 1131 | resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.2.0.tgz#e8e019537ab47ba6b2e87e723ec51ee223422d85" 1132 | integrity sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g== 1133 | dependencies: 1134 | "@smithy/service-error-classification" "^2.1.5" 1135 | "@smithy/types" "^2.12.0" 1136 | tslib "^2.6.2" 1137 | 1138 | "@smithy/util-stream@^2.2.0": 1139 | version "2.2.0" 1140 | resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.2.0.tgz#b1279e417992a0f74afa78d7501658f174ed7370" 1141 | integrity sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA== 1142 | dependencies: 1143 | "@smithy/fetch-http-handler" "^2.5.0" 1144 | "@smithy/node-http-handler" "^2.5.0" 1145 | "@smithy/types" "^2.12.0" 1146 | "@smithy/util-base64" "^2.3.0" 1147 | "@smithy/util-buffer-from" "^2.2.0" 1148 | "@smithy/util-hex-encoding" "^2.2.0" 1149 | "@smithy/util-utf8" "^2.3.0" 1150 | tslib "^2.6.2" 1151 | 1152 | "@smithy/util-uri-escape@^2.2.0": 1153 | version "2.2.0" 1154 | resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz#56f5764051a33b67bc93fdd2a869f971b0635406" 1155 | integrity sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA== 1156 | dependencies: 1157 | tslib "^2.6.2" 1158 | 1159 | "@smithy/util-utf8@^2.3.0": 1160 | version "2.3.0" 1161 | resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5" 1162 | integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A== 1163 | dependencies: 1164 | "@smithy/util-buffer-from" "^2.2.0" 1165 | tslib "^2.6.2" 1166 | 1167 | "@smithy/util-waiter@^2.2.0": 1168 | version "2.2.0" 1169 | resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-2.2.0.tgz#d11baf50637bfaadb9641d6ca1619da413dd2612" 1170 | integrity sha512-IHk53BVw6MPMi2Gsn+hCng8rFA3ZmR3Rk7GllxDUW9qFJl/hiSvskn7XldkECapQVkIg/1dHpMAxI9xSTaLLSA== 1171 | dependencies: 1172 | "@smithy/abort-controller" "^2.2.0" 1173 | "@smithy/types" "^2.12.0" 1174 | tslib "^2.6.2" 1175 | 1176 | "@solana/buffer-layout@^4.0.1": 1177 | version "4.0.1" 1178 | resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" 1179 | integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== 1180 | dependencies: 1181 | buffer "~6.0.3" 1182 | 1183 | "@solana/web3.js@^1.91.8": 1184 | version "1.91.8" 1185 | resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.91.8.tgz#0d5eb69626a92c391b53e15bfbb0bad3f6858e51" 1186 | integrity sha512-USa6OS1jbh8zOapRJ/CBZImZ8Xb7AJjROZl5adql9TpOoBN9BUzyyouS5oPuZHft7S7eB8uJPuXWYjMi6BHgOw== 1187 | dependencies: 1188 | "@babel/runtime" "^7.24.5" 1189 | "@noble/curves" "^1.4.0" 1190 | "@noble/hashes" "^1.4.0" 1191 | "@solana/buffer-layout" "^4.0.1" 1192 | agentkeepalive "^4.5.0" 1193 | bigint-buffer "^1.1.5" 1194 | bn.js "^5.2.1" 1195 | borsh "^0.7.0" 1196 | bs58 "^4.0.1" 1197 | buffer "6.0.3" 1198 | fast-stable-stringify "^1.0.0" 1199 | jayson "^4.1.0" 1200 | node-fetch "^2.7.0" 1201 | rpc-websockets "^7.11.0" 1202 | superstruct "^0.14.2" 1203 | 1204 | "@types/body-parser@*": 1205 | version "1.19.5" 1206 | resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" 1207 | integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== 1208 | dependencies: 1209 | "@types/connect" "*" 1210 | "@types/node" "*" 1211 | 1212 | "@types/connect@*", "@types/connect@^3.4.33": 1213 | version "3.4.38" 1214 | resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" 1215 | integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== 1216 | dependencies: 1217 | "@types/node" "*" 1218 | 1219 | "@types/cors@^2.8.17": 1220 | version "2.8.17" 1221 | resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.17.tgz#5d718a5e494a8166f569d986794e49c48b216b2b" 1222 | integrity sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA== 1223 | dependencies: 1224 | "@types/node" "*" 1225 | 1226 | "@types/express-serve-static-core@^4.17.33": 1227 | version "4.19.0" 1228 | resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz#3ae8ab3767d98d0b682cda063c3339e1e86ccfaa" 1229 | integrity sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ== 1230 | dependencies: 1231 | "@types/node" "*" 1232 | "@types/qs" "*" 1233 | "@types/range-parser" "*" 1234 | "@types/send" "*" 1235 | 1236 | "@types/express@^4.17.21": 1237 | version "4.17.21" 1238 | resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" 1239 | integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== 1240 | dependencies: 1241 | "@types/body-parser" "*" 1242 | "@types/express-serve-static-core" "^4.17.33" 1243 | "@types/qs" "*" 1244 | "@types/serve-static" "*" 1245 | 1246 | "@types/http-errors@*": 1247 | version "2.0.4" 1248 | resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" 1249 | integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== 1250 | 1251 | "@types/jsonwebtoken@^9.0.6": 1252 | version "9.0.6" 1253 | resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.6.tgz#d1af3544d99ad992fb6681bbe60676e06b032bd3" 1254 | integrity sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw== 1255 | dependencies: 1256 | "@types/node" "*" 1257 | 1258 | "@types/mime@^1": 1259 | version "1.3.5" 1260 | resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" 1261 | integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== 1262 | 1263 | "@types/node@*": 1264 | version "20.12.11" 1265 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.11.tgz#c4ef00d3507000d17690643278a60dc55a9dc9be" 1266 | integrity sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw== 1267 | dependencies: 1268 | undici-types "~5.26.4" 1269 | 1270 | "@types/node@^12.12.54": 1271 | version "12.20.55" 1272 | resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" 1273 | integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== 1274 | 1275 | "@types/qs@*": 1276 | version "6.9.15" 1277 | resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" 1278 | integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== 1279 | 1280 | "@types/range-parser@*": 1281 | version "1.2.7" 1282 | resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" 1283 | integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== 1284 | 1285 | "@types/send@*": 1286 | version "0.17.4" 1287 | resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" 1288 | integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== 1289 | dependencies: 1290 | "@types/mime" "^1" 1291 | "@types/node" "*" 1292 | 1293 | "@types/serve-static@*": 1294 | version "1.15.7" 1295 | resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" 1296 | integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== 1297 | dependencies: 1298 | "@types/http-errors" "*" 1299 | "@types/node" "*" 1300 | "@types/send" "*" 1301 | 1302 | "@types/ws@^7.4.4": 1303 | version "7.4.7" 1304 | resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" 1305 | integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== 1306 | dependencies: 1307 | "@types/node" "*" 1308 | 1309 | JSONStream@^1.3.5: 1310 | version "1.3.5" 1311 | resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" 1312 | integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== 1313 | dependencies: 1314 | jsonparse "^1.2.0" 1315 | through ">=2.2.7 <3" 1316 | 1317 | accepts@~1.3.8: 1318 | version "1.3.8" 1319 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" 1320 | integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== 1321 | dependencies: 1322 | mime-types "~2.1.34" 1323 | negotiator "0.6.3" 1324 | 1325 | agentkeepalive@^4.5.0: 1326 | version "4.5.0" 1327 | resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" 1328 | integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== 1329 | dependencies: 1330 | humanize-ms "^1.2.1" 1331 | 1332 | array-flatten@1.1.1: 1333 | version "1.1.1" 1334 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 1335 | integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== 1336 | 1337 | base-x@^3.0.2: 1338 | version "3.0.9" 1339 | resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" 1340 | integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== 1341 | dependencies: 1342 | safe-buffer "^5.0.1" 1343 | 1344 | base-x@^4.0.0: 1345 | version "4.0.0" 1346 | resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" 1347 | integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw== 1348 | 1349 | base64-js@^1.3.1: 1350 | version "1.5.1" 1351 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 1352 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 1353 | 1354 | bigint-buffer@^1.1.5: 1355 | version "1.1.5" 1356 | resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" 1357 | integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== 1358 | dependencies: 1359 | bindings "^1.3.0" 1360 | 1361 | bindings@^1.3.0: 1362 | version "1.5.0" 1363 | resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" 1364 | integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== 1365 | dependencies: 1366 | file-uri-to-path "1.0.0" 1367 | 1368 | bn.js@^5.2.0, bn.js@^5.2.1: 1369 | version "5.2.1" 1370 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" 1371 | integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== 1372 | 1373 | body-parser@1.20.2: 1374 | version "1.20.2" 1375 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" 1376 | integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== 1377 | dependencies: 1378 | bytes "3.1.2" 1379 | content-type "~1.0.5" 1380 | debug "2.6.9" 1381 | depd "2.0.0" 1382 | destroy "1.2.0" 1383 | http-errors "2.0.0" 1384 | iconv-lite "0.4.24" 1385 | on-finished "2.4.1" 1386 | qs "6.11.0" 1387 | raw-body "2.5.2" 1388 | type-is "~1.6.18" 1389 | unpipe "1.0.0" 1390 | 1391 | borsh@^0.7.0: 1392 | version "0.7.0" 1393 | resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" 1394 | integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== 1395 | dependencies: 1396 | bn.js "^5.2.0" 1397 | bs58 "^4.0.0" 1398 | text-encoding-utf-8 "^1.0.2" 1399 | 1400 | bowser@^2.11.0: 1401 | version "2.11.0" 1402 | resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" 1403 | integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== 1404 | 1405 | bs58@^4.0.0, bs58@^4.0.1: 1406 | version "4.0.1" 1407 | resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" 1408 | integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== 1409 | dependencies: 1410 | base-x "^3.0.2" 1411 | 1412 | bs58@^5.0.0: 1413 | version "5.0.0" 1414 | resolved "https://registry.yarnpkg.com/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" 1415 | integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== 1416 | dependencies: 1417 | base-x "^4.0.0" 1418 | 1419 | buffer-equal-constant-time@1.0.1: 1420 | version "1.0.1" 1421 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 1422 | integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== 1423 | 1424 | buffer@6.0.3, buffer@~6.0.3: 1425 | version "6.0.3" 1426 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" 1427 | integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== 1428 | dependencies: 1429 | base64-js "^1.3.1" 1430 | ieee754 "^1.2.1" 1431 | 1432 | bufferutil@^4.0.1: 1433 | version "4.0.8" 1434 | resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea" 1435 | integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== 1436 | dependencies: 1437 | node-gyp-build "^4.3.0" 1438 | 1439 | bytes@3.1.2: 1440 | version "3.1.2" 1441 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" 1442 | integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== 1443 | 1444 | call-bind@^1.0.7: 1445 | version "1.0.7" 1446 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" 1447 | integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== 1448 | dependencies: 1449 | es-define-property "^1.0.0" 1450 | es-errors "^1.3.0" 1451 | function-bind "^1.1.2" 1452 | get-intrinsic "^1.2.4" 1453 | set-function-length "^1.2.1" 1454 | 1455 | commander@^2.20.3: 1456 | version "2.20.3" 1457 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 1458 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 1459 | 1460 | content-disposition@0.5.4: 1461 | version "0.5.4" 1462 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" 1463 | integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== 1464 | dependencies: 1465 | safe-buffer "5.2.1" 1466 | 1467 | content-type@~1.0.4, content-type@~1.0.5: 1468 | version "1.0.5" 1469 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" 1470 | integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== 1471 | 1472 | cookie-signature@1.0.6: 1473 | version "1.0.6" 1474 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 1475 | integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== 1476 | 1477 | cookie@0.6.0: 1478 | version "0.6.0" 1479 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" 1480 | integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== 1481 | 1482 | cors@^2.8.5: 1483 | version "2.8.5" 1484 | resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" 1485 | integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== 1486 | dependencies: 1487 | object-assign "^4" 1488 | vary "^1" 1489 | 1490 | debug@2.6.9: 1491 | version "2.6.9" 1492 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 1493 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 1494 | dependencies: 1495 | ms "2.0.0" 1496 | 1497 | define-data-property@^1.1.4: 1498 | version "1.1.4" 1499 | resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" 1500 | integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== 1501 | dependencies: 1502 | es-define-property "^1.0.0" 1503 | es-errors "^1.3.0" 1504 | gopd "^1.0.1" 1505 | 1506 | delay@^5.0.0: 1507 | version "5.0.0" 1508 | resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" 1509 | integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== 1510 | 1511 | depd@2.0.0: 1512 | version "2.0.0" 1513 | resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 1514 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 1515 | 1516 | destroy@1.2.0: 1517 | version "1.2.0" 1518 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" 1519 | integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== 1520 | 1521 | ecdsa-sig-formatter@1.0.11: 1522 | version "1.0.11" 1523 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" 1524 | integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== 1525 | dependencies: 1526 | safe-buffer "^5.0.1" 1527 | 1528 | ee-first@1.1.1: 1529 | version "1.1.1" 1530 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 1531 | integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== 1532 | 1533 | encodeurl@~1.0.2: 1534 | version "1.0.2" 1535 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 1536 | integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== 1537 | 1538 | es-define-property@^1.0.0: 1539 | version "1.0.0" 1540 | resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" 1541 | integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== 1542 | dependencies: 1543 | get-intrinsic "^1.2.4" 1544 | 1545 | es-errors@^1.3.0: 1546 | version "1.3.0" 1547 | resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" 1548 | integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== 1549 | 1550 | es6-promise@^4.0.3: 1551 | version "4.2.8" 1552 | resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" 1553 | integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== 1554 | 1555 | es6-promisify@^5.0.0: 1556 | version "5.0.0" 1557 | resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" 1558 | integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== 1559 | dependencies: 1560 | es6-promise "^4.0.3" 1561 | 1562 | escape-html@~1.0.3: 1563 | version "1.0.3" 1564 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 1565 | integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== 1566 | 1567 | etag@~1.8.1: 1568 | version "1.8.1" 1569 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 1570 | integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== 1571 | 1572 | eventemitter3@^4.0.7: 1573 | version "4.0.7" 1574 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" 1575 | integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== 1576 | 1577 | express@^4.19.2: 1578 | version "4.19.2" 1579 | resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" 1580 | integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== 1581 | dependencies: 1582 | accepts "~1.3.8" 1583 | array-flatten "1.1.1" 1584 | body-parser "1.20.2" 1585 | content-disposition "0.5.4" 1586 | content-type "~1.0.4" 1587 | cookie "0.6.0" 1588 | cookie-signature "1.0.6" 1589 | debug "2.6.9" 1590 | depd "2.0.0" 1591 | encodeurl "~1.0.2" 1592 | escape-html "~1.0.3" 1593 | etag "~1.8.1" 1594 | finalhandler "1.2.0" 1595 | fresh "0.5.2" 1596 | http-errors "2.0.0" 1597 | merge-descriptors "1.0.1" 1598 | methods "~1.1.2" 1599 | on-finished "2.4.1" 1600 | parseurl "~1.3.3" 1601 | path-to-regexp "0.1.7" 1602 | proxy-addr "~2.0.7" 1603 | qs "6.11.0" 1604 | range-parser "~1.2.1" 1605 | safe-buffer "5.2.1" 1606 | send "0.18.0" 1607 | serve-static "1.15.0" 1608 | setprototypeof "1.2.0" 1609 | statuses "2.0.1" 1610 | type-is "~1.6.18" 1611 | utils-merge "1.0.1" 1612 | vary "~1.1.2" 1613 | 1614 | eyes@^0.1.8: 1615 | version "0.1.8" 1616 | resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" 1617 | integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== 1618 | 1619 | fast-stable-stringify@^1.0.0: 1620 | version "1.0.0" 1621 | resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" 1622 | integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== 1623 | 1624 | fast-xml-parser@4.2.5: 1625 | version "4.2.5" 1626 | resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f" 1627 | integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g== 1628 | dependencies: 1629 | strnum "^1.0.5" 1630 | 1631 | file-uri-to-path@1.0.0: 1632 | version "1.0.0" 1633 | resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" 1634 | integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== 1635 | 1636 | finalhandler@1.2.0: 1637 | version "1.2.0" 1638 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" 1639 | integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== 1640 | dependencies: 1641 | debug "2.6.9" 1642 | encodeurl "~1.0.2" 1643 | escape-html "~1.0.3" 1644 | on-finished "2.4.1" 1645 | parseurl "~1.3.3" 1646 | statuses "2.0.1" 1647 | unpipe "~1.0.0" 1648 | 1649 | forwarded@0.2.0: 1650 | version "0.2.0" 1651 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" 1652 | integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== 1653 | 1654 | fresh@0.5.2: 1655 | version "0.5.2" 1656 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 1657 | integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== 1658 | 1659 | function-bind@^1.1.2: 1660 | version "1.1.2" 1661 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" 1662 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== 1663 | 1664 | get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: 1665 | version "1.2.4" 1666 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" 1667 | integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== 1668 | dependencies: 1669 | es-errors "^1.3.0" 1670 | function-bind "^1.1.2" 1671 | has-proto "^1.0.1" 1672 | has-symbols "^1.0.3" 1673 | hasown "^2.0.0" 1674 | 1675 | gopd@^1.0.1: 1676 | version "1.0.1" 1677 | resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" 1678 | integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== 1679 | dependencies: 1680 | get-intrinsic "^1.1.3" 1681 | 1682 | has-property-descriptors@^1.0.2: 1683 | version "1.0.2" 1684 | resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" 1685 | integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== 1686 | dependencies: 1687 | es-define-property "^1.0.0" 1688 | 1689 | has-proto@^1.0.1: 1690 | version "1.0.3" 1691 | resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" 1692 | integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== 1693 | 1694 | has-symbols@^1.0.3: 1695 | version "1.0.3" 1696 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" 1697 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 1698 | 1699 | hasown@^2.0.0: 1700 | version "2.0.2" 1701 | resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" 1702 | integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== 1703 | dependencies: 1704 | function-bind "^1.1.2" 1705 | 1706 | http-errors@2.0.0: 1707 | version "2.0.0" 1708 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" 1709 | integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== 1710 | dependencies: 1711 | depd "2.0.0" 1712 | inherits "2.0.4" 1713 | setprototypeof "1.2.0" 1714 | statuses "2.0.1" 1715 | toidentifier "1.0.1" 1716 | 1717 | humanize-ms@^1.2.1: 1718 | version "1.2.1" 1719 | resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" 1720 | integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== 1721 | dependencies: 1722 | ms "^2.0.0" 1723 | 1724 | iconv-lite@0.4.24: 1725 | version "0.4.24" 1726 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1727 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 1728 | dependencies: 1729 | safer-buffer ">= 2.1.2 < 3" 1730 | 1731 | ieee754@^1.2.1: 1732 | version "1.2.1" 1733 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 1734 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 1735 | 1736 | inherits@2.0.4: 1737 | version "2.0.4" 1738 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1739 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1740 | 1741 | ipaddr.js@1.9.1: 1742 | version "1.9.1" 1743 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 1744 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 1745 | 1746 | isomorphic-ws@^4.0.1: 1747 | version "4.0.1" 1748 | resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" 1749 | integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== 1750 | 1751 | jayson@^4.1.0: 1752 | version "4.1.0" 1753 | resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.1.0.tgz#60dc946a85197317f2b1439d672a8b0a99cea2f9" 1754 | integrity sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A== 1755 | dependencies: 1756 | "@types/connect" "^3.4.33" 1757 | "@types/node" "^12.12.54" 1758 | "@types/ws" "^7.4.4" 1759 | JSONStream "^1.3.5" 1760 | commander "^2.20.3" 1761 | delay "^5.0.0" 1762 | es6-promisify "^5.0.0" 1763 | eyes "^0.1.8" 1764 | isomorphic-ws "^4.0.1" 1765 | json-stringify-safe "^5.0.1" 1766 | uuid "^8.3.2" 1767 | ws "^7.4.5" 1768 | 1769 | json-stringify-safe@^5.0.1: 1770 | version "5.0.1" 1771 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 1772 | integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== 1773 | 1774 | jsonparse@^1.2.0: 1775 | version "1.3.1" 1776 | resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" 1777 | integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== 1778 | 1779 | jsonwebtoken@^9.0.2: 1780 | version "9.0.2" 1781 | resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" 1782 | integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== 1783 | dependencies: 1784 | jws "^3.2.2" 1785 | lodash.includes "^4.3.0" 1786 | lodash.isboolean "^3.0.3" 1787 | lodash.isinteger "^4.0.4" 1788 | lodash.isnumber "^3.0.3" 1789 | lodash.isplainobject "^4.0.6" 1790 | lodash.isstring "^4.0.1" 1791 | lodash.once "^4.0.0" 1792 | ms "^2.1.1" 1793 | semver "^7.5.4" 1794 | 1795 | jwa@^1.4.1: 1796 | version "1.4.1" 1797 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" 1798 | integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== 1799 | dependencies: 1800 | buffer-equal-constant-time "1.0.1" 1801 | ecdsa-sig-formatter "1.0.11" 1802 | safe-buffer "^5.0.1" 1803 | 1804 | jws@^3.2.2: 1805 | version "3.2.2" 1806 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" 1807 | integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== 1808 | dependencies: 1809 | jwa "^1.4.1" 1810 | safe-buffer "^5.0.1" 1811 | 1812 | lodash.includes@^4.3.0: 1813 | version "4.3.0" 1814 | resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" 1815 | integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== 1816 | 1817 | lodash.isboolean@^3.0.3: 1818 | version "3.0.3" 1819 | resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" 1820 | integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== 1821 | 1822 | lodash.isinteger@^4.0.4: 1823 | version "4.0.4" 1824 | resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" 1825 | integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== 1826 | 1827 | lodash.isnumber@^3.0.3: 1828 | version "3.0.3" 1829 | resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" 1830 | integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== 1831 | 1832 | lodash.isplainobject@^4.0.6: 1833 | version "4.0.6" 1834 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" 1835 | integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== 1836 | 1837 | lodash.isstring@^4.0.1: 1838 | version "4.0.1" 1839 | resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" 1840 | integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== 1841 | 1842 | lodash.once@^4.0.0: 1843 | version "4.1.1" 1844 | resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" 1845 | integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== 1846 | 1847 | media-typer@0.3.0: 1848 | version "0.3.0" 1849 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 1850 | integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== 1851 | 1852 | merge-descriptors@1.0.1: 1853 | version "1.0.1" 1854 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 1855 | integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== 1856 | 1857 | methods@~1.1.2: 1858 | version "1.1.2" 1859 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 1860 | integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== 1861 | 1862 | mime-db@1.52.0: 1863 | version "1.52.0" 1864 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 1865 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 1866 | 1867 | mime-types@~2.1.24, mime-types@~2.1.34: 1868 | version "2.1.35" 1869 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 1870 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 1871 | dependencies: 1872 | mime-db "1.52.0" 1873 | 1874 | mime@1.6.0: 1875 | version "1.6.0" 1876 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 1877 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 1878 | 1879 | ms@2.0.0: 1880 | version "2.0.0" 1881 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1882 | integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== 1883 | 1884 | ms@2.1.3, ms@^2.0.0, ms@^2.1.1: 1885 | version "2.1.3" 1886 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1887 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1888 | 1889 | negotiator@0.6.3: 1890 | version "0.6.3" 1891 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" 1892 | integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== 1893 | 1894 | node-fetch@^2.7.0: 1895 | version "2.7.0" 1896 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" 1897 | integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== 1898 | dependencies: 1899 | whatwg-url "^5.0.0" 1900 | 1901 | node-gyp-build@^4.3.0: 1902 | version "4.8.1" 1903 | resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5" 1904 | integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== 1905 | 1906 | object-assign@^4: 1907 | version "4.1.1" 1908 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1909 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== 1910 | 1911 | object-inspect@^1.13.1: 1912 | version "1.13.1" 1913 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" 1914 | integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== 1915 | 1916 | on-finished@2.4.1: 1917 | version "2.4.1" 1918 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" 1919 | integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== 1920 | dependencies: 1921 | ee-first "1.1.1" 1922 | 1923 | parseurl@~1.3.3: 1924 | version "1.3.3" 1925 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 1926 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 1927 | 1928 | path-to-regexp@0.1.7: 1929 | version "0.1.7" 1930 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 1931 | integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== 1932 | 1933 | prisma@^5.13.0: 1934 | version "5.13.0" 1935 | resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.13.0.tgz#1f06e20ccfb6038ad68869e6eacd3b346f9d0851" 1936 | integrity sha512-kGtcJaElNRAdAGsCNykFSZ7dBKpL14Cbs+VaQ8cECxQlRPDjBlMHNFYeYt0SKovAVy2Y65JXQwB3A5+zIQwnTg== 1937 | dependencies: 1938 | "@prisma/engines" "5.13.0" 1939 | 1940 | proxy-addr@~2.0.7: 1941 | version "2.0.7" 1942 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" 1943 | integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== 1944 | dependencies: 1945 | forwarded "0.2.0" 1946 | ipaddr.js "1.9.1" 1947 | 1948 | qs@6.11.0: 1949 | version "6.11.0" 1950 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" 1951 | integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== 1952 | dependencies: 1953 | side-channel "^1.0.4" 1954 | 1955 | range-parser@~1.2.1: 1956 | version "1.2.1" 1957 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 1958 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 1959 | 1960 | raw-body@2.5.2: 1961 | version "2.5.2" 1962 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" 1963 | integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== 1964 | dependencies: 1965 | bytes "3.1.2" 1966 | http-errors "2.0.0" 1967 | iconv-lite "0.4.24" 1968 | unpipe "1.0.0" 1969 | 1970 | regenerator-runtime@^0.14.0: 1971 | version "0.14.1" 1972 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" 1973 | integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== 1974 | 1975 | rpc-websockets@^7.11.0: 1976 | version "7.11.0" 1977 | resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.11.0.tgz#05451975963a7d1a4cf36d54e200bfc4402a56d7" 1978 | integrity sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w== 1979 | dependencies: 1980 | eventemitter3 "^4.0.7" 1981 | uuid "^8.3.2" 1982 | ws "^8.5.0" 1983 | optionalDependencies: 1984 | bufferutil "^4.0.1" 1985 | utf-8-validate "^5.0.2" 1986 | 1987 | safe-buffer@5.2.1, safe-buffer@^5.0.1: 1988 | version "5.2.1" 1989 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1990 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1991 | 1992 | "safer-buffer@>= 2.1.2 < 3": 1993 | version "2.1.2" 1994 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1995 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1996 | 1997 | semver@^7.5.4: 1998 | version "7.6.2" 1999 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" 2000 | integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== 2001 | 2002 | send@0.18.0: 2003 | version "0.18.0" 2004 | resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" 2005 | integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== 2006 | dependencies: 2007 | debug "2.6.9" 2008 | depd "2.0.0" 2009 | destroy "1.2.0" 2010 | encodeurl "~1.0.2" 2011 | escape-html "~1.0.3" 2012 | etag "~1.8.1" 2013 | fresh "0.5.2" 2014 | http-errors "2.0.0" 2015 | mime "1.6.0" 2016 | ms "2.1.3" 2017 | on-finished "2.4.1" 2018 | range-parser "~1.2.1" 2019 | statuses "2.0.1" 2020 | 2021 | serve-static@1.15.0: 2022 | version "1.15.0" 2023 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" 2024 | integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== 2025 | dependencies: 2026 | encodeurl "~1.0.2" 2027 | escape-html "~1.0.3" 2028 | parseurl "~1.3.3" 2029 | send "0.18.0" 2030 | 2031 | set-function-length@^1.2.1: 2032 | version "1.2.2" 2033 | resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" 2034 | integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== 2035 | dependencies: 2036 | define-data-property "^1.1.4" 2037 | es-errors "^1.3.0" 2038 | function-bind "^1.1.2" 2039 | get-intrinsic "^1.2.4" 2040 | gopd "^1.0.1" 2041 | has-property-descriptors "^1.0.2" 2042 | 2043 | setprototypeof@1.2.0: 2044 | version "1.2.0" 2045 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" 2046 | integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== 2047 | 2048 | side-channel@^1.0.4: 2049 | version "1.0.6" 2050 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" 2051 | integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== 2052 | dependencies: 2053 | call-bind "^1.0.7" 2054 | es-errors "^1.3.0" 2055 | get-intrinsic "^1.2.4" 2056 | object-inspect "^1.13.1" 2057 | 2058 | statuses@2.0.1: 2059 | version "2.0.1" 2060 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" 2061 | integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== 2062 | 2063 | strnum@^1.0.5: 2064 | version "1.0.5" 2065 | resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" 2066 | integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== 2067 | 2068 | superstruct@^0.14.2: 2069 | version "0.14.2" 2070 | resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" 2071 | integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== 2072 | 2073 | text-encoding-utf-8@^1.0.2: 2074 | version "1.0.2" 2075 | resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" 2076 | integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== 2077 | 2078 | "through@>=2.2.7 <3": 2079 | version "2.3.8" 2080 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 2081 | integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== 2082 | 2083 | toidentifier@1.0.1: 2084 | version "1.0.1" 2085 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" 2086 | integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== 2087 | 2088 | tr46@~0.0.3: 2089 | version "0.0.3" 2090 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" 2091 | integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== 2092 | 2093 | tslib@^1.11.1: 2094 | version "1.14.1" 2095 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 2096 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 2097 | 2098 | tslib@^2.3.1, tslib@^2.6.2: 2099 | version "2.6.2" 2100 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" 2101 | integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== 2102 | 2103 | tweetnacl@^1.0.3: 2104 | version "1.0.3" 2105 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" 2106 | integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== 2107 | 2108 | type-is@~1.6.18: 2109 | version "1.6.18" 2110 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 2111 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 2112 | dependencies: 2113 | media-typer "0.3.0" 2114 | mime-types "~2.1.24" 2115 | 2116 | undici-types@~5.26.4: 2117 | version "5.26.5" 2118 | resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" 2119 | integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== 2120 | 2121 | unpipe@1.0.0, unpipe@~1.0.0: 2122 | version "1.0.0" 2123 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 2124 | integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== 2125 | 2126 | utf-8-validate@^5.0.2: 2127 | version "5.0.10" 2128 | resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" 2129 | integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== 2130 | dependencies: 2131 | node-gyp-build "^4.3.0" 2132 | 2133 | utils-merge@1.0.1: 2134 | version "1.0.1" 2135 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 2136 | integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== 2137 | 2138 | uuid@^8.3.2: 2139 | version "8.3.2" 2140 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" 2141 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== 2142 | 2143 | uuid@^9.0.1: 2144 | version "9.0.1" 2145 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" 2146 | integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== 2147 | 2148 | vary@^1, vary@~1.1.2: 2149 | version "1.1.2" 2150 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 2151 | integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== 2152 | 2153 | webidl-conversions@^3.0.0: 2154 | version "3.0.1" 2155 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" 2156 | integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== 2157 | 2158 | whatwg-url@^5.0.0: 2159 | version "5.0.0" 2160 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" 2161 | integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== 2162 | dependencies: 2163 | tr46 "~0.0.3" 2164 | webidl-conversions "^3.0.0" 2165 | 2166 | ws@^7.4.5: 2167 | version "7.5.9" 2168 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" 2169 | integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== 2170 | 2171 | ws@^8.5.0: 2172 | version "8.17.0" 2173 | resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" 2174 | integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== 2175 | 2176 | zod@^3.23.8: 2177 | version "3.23.8" 2178 | resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" 2179 | integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== 2180 | --------------------------------------------------------------------------------