From 8308635c25477983ed9d1286bc76e7524b58c3ec Mon Sep 17 00:00:00 2001 From: busybox11 Date: Wed, 14 Aug 2024 02:35:51 +0200 Subject: [PATCH] app: Base working tRPC router and env --- .eslintrc.js | 2 +- apps/api/package.json | 11 +- apps/api/src/context.ts | 6 +- apps/api/src/index.ts | 4 +- apps/api/src/router.ts | 13 +- apps/api/src/types.ts | 1 + apps/api/tsconfig.json | 12 + apps/web/.eslintrc.js | 2 +- apps/web/app/layout.tsx | 2 +- apps/web/app/page.tsx | 5 +- apps/web/components/TestTrpc.tsx | 18 + apps/web/next.config.js | 2 +- apps/web/package.json | 15 +- apps/web/tsconfig.json | 2 +- apps/web/utils/trpc.ts | 61 +++ package.json | 6 +- packages/eslint-config/package.json | 4 +- packages/typescript-config/base.json | 25 +- packages/typescript-config/nextjs.json | 9 +- packages/typescript-config/package.json | 4 +- pnpm-lock.yaml | 474 +++++++++++++++++++++++- tsconfig.json | 2 +- 22 files changed, 625 insertions(+), 55 deletions(-) create mode 100644 apps/api/src/types.ts create mode 100644 apps/api/tsconfig.json create mode 100644 apps/web/components/TestTrpc.tsx create mode 100644 apps/web/utils/trpc.ts diff --git a/.eslintrc.js b/.eslintrc.js index e928b86..ed54106 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -2,7 +2,7 @@ /** @type {import("eslint").Linter.Config} */ module.exports = { ignorePatterns: ["apps/**", "packages/**"], - extends: ["@repo/eslint-config/library.js"], + extends: ["@nowplaying/eslint-config/library.js"], parser: "@typescript-eslint/parser", parserOptions: { project: true, diff --git a/apps/api/package.json b/apps/api/package.json index 7ed3c9f..e15b3c4 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -1,5 +1,5 @@ { - "name": "api", + "name": "@nowplaying/api", "version": "1.0.0", "description": "", "main": "src/index.ts", @@ -15,13 +15,16 @@ "author": "", "license": "ISC", "dependencies": { - "@trpc/server": "^10.45.2", + "@trpc/server": "11.0.0-rc.477", + "@types/cors": "^2.8.17", + "cors": "^2.8.5", "express": "^4.19.2", + "superjson": "^2.2.1", "zod": "^3.23.8" }, "devDependencies": { - "@repo/eslint-config": "workspace:^", - "@repo/typescript-config": "workspace:^", + "@nowplaying/eslint-config": "workspace:^", + "@nowplaying/typescript-config": "workspace:^", "@types/express": "^4.17.21", "@types/node": "^20.11.24", "eslint": "^8.57.0", diff --git a/apps/api/src/context.ts b/apps/api/src/context.ts index a640e04..9c39be0 100644 --- a/apps/api/src/context.ts +++ b/apps/api/src/context.ts @@ -1,11 +1,11 @@ -import type { CreateFastifyContextOptions } from "@trpc/server/adapters/fastify"; +import { CreateExpressContextOptions } from "@trpc/server/adapters/express"; export async function createContextInner() { return {}; } -export async function createContext({ req, res }: CreateFastifyContextOptions) { - const server = req.server; +export async function createContext({ req, res }: CreateExpressContextOptions) { + const server = {}; return { server, diff --git a/apps/api/src/index.ts b/apps/api/src/index.ts index 034980f..e6ae750 100644 --- a/apps/api/src/index.ts +++ b/apps/api/src/index.ts @@ -2,10 +2,12 @@ import express from "express"; import * as trpcExpress from "@trpc/server/adapters/express"; import { appRouter } from "./router"; import { createContext } from "./context"; +import cors from "cors"; const app = express(); +app.use(cors()); -app.get("/", (req, res) => { +app.get("/", (_req, res) => { res.send("Hello World!"); }); diff --git a/apps/api/src/router.ts b/apps/api/src/router.ts index 554b7b4..9a0d1d8 100644 --- a/apps/api/src/router.ts +++ b/apps/api/src/router.ts @@ -1,11 +1,18 @@ import { initTRPC } from "@trpc/server"; import type { Context } from "./context"; -const t = initTRPC.context().create(); +import SuperJSON from "superjson"; + +const t = initTRPC.context().create({ + transformer: SuperJSON, + errorFormatter({ shape }) { + return shape; + }, +}); export const appRouter = t.router({ - hello: t.procedure.query(({ ctx }) => { - return ctx.server.info; + hello: t.procedure.query(() => { + return "world"; }), }); export type AppRouter = typeof appRouter; diff --git a/apps/api/src/types.ts b/apps/api/src/types.ts new file mode 100644 index 0000000..645f356 --- /dev/null +++ b/apps/api/src/types.ts @@ -0,0 +1 @@ +export type { AppRouter } from "./router"; diff --git a/apps/api/tsconfig.json b/apps/api/tsconfig.json new file mode 100644 index 0000000..16900c8 --- /dev/null +++ b/apps/api/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "@nowplaying/typescript-config/base.json", + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@api/*": ["./src/*"] + }, + "outDir": "dist" + }, + "include": ["./src/**/*.ts", "./src/**/*.tsx"], + "exclude": ["node_modules"] +} diff --git a/apps/web/.eslintrc.js b/apps/web/.eslintrc.js index 7d644a4..e2f75bf 100644 --- a/apps/web/.eslintrc.js +++ b/apps/web/.eslintrc.js @@ -1,7 +1,7 @@ /** @type {import("eslint").Linter.Config} */ module.exports = { root: true, - extends: ["@repo/eslint-config/next.js"], + extends: ["@nowplaying/eslint-config/next.js"], parser: "@typescript-eslint/parser", parserOptions: { project: true, diff --git a/apps/web/app/layout.tsx b/apps/web/app/layout.tsx index bceaace..b59a45e 100644 --- a/apps/web/app/layout.tsx +++ b/apps/web/app/layout.tsx @@ -14,7 +14,7 @@ export default function RootLayout({ children, }: { children: React.ReactNode; -}): JSX.Element { +}) { return ( diff --git a/apps/web/app/page.tsx b/apps/web/app/page.tsx index 5e19b69..a6aac88 100644 --- a/apps/web/app/page.tsx +++ b/apps/web/app/page.tsx @@ -1,7 +1,8 @@ import Locales from "@/components/Home/Locales"; +import TestTrpc from "@/components/TestTrpc"; import Image from "next/image"; -export default function Page(): JSX.Element { +export default function Page() { return (
@@ -89,6 +90,8 @@ export default function Page(): JSX.Element { By clicking on 'LOGIN TO SPOTIFY', you accept the use of cookies necessary for the proper functioning of the site. + +
); } diff --git a/apps/web/components/TestTrpc.tsx b/apps/web/components/TestTrpc.tsx new file mode 100644 index 0000000..49a8a35 --- /dev/null +++ b/apps/web/components/TestTrpc.tsx @@ -0,0 +1,18 @@ +"use client"; + +import { trpc } from "@/utils/trpc"; + +function TestTrpc() { + const trpcHello = trpc.hello.useQuery(); + + if (trpcHello.data) { + return
{trpcHello.data}
; + } + + if (trpcHello.error) { + return
{trpcHello.error.message}
; + } + + return
Loading...
; +} +export default trpc.withTRPC(TestTrpc); diff --git a/apps/web/next.config.js b/apps/web/next.config.js index 4d5bb5c..71bbde5 100644 --- a/apps/web/next.config.js +++ b/apps/web/next.config.js @@ -1,6 +1,6 @@ /** @type {import('next').NextConfig} */ module.exports = { - transpilePackages: ["@repo/ui"], + transpilePackages: ["@nowplaying/ui"], async redirects() { // Remove .php extension diff --git a/apps/web/package.json b/apps/web/package.json index cfb82ff..e827dc9 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,7 +1,9 @@ { - "name": "web", + "name": "@nowplaying/web", "version": "1.0.0", "private": true, + "main": "src/server.ts", + "types": "src/server.ts", "scripts": { "dev": "next dev", "build": "next build", @@ -9,21 +11,28 @@ "lint": "eslint . --max-warnings 0" }, "dependencies": { + "@nowplaying/api": "workspace:^", + "@trpc/client": "11.0.0-rc.477", + "@trpc/next": "11.0.0-rc.477", + "@trpc/react-query": "11.0.0-rc.477", + "@trpc/server": "11.0.0-rc.477", "next": "^14.1.1", "react": "^18.2.0", "react-dom": "^18.2.0", + "superjson": "^2.2.1", "usehooks-ts": "^3.1.0" }, "devDependencies": { "@next/eslint-plugin-next": "^14.1.1", - "@repo/eslint-config": "workspace:*", - "@repo/typescript-config": "workspace:*", + "@nowplaying/eslint-config": "workspace:*", + "@nowplaying/typescript-config": "workspace:*", "@types/eslint": "^8.56.5", "@types/node": "^20.11.24", "@types/react": "^18.2.61", "@types/react-dom": "^18.2.19", "autoprefixer": "^10.4.19", "eslint": "^8.57.0", + "fastify": "^4.28.1", "postcss": "^8.4.38", "tailwindcss": "^3.4.3", "typescript": "^5.3.3" diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json index 5727278..07a5ef7 100644 --- a/apps/web/tsconfig.json +++ b/apps/web/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "@repo/typescript-config/nextjs.json", + "extends": "@nowplaying/typescript-config/nextjs.json", "compilerOptions": { "plugins": [ { diff --git a/apps/web/utils/trpc.ts b/apps/web/utils/trpc.ts new file mode 100644 index 0000000..a73708e --- /dev/null +++ b/apps/web/utils/trpc.ts @@ -0,0 +1,61 @@ +import type { AppRouter } from "@nowplaying/api/src/types"; + +import { httpBatchLink, loggerLink } from "@trpc/client"; +import { createTRPCNext } from "@trpc/next"; +import type { inferRouterInputs, inferRouterOutputs } from "@trpc/server"; +import type _fastify from "fastify"; +import superjson from "superjson"; + +function getBaseUrl() { + return process.env.NODE_ENV === "development" + ? "http://localhost:4000" + : "https://trpc.nowplayi.ng"; +} + +function getHeaders() { + const baseHeaders = { + "Access-Control-Allow-Origin": "*", + } as Record; + + return baseHeaders; +} + +export const trpc = createTRPCNext({ + config({ ctx: _ctx }) { + return { + queryClientConfig: { + defaultOptions: { + queries: { + refetchOnWindowFocus: false, + }, + }, + }, + links: [ + loggerLink({ + enabled: (opts) => + process.env.NODE_ENV === "development" || + (opts.direction === "down" && opts.result instanceof Error), + }), + httpBatchLink({ + transformer: superjson, + url: `${getBaseUrl()}/trpc`, + fetch: (url, options) => { + const headers = getHeaders(); + return fetch(url, { + ...options, + headers: { + ...options?.headers, + ...headers, + }, + }); + }, + }), + ], + }; + }, + transformer: superjson, + ssr: false, +}); + +export type RouterInputs = inferRouterInputs; +export type RouterOutputs = inferRouterOutputs; diff --git a/package.json b/package.json index 72ec509..5144927 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,8 @@ "format": "prettier --write \"**/*.{ts,tsx,md}\"" }, "devDependencies": { - "@repo/eslint-config": "workspace:*", - "@repo/typescript-config": "workspace:*", + "@nowplaying/eslint-config": "workspace:*", + "@nowplaying/typescript-config": "workspace:*", "prettier": "^3.2.5", "turbo": "^2.0.3" }, @@ -17,4 +17,4 @@ "engines": { "node": ">=18" } -} +} \ No newline at end of file diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index 5c51c03..239fed0 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -1,5 +1,5 @@ { - "name": "@repo/eslint-config", + "name": "@nowplaying/eslint-config", "version": "0.0.0", "private": true, "files": [ @@ -16,4 +16,4 @@ "@typescript-eslint/eslint-plugin": "^7.1.0", "typescript": "^5.3.3" } -} +} \ No newline at end of file diff --git a/packages/typescript-config/base.json b/packages/typescript-config/base.json index 0f80cfd..1ebad5e 100644 --- a/packages/typescript-config/base.json +++ b/packages/typescript-config/base.json @@ -2,19 +2,28 @@ "$schema": "https://json.schemastore.org/tsconfig", "display": "Default", "compilerOptions": { - "declaration": true, - "declarationMap": true, + "allowJs": false, + "checkJs": false, "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "declaration": false, "incremental": false, "isolatedModules": true, - "lib": ["es2022", "DOM", "DOM.Iterable"], - "module": "NodeNext", - "moduleDetection": "force", - "moduleResolution": "NodeNext", + "lib": [ + "ESNext", + "DOM", + "DOM.Iterable" + ], + "module": "ES2022", + "moduleDetection": "auto", + "moduleResolution": "Node", "noUncheckedIndexedAccess": true, "resolveJsonModule": true, + "noUnusedParameters": true, + "noUnusedLocals": true, "skipLibCheck": true, "strict": true, - "target": "ES2022" + "target": "ES2022", + "noEmit": true } -} +} \ No newline at end of file diff --git a/packages/typescript-config/nextjs.json b/packages/typescript-config/nextjs.json index 44f4289..54d8fb1 100644 --- a/packages/typescript-config/nextjs.json +++ b/packages/typescript-config/nextjs.json @@ -3,11 +3,16 @@ "display": "Next.js", "extends": "./base.json", "compilerOptions": { - "plugins": [{ "name": "next" }], + "plugins": [ + { + "name": "next" + } + ], "module": "ESNext", "moduleResolution": "Bundler", + "esModuleInterop": true, "allowJs": true, "jsx": "preserve", "noEmit": true } -} +} \ No newline at end of file diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index 27c0e60..df69ac7 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -1,9 +1,9 @@ { - "name": "@repo/typescript-config", + "name": "@nowplaying/typescript-config", "version": "0.0.0", "private": true, "license": "MIT", "publishConfig": { "access": "public" } -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b0fda5c..fdd968c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,10 +8,10 @@ importers: .: devDependencies: - '@repo/eslint-config': + '@nowplaying/eslint-config': specifier: workspace:* version: link:packages/eslint-config - '@repo/typescript-config': + '@nowplaying/typescript-config': specifier: workspace:* version: link:packages/typescript-config prettier: @@ -24,19 +24,28 @@ importers: apps/api: dependencies: '@trpc/server': - specifier: ^10.45.2 - version: 10.45.2 + specifier: 11.0.0-rc.477 + version: 11.0.0-rc.477 + '@types/cors': + specifier: ^2.8.17 + version: 2.8.17 + cors: + specifier: ^2.8.5 + version: 2.8.5 express: specifier: ^4.19.2 version: 4.19.2 + superjson: + specifier: ^2.2.1 + version: 2.2.1 zod: specifier: ^3.23.8 version: 3.23.8 devDependencies: - '@repo/eslint-config': + '@nowplaying/eslint-config': specifier: workspace:^ version: link:../../packages/eslint-config - '@repo/typescript-config': + '@nowplaying/typescript-config': specifier: workspace:^ version: link:../../packages/typescript-config '@types/express': @@ -57,6 +66,21 @@ importers: apps/web: dependencies: + '@nowplaying/api': + specifier: workspace:^ + version: link:../api + '@trpc/client': + specifier: 11.0.0-rc.477 + version: 11.0.0-rc.477(@trpc/server@11.0.0-rc.477) + '@trpc/next': + specifier: 11.0.0-rc.477 + version: 11.0.0-rc.477(@tanstack/react-query@5.51.23)(@trpc/client@11.0.0-rc.477)(@trpc/react-query@11.0.0-rc.477)(@trpc/server@11.0.0-rc.477)(next@14.1.1)(react-dom@18.2.0)(react@18.2.0) + '@trpc/react-query': + specifier: 11.0.0-rc.477 + version: 11.0.0-rc.477(@tanstack/react-query@5.51.23)(@trpc/client@11.0.0-rc.477)(@trpc/server@11.0.0-rc.477)(react-dom@18.2.0)(react@18.2.0) + '@trpc/server': + specifier: 11.0.0-rc.477 + version: 11.0.0-rc.477 next: specifier: ^14.1.1 version: 14.1.1(react-dom@18.2.0)(react@18.2.0) @@ -66,6 +90,9 @@ importers: react-dom: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) + superjson: + specifier: ^2.2.1 + version: 2.2.1 usehooks-ts: specifier: ^3.1.0 version: 3.1.0(react@18.2.0) @@ -73,10 +100,10 @@ importers: '@next/eslint-plugin-next': specifier: ^14.1.1 version: 14.1.1 - '@repo/eslint-config': + '@nowplaying/eslint-config': specifier: workspace:* version: link:../../packages/eslint-config - '@repo/typescript-config': + '@nowplaying/typescript-config': specifier: workspace:* version: link:../../packages/typescript-config '@types/eslint': @@ -97,6 +124,9 @@ importers: eslint: specifier: ^8.57.0 version: 8.57.0 + fastify: + specifier: ^4.28.1 + version: 4.28.1 postcss: specifier: ^8.4.38 version: 8.4.38 @@ -608,6 +638,30 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@fastify/ajv-compiler@3.6.0: + resolution: {integrity: sha512-LwdXQJjmMD+GwLOkP7TVC68qa+pSSogeWWmznRJ/coyTcfe9qA05AHFSe1eZFwK6q+xVRpChnvFUkf1iYaSZsQ==} + dependencies: + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + fast-uri: 2.4.0 + dev: true + + /@fastify/error@3.4.1: + resolution: {integrity: sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==} + dev: true + + /@fastify/fast-json-stringify-compiler@4.3.0: + resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==} + dependencies: + fast-json-stringify: 5.16.1 + dev: true + + /@fastify/merge-json-schemas@0.1.1: + resolution: {integrity: sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==} + dependencies: + fast-deep-equal: 3.1.3 + dev: true + /@humanwhocodes/config-array@0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} @@ -830,8 +884,70 @@ packages: tslib: 2.6.2 dev: false - /@trpc/server@10.45.2: - resolution: {integrity: sha512-wOrSThNNE4HUnuhJG6PfDRp4L2009KDVxsd+2VYH8ro6o/7/jwYZ8Uu5j+VaW+mOmc8EHerHzGcdbGNQSAUPgg==} + /@tanstack/query-core@5.51.21: + resolution: {integrity: sha512-POQxm42IUp6n89kKWF4IZi18v3fxQWFRolvBA6phNVmA8psdfB1MvDnGacCJdS+EOX12w/CyHM62z//rHmYmvw==} + dev: false + + /@tanstack/react-query@5.51.23(react@18.2.0): + resolution: {integrity: sha512-CfJCfX45nnVIZjQBRYYtvVMIsGgWLKLYC4xcUiYEey671n1alvTZoCBaU9B85O8mF/tx9LPyrI04A6Bs2THv4A==} + peerDependencies: + react: ^18.0.0 + dependencies: + '@tanstack/query-core': 5.51.21 + react: 18.2.0 + dev: false + + /@trpc/client@11.0.0-rc.477(@trpc/server@11.0.0-rc.477): + resolution: {integrity: sha512-Ah/Er3vxTm2bIEUcIrike7Z/8Yc+DkFveU2ZHQQ0+zY7yxs931438+4OEJuY/Xl/0p5OTDeZTm6HBuZ1REFiyA==} + peerDependencies: + '@trpc/server': 11.0.0-rc.477+a467f8314 + dependencies: + '@trpc/server': 11.0.0-rc.477 + dev: false + + /@trpc/next@11.0.0-rc.477(@tanstack/react-query@5.51.23)(@trpc/client@11.0.0-rc.477)(@trpc/react-query@11.0.0-rc.477)(@trpc/server@11.0.0-rc.477)(next@14.1.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-cijR4i0nvt9izzZkGoKtHj8CfIquuH1I/QN3c1/9eNi9VZvB6KPlCYuxpgctZBPTlzbpgagh0SmKC634tXnl/Q==} + peerDependencies: + '@tanstack/react-query': ^5.49.2 + '@trpc/client': 11.0.0-rc.477+a467f8314 + '@trpc/react-query': 11.0.0-rc.477+a467f8314 + '@trpc/server': 11.0.0-rc.477+a467f8314 + next: '*' + react: '>=16.8.0' + react-dom: '>=16.8.0' + peerDependenciesMeta: + '@tanstack/react-query': + optional: true + '@trpc/react-query': + optional: true + dependencies: + '@tanstack/react-query': 5.51.23(react@18.2.0) + '@trpc/client': 11.0.0-rc.477(@trpc/server@11.0.0-rc.477) + '@trpc/react-query': 11.0.0-rc.477(@tanstack/react-query@5.51.23)(@trpc/client@11.0.0-rc.477)(@trpc/server@11.0.0-rc.477)(react-dom@18.2.0)(react@18.2.0) + '@trpc/server': 11.0.0-rc.477 + next: 14.1.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@trpc/react-query@11.0.0-rc.477(@tanstack/react-query@5.51.23)(@trpc/client@11.0.0-rc.477)(@trpc/server@11.0.0-rc.477)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1ZCAm0wv7yLmb3muq+5DTRxdKXzI1KjTrcM2+QRKCFu6EherGM8x6zGI36P9ZmC6o+SCoedzxqazDNe+kkqVqA==} + peerDependencies: + '@tanstack/react-query': ^5.49.2 + '@trpc/client': 11.0.0-rc.477+a467f8314 + '@trpc/server': 11.0.0-rc.477+a467f8314 + react: '>=18.2.0' + react-dom: '>=18.2.0' + dependencies: + '@tanstack/react-query': 5.51.23(react@18.2.0) + '@trpc/client': 11.0.0-rc.477(@trpc/server@11.0.0-rc.477) + '@trpc/server': 11.0.0-rc.477 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@trpc/server@11.0.0-rc.477: + resolution: {integrity: sha512-K6zmjRv96fWilqm/ETehEK1DWsy5bSyrs2xbsNzCbjguMgamMhOClRHgYzJcwgLp2kasJ7QgD9YbahOhV1/u1w==} dev: false /@types/body-parser@1.19.5: @@ -847,6 +963,12 @@ packages: '@types/node': 20.11.24 dev: true + /@types/cors@2.8.17: + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + dependencies: + '@types/node': 20.11.24 + dev: false + /@types/eslint@8.56.5: resolution: {integrity: sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==} dependencies: @@ -896,7 +1018,6 @@ packages: resolution: {integrity: sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==} dependencies: undici-types: 5.26.5 - dev: true /@types/normalize-package-data@2.4.4: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1328,6 +1449,17 @@ packages: - supports-color dev: true + /abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + dependencies: + event-target-shim: 5.0.1 + dev: true + + /abstract-logging@2.0.1: + resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} + dev: true + /accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -1349,6 +1481,28 @@ packages: engines: {node: '>=0.4.0'} dev: true + /ajv-formats@2.1.1(ajv@8.17.1): + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.17.1 + dev: true + + /ajv-formats@3.0.1(ajv@8.17.1): + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + dependencies: + ajv: 8.17.1 + dev: true + /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: @@ -1358,6 +1512,15 @@ packages: uri-js: 4.4.1 dev: true + /ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.1 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + dev: true + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -1504,6 +1667,11 @@ packages: has-symbols: 1.0.3 dev: true + /atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + dev: true + /autoprefixer@10.4.19(postcss@8.4.38): resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} engines: {node: ^10 || ^12 || >=14} @@ -1525,6 +1693,13 @@ packages: engines: {node: '>= 0.4'} dev: true + /avvio@8.3.2: + resolution: {integrity: sha512-st8e519GWHa/azv8S87mcJvZs4WsgTBjOw/Ih1CP6u+8SZvcOeAYNG6JbsIrAUUJJ7JfmrnOkR8ipDS+u9SIRQ==} + dependencies: + '@fastify/error': 3.4.1 + fastq: 1.17.1 + dev: true + /axe-core@4.7.0: resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} engines: {node: '>=4'} @@ -1540,6 +1715,10 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + /big-integer@1.6.51: resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} engines: {node: '>=0.6'} @@ -1618,6 +1797,13 @@ packages: update-browserslist-db: 1.0.13(browserslist@4.23.0) dev: true + /buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + /builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} @@ -1767,6 +1953,20 @@ packages: /cookie@0.6.0: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} + + /copy-anything@3.0.5: + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} + dependencies: + is-what: 4.1.16 + dev: false + + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 dev: false /cross-spawn@7.0.3: @@ -2541,6 +2741,16 @@ packages: engines: {node: '>= 0.6'} dev: false + /event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + dev: true + + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + dev: true + /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -2610,6 +2820,14 @@ packages: - supports-color dev: false + /fast-content-type-parse@1.1.0: + resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==} + dev: true + + /fast-decode-uri-component@1.0.1: + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + dev: true + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -2629,16 +2847,74 @@ packages: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true + /fast-json-stringify@5.16.1: + resolution: {integrity: sha512-KAdnLvy1yu/XrRtP+LJnxbBGrhN+xXu+gt3EUvZhYGKCr3lFHq/7UFJHHFgmJKoqlh6B40bZLEv7w46B0mqn1g==} + dependencies: + '@fastify/merge-json-schemas': 0.1.1 + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + fast-deep-equal: 3.1.3 + fast-uri: 2.4.0 + json-schema-ref-resolver: 1.0.1 + rfdc: 1.4.1 + dev: true + /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true + /fast-querystring@1.1.2: + resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} + dependencies: + fast-decode-uri-component: 1.0.1 + dev: true + + /fast-redact@3.5.0: + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} + engines: {node: '>=6'} + dev: true + + /fast-uri@2.4.0: + resolution: {integrity: sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==} + dev: true + + /fast-uri@3.0.1: + resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + dev: true + + /fastify@4.28.1: + resolution: {integrity: sha512-kFWUtpNr4i7t5vY2EJPCN2KgMVpuqfU4NjnJNCgiNB900oiDeYqaNDRcAfeBbOF5hGixixxcKnOU4KN9z6QncQ==} + dependencies: + '@fastify/ajv-compiler': 3.6.0 + '@fastify/error': 3.4.1 + '@fastify/fast-json-stringify-compiler': 4.3.0 + abstract-logging: 2.0.1 + avvio: 8.3.2 + fast-content-type-parse: 1.1.0 + fast-json-stringify: 5.16.1 + find-my-way: 8.2.0 + light-my-request: 5.13.0 + pino: 9.3.2 + process-warning: 3.0.0 + proxy-addr: 2.0.7 + rfdc: 1.4.1 + secure-json-parse: 2.7.0 + semver: 7.5.4 + toad-cache: 3.7.0 + dev: true + /fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 dev: true + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + dependencies: + reusify: 1.0.4 + dev: true + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2668,6 +2944,15 @@ packages: - supports-color dev: false + /find-my-way@8.2.0: + resolution: {integrity: sha512-HdWXgFYc6b1BJcOBDBwjqWuHJj1WYiqrxSh25qtU4DabpMFdj/gSunNBQb83t+8Zt67D7CXEzJWTkxaShMTMOA==} + engines: {node: '>=14'} + dependencies: + fast-deep-equal: 3.1.3 + fast-querystring: 1.1.2 + safe-regex2: 3.1.0 + dev: true + /find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -2713,7 +2998,6 @@ packages: /forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} - dev: false /fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} @@ -2962,6 +3246,10 @@ packages: safer-buffer: 2.1.2 dev: false + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + /ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} @@ -3007,7 +3295,6 @@ packages: /ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - dev: false /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} @@ -3218,6 +3505,11 @@ packages: get-intrinsic: 1.2.2 dev: true + /is-what@4.1.16: + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} + dev: false + /is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -3288,10 +3580,20 @@ packages: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} dev: true + /json-schema-ref-resolver@1.0.1: + resolution: {integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==} + dependencies: + fast-deep-equal: 3.1.3 + dev: true + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true @@ -3336,6 +3638,14 @@ packages: type-check: 0.4.0 dev: true + /light-my-request@5.13.0: + resolution: {integrity: sha512-9IjUN9ZyCS9pTG+KqTDEQo68Sui2lHsYBrfMyVUTTZ3XhH8PMZq7xO94Kr+eP9dhi/kcKsx4N41p2IXEBil1pQ==} + dependencies: + cookie: 0.6.0 + process-warning: 3.0.0 + set-cookie-parser: 2.7.0 + dev: true + /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -3601,7 +3911,6 @@ packages: /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - dev: true /object-hash@3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} @@ -3669,6 +3978,11 @@ packages: es-abstract: 1.22.3 dev: true + /on-exit-leak-free@2.1.2: + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} + engines: {node: '>=14.0.0'} + dev: true + /on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -3827,6 +4141,34 @@ packages: engines: {node: '>=0.10.0'} dev: true + /pino-abstract-transport@1.2.0: + resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} + dependencies: + readable-stream: 4.5.2 + split2: 4.2.0 + dev: true + + /pino-std-serializers@7.0.0: + resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} + dev: true + + /pino@9.3.2: + resolution: {integrity: sha512-WtARBjgZ7LNEkrGWxMBN/jvlFiE17LTbBoH0konmBU684Kd0uIiDwBXlcTCW7iJnA6HfIKwUssS/2AC6cDEanw==} + hasBin: true + dependencies: + atomic-sleep: 1.0.0 + fast-redact: 3.5.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 1.2.0 + pino-std-serializers: 7.0.0 + process-warning: 4.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.4.3 + sonic-boom: 4.0.1 + thread-stream: 3.1.0 + dev: true + /pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} @@ -3939,6 +4281,19 @@ packages: engines: {node: '>=14'} dev: true + /process-warning@3.0.0: + resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} + dev: true + + /process-warning@4.0.0: + resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==} + dev: true + + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + dev: true + /prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: @@ -3953,7 +4308,6 @@ packages: dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 - dev: false /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} @@ -3971,6 +4325,10 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true + /quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + dev: true + /range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} @@ -4032,6 +4390,17 @@ packages: type-fest: 0.6.0 dev: true + /readable-stream@4.5.2: + resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + dev: true + /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -4039,6 +4408,11 @@ packages: picomatch: 2.3.1 dev: true + /real-require@0.2.0: + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} + engines: {node: '>= 12.13.0'} + dev: true + /reflect.getprototypeof@1.0.4: resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} engines: {node: '>= 0.4'} @@ -4074,6 +4448,11 @@ packages: jsesc: 0.5.0 dev: true + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -4106,11 +4485,20 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true + /ret@0.4.3: + resolution: {integrity: sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==} + engines: {node: '>=10'} + dev: true + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true + /rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + dev: true + /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} dependencies: @@ -4142,7 +4530,6 @@ packages: /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: false /safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} @@ -4152,6 +4539,17 @@ packages: is-regex: 1.1.4 dev: true + /safe-regex2@3.1.0: + resolution: {integrity: sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==} + dependencies: + ret: 0.4.3 + dev: true + + /safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + engines: {node: '>=10'} + dev: true + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: false @@ -4162,6 +4560,10 @@ packages: loose-envify: 1.4.0 dev: false + /secure-json-parse@2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + dev: true + /semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} dev: true @@ -4210,6 +4612,10 @@ packages: - supports-color dev: false + /set-cookie-parser@2.7.0: + resolution: {integrity: sha512-lXLOiqpkUumhRdFF3k1osNXCy9akgx/dyPZ5p8qAg9seJzXr5ZrlqZuWIMuY6ejOsVLE6flJ5/h3lsn57fQ/PQ==} + dev: true + /set-function-length@1.1.1: resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} engines: {node: '>= 0.4'} @@ -4270,6 +4676,12 @@ packages: engines: {node: '>=12'} dev: true + /sonic-boom@4.0.1: + resolution: {integrity: sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==} + dependencies: + atomic-sleep: 1.0.0 + dev: true + /sort-object-keys@1.1.3: resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} dev: true @@ -4318,6 +4730,11 @@ packages: resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} dev: true + /split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + dev: true + /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -4385,6 +4802,12 @@ packages: es-abstract: 1.22.3 dev: true + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -4457,6 +4880,13 @@ packages: ts-interface-checker: 0.1.13 dev: true + /superjson@2.2.1: + resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} + engines: {node: '>=16'} + dependencies: + copy-anything: 3.0.5 + dev: false + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -4537,6 +4967,12 @@ packages: any-promise: 1.3.0 dev: true + /thread-stream@3.1.0: + resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} + dependencies: + real-require: 0.2.0 + dev: true + /titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} engines: {node: '>=12'} @@ -4554,6 +4990,11 @@ packages: is-number: 7.0.0 dev: true + /toad-cache@3.7.0: + resolution: {integrity: sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==} + engines: {node: '>=12'} + dev: true + /toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -4753,7 +5194,6 @@ packages: /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - dev: true /unpipe@1.0.0: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} diff --git a/tsconfig.json b/tsconfig.json index c8a018d..5ca365f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,3 +1,3 @@ { - "extends": "@repo/typescript-config/base.json" + "extends": "@nowplaying/typescript-config/base.json" }