diff --git a/.changeset/angry-glasses-complain.md b/.changeset/angry-glasses-complain.md new file mode 100644 index 00000000000..c8e1ed6e9d6 --- /dev/null +++ b/.changeset/angry-glasses-complain.md @@ -0,0 +1,5 @@ +--- +"@trigger.dev/cli": minor +--- + +CLI dev command checks for outdated trigger packages. diff --git a/examples/outdated-packages/.gitignore b/examples/outdated-packages/.gitignore new file mode 100644 index 00000000000..8f322f0d8f4 --- /dev/null +++ b/examples/outdated-packages/.gitignore @@ -0,0 +1,35 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/examples/outdated-packages/README.md b/examples/outdated-packages/README.md new file mode 100644 index 00000000000..f4da3c4c1cf --- /dev/null +++ b/examples/outdated-packages/README.md @@ -0,0 +1,34 @@ +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). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +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. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/examples/outdated-packages/next.config.js b/examples/outdated-packages/next.config.js new file mode 100644 index 00000000000..767719fc4fb --- /dev/null +++ b/examples/outdated-packages/next.config.js @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {} + +module.exports = nextConfig diff --git a/examples/outdated-packages/package.json b/examples/outdated-packages/package.json new file mode 100644 index 00000000000..dcca986792d --- /dev/null +++ b/examples/outdated-packages/package.json @@ -0,0 +1,25 @@ +{ + "name": "outdated-packages", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@trigger.dev/nextjs": "2.0.5", + "@trigger.dev/sdk": "^2.0.7", + "@types/node": "20.4.8", + "@types/react": "18.2.17", + "@types/react-dom": "18.2.7", + "next": "13.4.12", + "react": "18.2.0", + "react-dom": "18.2.0", + "typescript": "5.1.6" + }, + "trigger.dev": { + "endpointId": "outdated-packages-4Jq5" + } +} \ No newline at end of file diff --git a/examples/outdated-packages/public/next.svg b/examples/outdated-packages/public/next.svg new file mode 100644 index 00000000000..5174b28c565 --- /dev/null +++ b/examples/outdated-packages/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/examples/outdated-packages/public/vercel.svg b/examples/outdated-packages/public/vercel.svg new file mode 100644 index 00000000000..d2f84222734 --- /dev/null +++ b/examples/outdated-packages/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/examples/outdated-packages/src/app/api/trigger/route.ts b/examples/outdated-packages/src/app/api/trigger/route.ts new file mode 100644 index 00000000000..ffaf3c778e6 --- /dev/null +++ b/examples/outdated-packages/src/app/api/trigger/route.ts @@ -0,0 +1,9 @@ + +import { createAppRoute } from "@trigger.dev/nextjs"; +import { client } from "@/trigger"; + + +import "@/jobs"; + +//this route is used to send and receive data with Trigger.dev +export const { POST, dynamic } = createAppRoute(client); diff --git a/examples/outdated-packages/src/app/favicon.ico b/examples/outdated-packages/src/app/favicon.ico new file mode 100644 index 00000000000..718d6fea483 Binary files /dev/null and b/examples/outdated-packages/src/app/favicon.ico differ diff --git a/examples/outdated-packages/src/app/globals.css b/examples/outdated-packages/src/app/globals.css new file mode 100644 index 00000000000..d4f491e152d --- /dev/null +++ b/examples/outdated-packages/src/app/globals.css @@ -0,0 +1,107 @@ +:root { + --max-width: 1100px; + --border-radius: 12px; + --font-mono: ui-monospace, Menlo, Monaco, 'Cascadia Mono', 'Segoe UI Mono', + 'Roboto Mono', 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro', + 'Fira Mono', 'Droid Sans Mono', 'Courier New', monospace; + + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; + + --primary-glow: conic-gradient( + from 180deg at 50% 50%, + #16abff33 0deg, + #0885ff33 55deg, + #54d6ff33 120deg, + #0071ff33 160deg, + transparent 360deg + ); + --secondary-glow: radial-gradient( + rgba(255, 255, 255, 1), + rgba(255, 255, 255, 0) + ); + + --tile-start-rgb: 239, 245, 249; + --tile-end-rgb: 228, 232, 233; + --tile-border: conic-gradient( + #00000080, + #00000040, + #00000030, + #00000020, + #00000010, + #00000010, + #00000080 + ); + + --callout-rgb: 238, 240, 241; + --callout-border-rgb: 172, 175, 176; + --card-rgb: 180, 185, 188; + --card-border-rgb: 131, 134, 135; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + + --primary-glow: radial-gradient(rgba(1, 65, 255, 0.4), rgba(1, 65, 255, 0)); + --secondary-glow: linear-gradient( + to bottom right, + rgba(1, 65, 255, 0), + rgba(1, 65, 255, 0), + rgba(1, 65, 255, 0.3) + ); + + --tile-start-rgb: 2, 13, 46; + --tile-end-rgb: 2, 5, 19; + --tile-border: conic-gradient( + #ffffff80, + #ffffff40, + #ffffff30, + #ffffff20, + #ffffff10, + #ffffff10, + #ffffff80 + ); + + --callout-rgb: 20, 20, 20; + --callout-border-rgb: 108, 108, 108; + --card-rgb: 100, 100, 100; + --card-border-rgb: 200, 200, 200; + } +} + +* { + box-sizing: border-box; + padding: 0; + margin: 0; +} + +html, +body { + max-width: 100vw; + overflow-x: hidden; +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient( + to bottom, + transparent, + rgb(var(--background-end-rgb)) + ) + rgb(var(--background-start-rgb)); +} + +a { + color: inherit; + text-decoration: none; +} + +@media (prefers-color-scheme: dark) { + html { + color-scheme: dark; + } +} diff --git a/examples/outdated-packages/src/app/layout.tsx b/examples/outdated-packages/src/app/layout.tsx new file mode 100644 index 00000000000..ae845621236 --- /dev/null +++ b/examples/outdated-packages/src/app/layout.tsx @@ -0,0 +1,22 @@ +import './globals.css' +import type { Metadata } from 'next' +import { Inter } from 'next/font/google' + +const inter = Inter({ subsets: ['latin'] }) + +export const metadata: Metadata = { + title: 'Create Next App', + description: 'Generated by create next app', +} + +export default function RootLayout({ + children, +}: { + children: React.ReactNode +}) { + return ( + + {children} + + ) +} diff --git a/examples/outdated-packages/src/app/page.module.css b/examples/outdated-packages/src/app/page.module.css new file mode 100644 index 00000000000..9411a5e6f26 --- /dev/null +++ b/examples/outdated-packages/src/app/page.module.css @@ -0,0 +1,229 @@ +.main { + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + padding: 6rem; + min-height: 100vh; +} + +.description { + display: inherit; + justify-content: inherit; + align-items: inherit; + font-size: 0.85rem; + max-width: var(--max-width); + width: 100%; + z-index: 2; + font-family: var(--font-mono); +} + +.description a { + display: flex; + justify-content: center; + align-items: center; + gap: 0.5rem; +} + +.description p { + position: relative; + margin: 0; + padding: 1rem; + background-color: rgba(var(--callout-rgb), 0.5); + border: 1px solid rgba(var(--callout-border-rgb), 0.3); + border-radius: var(--border-radius); +} + +.code { + font-weight: 700; + font-family: var(--font-mono); +} + +.grid { + display: grid; + grid-template-columns: repeat(4, minmax(25%, auto)); + width: var(--max-width); + max-width: 100%; +} + +.card { + padding: 1rem 1.2rem; + border-radius: var(--border-radius); + background: rgba(var(--card-rgb), 0); + border: 1px solid rgba(var(--card-border-rgb), 0); + transition: background 200ms, border 200ms; +} + +.card span { + display: inline-block; + transition: transform 200ms; +} + +.card h2 { + font-weight: 600; + margin-bottom: 0.7rem; +} + +.card p { + margin: 0; + opacity: 0.6; + font-size: 0.9rem; + line-height: 1.5; + max-width: 30ch; +} + +.center { + display: flex; + justify-content: center; + align-items: center; + position: relative; + padding: 4rem 0; +} + +.center::before { + background: var(--secondary-glow); + border-radius: 50%; + width: 480px; + height: 360px; + margin-left: -400px; +} + +.center::after { + background: var(--primary-glow); + width: 240px; + height: 180px; + z-index: -1; +} + +.center::before, +.center::after { + content: ''; + left: 50%; + position: absolute; + filter: blur(45px); + transform: translateZ(0); +} + +.logo { + position: relative; +} +/* Enable hover only on non-touch devices */ +@media (hover: hover) and (pointer: fine) { + .card:hover { + background: rgba(var(--card-rgb), 0.1); + border: 1px solid rgba(var(--card-border-rgb), 0.15); + } + + .card:hover span { + transform: translateX(4px); + } +} + +@media (prefers-reduced-motion) { + .card:hover span { + transform: none; + } +} + +/* Mobile */ +@media (max-width: 700px) { + .content { + padding: 4rem; + } + + .grid { + grid-template-columns: 1fr; + margin-bottom: 120px; + max-width: 320px; + text-align: center; + } + + .card { + padding: 1rem 2.5rem; + } + + .card h2 { + margin-bottom: 0.5rem; + } + + .center { + padding: 8rem 0 6rem; + } + + .center::before { + transform: none; + height: 300px; + } + + .description { + font-size: 0.8rem; + } + + .description a { + padding: 1rem; + } + + .description p, + .description div { + display: flex; + justify-content: center; + position: fixed; + width: 100%; + } + + .description p { + align-items: center; + inset: 0 0 auto; + padding: 2rem 1rem 1.4rem; + border-radius: 0; + border: none; + border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25); + background: linear-gradient( + to bottom, + rgba(var(--background-start-rgb), 1), + rgba(var(--callout-rgb), 0.5) + ); + background-clip: padding-box; + backdrop-filter: blur(24px); + } + + .description div { + align-items: flex-end; + pointer-events: none; + inset: auto 0 0; + padding: 2rem; + height: 200px; + background: linear-gradient( + to bottom, + transparent 0%, + rgb(var(--background-end-rgb)) 40% + ); + z-index: 1; + } +} + +/* Tablet and Smaller Desktop */ +@media (min-width: 701px) and (max-width: 1120px) { + .grid { + grid-template-columns: repeat(2, 50%); + } +} + +@media (prefers-color-scheme: dark) { + .vercelLogo { + filter: invert(1); + } + + .logo { + filter: invert(1) drop-shadow(0 0 0.3rem #ffffff70); + } +} + +@keyframes rotate { + from { + transform: rotate(360deg); + } + to { + transform: rotate(0deg); + } +} diff --git a/examples/outdated-packages/src/app/page.tsx b/examples/outdated-packages/src/app/page.tsx new file mode 100644 index 00000000000..9ddf9b95e36 --- /dev/null +++ b/examples/outdated-packages/src/app/page.tsx @@ -0,0 +1,95 @@ +import Image from 'next/image' +import styles from './page.module.css' + +export default function Home() { + return ( +
+
+

+ Get started by editing  + src/app/page.tsx +

+
+ + By{' '} + Vercel Logo + +
+
+ +
+ Next.js Logo +
+ +
+ +

+ Docs -> +

+

Find in-depth information about Next.js features and API.

+
+ + +

+ Learn -> +

+

Learn about Next.js in an interactive course with quizzes!

+
+ + +

+ Templates -> +

+

Explore the Next.js 13 playground.

+
+ + +

+ Deploy -> +

+

+ Instantly deploy your Next.js site to a shareable URL with Vercel. +

+
+
+
+ ) +} diff --git a/examples/outdated-packages/src/jobs/examples.ts b/examples/outdated-packages/src/jobs/examples.ts new file mode 100644 index 00000000000..286dfe1754a --- /dev/null +++ b/examples/outdated-packages/src/jobs/examples.ts @@ -0,0 +1,29 @@ + +import { eventTrigger } from "@trigger.dev/sdk"; +import { client } from "@/trigger"; + +// Your first job +// This Job will be triggered by an event, log a joke to the console, and then wait 5 seconds before logging the punchline +client.defineJob({ + // This is the unique identifier for your Job, it must be unique across all Jobs in your project + id: "example-job", + name: "Example Job: a joke with a delay", + version: "0.0.1", + // This is triggered by an event using eventTrigger. You can also trigger Jobs with webhooks, on schedules, and more: https://trigger.dev/docs/documentation/concepts/triggers/introduction + trigger: eventTrigger({ + name: "example.event", + }), + run: async (payload, io, ctx) => { + // This logs a message to the console + await io.logger.info("🧪 Example Job: a joke with a delay"); + await io.logger.info("How do you comfort a JavaScript bug?"); + // This waits for 5 seconds, the second parameter is the number of seconds to wait, you can add delays of up to a year + await io.wait("Wait 5 seconds for the punchline...", 5); + await io.logger.info("You console it! 🤦"); + await io.logger.info( + "✨ Congratulations, You just ran your first successful Trigger.dev Job! ✨" + ); + // To learn how to write much more complex (and probably funnier) Jobs, check out our docs: https://trigger.dev/docs/documentation/guides/create-a-job + }, +}); + diff --git a/examples/outdated-packages/src/jobs/index.ts b/examples/outdated-packages/src/jobs/index.ts new file mode 100644 index 00000000000..86e37601ba4 --- /dev/null +++ b/examples/outdated-packages/src/jobs/index.ts @@ -0,0 +1,4 @@ + +// import all your job files here + +export * from "./examples" diff --git a/examples/outdated-packages/src/trigger.ts b/examples/outdated-packages/src/trigger.ts new file mode 100644 index 00000000000..b94f0163aa9 --- /dev/null +++ b/examples/outdated-packages/src/trigger.ts @@ -0,0 +1,9 @@ + +import { TriggerClient } from "@trigger.dev/sdk"; + +export const client = new TriggerClient({ + id: "outdated-packages-4Jq5", + apiKey: process.env.TRIGGER_API_KEY, + apiUrl: process.env.TRIGGER_API_URL, +}); + \ No newline at end of file diff --git a/examples/outdated-packages/tsconfig.json b/examples/outdated-packages/tsconfig.json new file mode 100644 index 00000000000..eb0b41d94d5 --- /dev/null +++ b/examples/outdated-packages/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/packages/cli/package.json b/packages/cli/package.json index b2b5e72e730..dff723c8313 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -59,6 +59,7 @@ }, "dependencies": { "@types/degit": "^2.8.3", + "@types/semver": "^7.3.13", "chalk": "^5.2.0", "chokidar": "^3.5.3", "commander": "^9.4.1", @@ -75,6 +76,7 @@ "ora": "^6.1.2", "path-to-regexp": "^6.2.1", "posthog-node": "^3.1.1", + "semver": "^7.5.0", "simple-git": "^3.19.0", "terminal-link": "^3.0.0", "tsconfck": "^2.1.2", diff --git a/packages/cli/src/commands/dev.ts b/packages/cli/src/commands/dev.ts index 8c4db7a0434..52b1036ce68 100644 --- a/packages/cli/src/commands/dev.ts +++ b/packages/cli/src/commands/dev.ts @@ -10,10 +10,11 @@ import util from "util"; import { z } from "zod"; import { CLOUD_API_URL } from "../consts"; import { telemetryClient } from "../telemetry/telemetry"; -import { pathExists, readFile } from "../utils/fileSystem"; +import { pathExists, readFile, readJSONFile } from "../utils/fileSystem"; import { logger } from "../utils/logger"; import { resolvePath } from "../utils/parseNameAndPath"; import { TriggerApi } from "../utils/triggerApi"; +import semver from "semver"; const asyncExecFile = util.promisify(childProcess.execFile); @@ -47,6 +48,8 @@ export async function devCommand(path: string, anyOptions: any) { const resolvedPath = resolvePath(path); + await checkForOutdatedPackages(resolvedPath); + // Read from package.json to get the endpointId const endpointId = await getEndpointIdFromPackageJson(resolvedPath, options); if (!endpointId) { @@ -359,6 +362,95 @@ async function refreshEndpoint(apiClient: TriggerApi, endpointId: string, endpoi } } +async function getOutdatedTriggerDevPackages(path: string) { + const packageJSONPath = pathModule.join(path, "package.json"); + const packageJSON = await readJSONFile(packageJSONPath); + + const packageJSONSchema = z.object({ + dependencies: z.record(z.string()), + }); + + const triggerDevPackages = []; + const { dependencies } = packageJSONSchema.parse(packageJSON); + + for (const packageName in dependencies) { + if (packageName.startsWith("@trigger.dev/")) { + triggerDevPackages.push(packageName); + } + } + + return triggerDevPackages; +} + +const packageRegistrySchema = z.object({ + "dist-tags": z.object({ + latest: z.string(), + }), +}); + +// @ts-ignore +async function getLatestPackageVersion(packageName: string) { + const npmRegistryURL = `https://registry.npmjs.org/${packageName}`; + + try { + const response = await fetch(npmRegistryURL); + + if (response.ok) { + const data = await response.json(); + const parsedData = packageRegistrySchema.safeParse(data); + + if (parsedData.success) { + return parsedData.data["dist-tags"].latest; + } + } + } catch (error) {} + + console.log(`Failed to fetch the lastest version of ${packageName}`); +} + +async function checkForOutdatedPackages(path: string) { + const resolvedPath = resolvePath(path); + const packageJSONPath = pathModule.join(path, "package.json"); + const packageJSON = await readJSONFile(packageJSONPath); + + const outdatedPackages = []; + const triggerDevPackages = await getOutdatedTriggerDevPackages(resolvedPath); + + for (const packageName of triggerDevPackages) { + const latestVersion = await getLatestPackageVersion(packageName); + const installedVersion = + packageJSON.dependencies?.[packageName] || packageJSON.devDependencies?.[packageName]; + + // if latestVersion isn't undefined + // format the versions if they include special characters like "^", so semver can parse them + if (latestVersion) { + const formtattedInstalledVersion = semver.clean(installedVersion); + const formattedLatestVersion = semver.clean(latestVersion); + + if ( + formtattedInstalledVersion && + formattedLatestVersion && + semver.gt(formattedLatestVersion, formtattedInstalledVersion) + ) { + outdatedPackages.push({ + name: packageName, + installedVersion: formtattedInstalledVersion, + latestVersion: formattedLatestVersion, + }); + } + } + } + + if (outdatedPackages.length > 0) { + console.warn("⚠️ Outdated @trigger.dev packages found:"); + + for (const pkg of outdatedPackages) { + console.warn(`${pkg.name}: installed ${pkg.installedVersion}, latest ${pkg.latestVersion}`); + } + // console.warn("Run 'npx @trigger.dev/cli update' to update the packages."); + } +} + //wait function async function wait(ms: number) { return new Promise((resolve) => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 670de70af0f..bcb214025bd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -441,41 +441,6 @@ importers: '@trigger.dev/cli': link:../../packages/cli concurrently: 8.2.0 - examples/my-app: - specifiers: - '@trigger.dev/cli': workspace:* - '@trigger.dev/nextjs': ^2.0.9 - '@trigger.dev/sdk': ^2.0.9 - '@types/node': 20.5.0 - '@types/react': 18.2.17 - '@types/react-dom': 18.2.7 - autoprefixer: 10.4.15 - eslint: 8.47.0 - eslint-config-next: 13.4.16 - next: 13.4.16 - postcss: 8.4.28 - react: 18.2.0 - react-dom: 18.2.0 - tailwindcss: 3.3.3 - typescript: 5.1.6 - dependencies: - '@trigger.dev/nextjs': 2.0.9_2x4atzhhpi7srppbk2tk7obcwy - '@trigger.dev/sdk': 2.0.9 - '@types/node': 20.5.0 - '@types/react': 18.2.17 - '@types/react-dom': 18.2.7 - autoprefixer: 10.4.15_postcss@8.4.28 - eslint: 8.47.0 - eslint-config-next: 13.4.16_qj3u6ezxe2airdzjq3nyoxe24m - next: 13.4.16_biqbaboplfbrettd7655fr4n2y - postcss: 8.4.28 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - tailwindcss: 3.3.3 - typescript: 5.1.6 - devDependencies: - '@trigger.dev/cli': link:../../packages/cli - examples/nextjs-12: specifiers: '@trigger.dev/nextjs': workspace:* @@ -581,6 +546,28 @@ importers: eslint-config-next: 13.4.6_eslint@8.42.0 wait-on: 7.0.1 + examples/outdated-packages: + specifiers: + '@trigger.dev/nextjs': 2.0.5 + '@trigger.dev/sdk': ^2.0.7 + '@types/node': 20.4.8 + '@types/react': 18.2.17 + '@types/react-dom': 18.2.7 + next: 13.4.12 + react: 18.2.0 + react-dom: 18.2.0 + typescript: 5.1.6 + dependencies: + '@trigger.dev/nextjs': 2.0.5_xnxt6jhibq265u6ew2ygrey6ye + '@trigger.dev/sdk': 2.0.9 + '@types/node': 20.4.8 + '@types/react': 18.2.17 + '@types/react-dom': 18.2.7 + next: 13.4.12_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + typescript: 5.1.6 + examples/package-tester: specifiers: '@trigger.dev/cli': workspace:* @@ -843,6 +830,7 @@ importers: '@types/jest': ^29.5.3 '@types/node': '16' '@types/node-fetch': ^2.6.2 + '@types/semver': ^7.3.13 chalk: ^5.2.0 chokidar: ^3.5.3 commander: ^9.4.1 @@ -861,6 +849,7 @@ importers: path-to-regexp: ^6.2.1 posthog-node: ^3.1.1 rimraf: ^3.0.2 + semver: ^7.5.0 simple-git: ^3.19.0 terminal-link: ^3.0.0 ts-jest: ^29.1.1 @@ -872,6 +861,7 @@ importers: zod: 3.21.4 dependencies: '@types/degit': 2.8.3 + '@types/semver': 7.3.13 chalk: 5.2.0 chokidar: 3.5.3 commander: 9.5.0 @@ -888,6 +878,7 @@ importers: ora: 6.1.2 path-to-regexp: 6.2.1 posthog-node: 3.1.1 + semver: 7.5.4 simple-git: 3.19.0 terminal-link: 3.0.0 tsconfck: 2.1.2_typescript@4.9.5 @@ -5069,25 +5060,10 @@ packages: eslint-visitor-keys: 3.4.2 dev: false - /@eslint-community/eslint-utils/4.4.0_eslint@8.47.0: - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.47.0 - eslint-visitor-keys: 3.4.2 - dev: false - /@eslint-community/regexpp/4.5.1: resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - /@eslint-community/regexpp/4.6.2: - resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: false - /@eslint/eslintrc/1.4.1: resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5121,23 +5097,6 @@ packages: transitivePeerDependencies: - supports-color - /@eslint/eslintrc/2.1.2: - resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.19.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: false - /@eslint/js/8.42.0: resolution: {integrity: sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5147,11 +5106,6 @@ packages: resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /@eslint/js/8.47.0: - resolution: {integrity: sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false - /@fal-works/esbuild-plugin-global-externals/2.1.2: resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==} dev: true @@ -5229,7 +5183,7 @@ packages: engines: {node: ^8.13.0 || >=10.10.0} dependencies: '@grpc/proto-loader': 0.7.7 - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: false /@grpc/proto-loader/0.7.7: @@ -5427,7 +5381,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 chalk: 4.1.2 jest-message-util: 29.6.2 jest-util: 29.6.2 @@ -5448,14 +5402,14 @@ packages: '@jest/test-result': 29.6.2 '@jest/transform': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.7.1 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.5.0 - jest-config: 29.6.2_@types+node@20.4.8 + jest-config: 29.6.2_@types+node@20.5.0 jest-haste-map: 29.6.2 jest-message-util: 29.6.2 jest-regex-util: 29.4.3 @@ -5483,7 +5437,7 @@ packages: dependencies: '@jest/fake-timers': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 jest-mock: 29.6.2 dev: true @@ -5510,7 +5464,7 @@ packages: dependencies: '@jest/types': 29.6.1 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.4.8 + '@types/node': 20.5.0 jest-message-util: 29.6.2 jest-mock: 29.6.2 jest-util: 29.6.2 @@ -5543,7 +5497,7 @@ packages: '@jest/transform': 29.6.2 '@jest/types': 29.6.1 '@jridgewell/trace-mapping': 0.3.19 - '@types/node': 20.4.8 + '@types/node': 20.5.0 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -5653,7 +5607,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 '@types/yargs': 16.0.5 chalk: 4.1.2 dev: true @@ -5665,7 +5619,7 @@ packages: '@jest/schemas': 29.6.0 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 '@types/yargs': 17.0.19 chalk: 4.1.2 dev: true @@ -5890,10 +5844,6 @@ packages: resolution: {integrity: sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ==} dev: false - /@next/env/13.4.16: - resolution: {integrity: sha512-pCU0sJBqdfKP9mwDadxvZd+eLz3fZrTlmmDHY12Hdpl3DD0vy8ou5HWKVfG0zZS6tqhL4wnQqRbspdY5nqa7MA==} - dev: false - /@next/eslint-plugin-next/12.3.4: resolution: {integrity: sha512-BFwj8ykJY+zc1/jWANsDprDIu2MgwPOIKxNVnrKvPs+f5TPegrVnem8uScND+1veT4B7F6VeqgaNLFW1Hzl9Og==} dependencies: @@ -5912,12 +5862,6 @@ packages: glob: 7.1.7 dev: false - /@next/eslint-plugin-next/13.4.16: - resolution: {integrity: sha512-QuFtQl+oSEEQb0HMYBdvBoUaTiMxbY3go/MFkF3zOnfY0t84+IbAX78cw8ZCfr6cA6UcTq3nMIlCrHwDC/moxg==} - dependencies: - glob: 7.1.7 - dev: false - /@next/eslint-plugin-next/13.4.6: resolution: {integrity: sha512-bPigeu0RI7bgy1ucBA2Yqcfg539y0Lzo38P2hIkrRB1GNvFSbYg6RTu8n6tGqPVrH3TTlPTNKLXG01wc+5NuwQ==} dependencies: @@ -5977,15 +5921,6 @@ packages: dev: false optional: true - /@next/swc-darwin-arm64/13.4.16: - resolution: {integrity: sha512-Rl6i1uUq0ciRa3VfEpw6GnWAJTSKo9oM2OrkGXPsm7rMxdd2FR5NkKc0C9xzFCI4+QtmBviWBdF2m3ur3Nqstw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - /@next/swc-darwin-x64/12.3.4: resolution: {integrity: sha512-PPF7tbWD4k0dJ2EcUSnOsaOJ5rhT3rlEt/3LhZUGiYNL8KvoqczFrETlUx0cUYaXe11dRA3F80Hpt727QIwByQ==} engines: {node: '>= 10'} @@ -6021,15 +5956,6 @@ packages: dev: false optional: true - /@next/swc-darwin-x64/13.4.16: - resolution: {integrity: sha512-o1vIKYbZORyDmTrPV1hApt9NLyWrS5vr2p5hhLGpOnkBY1cz6DAXjv8Lgan8t6X87+83F0EUDlu7klN8ieZ06A==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - /@next/swc-freebsd-x64/12.3.4: resolution: {integrity: sha512-KM9JXRXi/U2PUM928z7l4tnfQ9u8bTco/jb939pdFUHqc28V43Ohd31MmZD1QzEK4aFlMRaIBQOWQZh4D/E5lQ==} engines: {node: '>= 10'} @@ -6083,15 +6009,6 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu/13.4.16: - resolution: {integrity: sha512-JRyAl8lCfyTng4zoOmE6hNI2f1MFUr7JyTYCHl1RxX42H4a5LMwJhDVQ7a9tmDZ/yj+0hpBn+Aan+d6lA3v0UQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-arm64-musl/12.3.4: resolution: {integrity: sha512-EETZPa1juczrKLWk5okoW2hv7D7WvonU+Cf2CgsSoxgsYbUCZ1voOpL4JZTOb6IbKMDo6ja+SbY0vzXZBUMvkQ==} engines: {node: '>= 10'} @@ -6127,15 +6044,6 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl/13.4.16: - resolution: {integrity: sha512-9gqVqNzUMWbUDgDiND18xoUqhwSm2gmksqXgCU0qaOKt6oAjWz8cWYjgpPVD0WICKFylEY/gvPEP1fMZDVFZ/g==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-x64-gnu/12.3.4: resolution: {integrity: sha512-4csPbRbfZbuWOk3ATyWcvVFdD9/Rsdq5YHKvRuEni68OCLkfy4f+4I9OBpyK1SKJ00Cih16NJbHE+k+ljPPpag==} engines: {node: '>= 10'} @@ -6171,15 +6079,6 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu/13.4.16: - resolution: {integrity: sha512-KcQGwchAKmZVPa8i5PLTxvTs1/rcFnSltfpTm803Tr/BtBV3AxCkHLfhtoyVtVzx/kl/oue8oS+DSmbepQKwhw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-linux-x64-musl/12.3.4: resolution: {integrity: sha512-YeBmI+63Ro75SUiL/QXEVXQ19T++58aI/IINOyhpsRL1LKdyfK/35iilraZEFz9bLQrwy1LYAR5lK200A9Gjbg==} engines: {node: '>= 10'} @@ -6215,15 +6114,6 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl/13.4.16: - resolution: {integrity: sha512-2RbMZNxYnJmW8EPHVBsGZPq5zqWAyBOc/YFxq/jIQ/Yn3RMFZ1dZVCjtIcsiaKmgh7mjA/W0ApbumutHNxRqqQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@next/swc-win32-arm64-msvc/12.3.4: resolution: {integrity: sha512-Sd0qFUJv8Tj0PukAYbCCDbmXcMkbIuhnTeHm9m4ZGjCf6kt7E/RMs55Pd3R5ePjOkN7dJEuxYBehawTR/aPDSQ==} engines: {node: '>= 10'} @@ -6259,15 +6149,6 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc/13.4.16: - resolution: {integrity: sha512-thDcGonELN7edUKzjzlHrdoKkm7y8IAdItQpRvvMxNUXa4d9r0ElofhTZj5emR7AiXft17hpen+QAkcWpqG7Jg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@next/swc-win32-ia32-msvc/12.3.4: resolution: {integrity: sha512-rt/vv/vg/ZGGkrkKcuJ0LyliRdbskQU+91bje+PgoYmxTZf/tYs6IfbmgudBJk6gH3QnjHWbkphDdRQrseRefQ==} engines: {node: '>= 10'} @@ -6303,15 +6184,6 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc/13.4.16: - resolution: {integrity: sha512-f7SE1Mo4JAchUWl0LQsbtySR9xCa+x55C0taetjUApKtcLR3AgAjASrrP+oE1inmLmw573qRnE1eZN8YJfEBQw==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@next/swc-win32-x64-msvc/12.3.4: resolution: {integrity: sha512-DQ20JEfTBZAgF8QCjYfJhv2/279M6onxFjdG/+5B0Cyj00/EdBxiWb2eGGFgQhrBbNv/lsvzFbbi0Ptf8Vw/bg==} engines: {node: '>= 10'} @@ -6347,15 +6219,6 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc/13.4.16: - resolution: {integrity: sha512-WamDZm1M/OEM4QLce3lOmD1XdLEl37zYZwlmOLhmF7qYJ2G6oYm9+ejZVv+LakQIsIuXhSpVlOvrxIAHqwRkPQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@nicolo-ribaudo/eslint-scope-5-internals/5.1.1-v1: resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} dependencies: @@ -7614,7 +7477,7 @@ packages: engines: {node: '>=16'} hasBin: true dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 playwright-core: 1.37.0 optionalDependencies: fsevents: 2.3.2 @@ -9068,7 +8931,7 @@ packages: resolution: {integrity: sha512-DTuBFbqu4gGfajREEMrkq5jBhcnskinhr4+AnfJEk48zhVeEv3XnUKGIX98B74kxhYsIMfApGGySTn7V3b5yBA==} engines: {node: '>= 12.13.0', npm: '>= 6.12.0'} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: false /@slack/types/2.8.0: @@ -9083,7 +8946,7 @@ packages: '@slack/logger': 3.0.0 '@slack/types': 2.8.0 '@types/is-stream': 1.1.0 - '@types/node': 20.4.8 + '@types/node': 20.5.0 axios: 0.27.2 eventemitter3: 3.1.2 form-data: 2.5.1 @@ -10086,7 +9949,7 @@ packages: memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 - semver: 7.5.0 + semver: 7.5.4 store2: 2.14.2 telejson: 7.1.0 ts-dedent: 2.2.0 @@ -10784,16 +10647,16 @@ packages: - supports-color dev: false - /@trigger.dev/nextjs/2.0.9_2x4atzhhpi7srppbk2tk7obcwy: - resolution: {integrity: sha512-wVz7Kimw2oqBKATvGiEg9oSh1wllTKhbWrofwBa6kFTEH6s9aYxNV0Q2afx5gHET+v7oFCEMOM9/S9kwA78Qcg==} + /@trigger.dev/nextjs/2.0.5_xnxt6jhibq265u6ew2ygrey6ye: + resolution: {integrity: sha512-Bs/GUBQbRWXweX2XGa7AOr02MWund1rzii0JuUd3eXbpxdH8dRhOnpLyIyHFolSG4SpQo2bsa2R2xDI+FyLc1Q==} engines: {node: '>=16.8.0'} peerDependencies: - '@trigger.dev/sdk': ^2.0.9 + '@trigger.dev/sdk': ^2.0.5 next: '>=12.0.0 <14.0.0' dependencies: '@trigger.dev/sdk': 2.0.9 debug: 4.3.4 - next: 13.4.16_biqbaboplfbrettd7655fr4n2y + next: 13.4.12_biqbaboplfbrettd7655fr4n2y transitivePeerDependencies: - supports-color dev: false @@ -10876,7 +10739,7 @@ packages: /@types/accepts/1.3.5: resolution: {integrity: sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: false /@types/acorn/4.0.6: @@ -10934,7 +10797,7 @@ packages: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 20.4.8 + '@types/node': 20.5.0 /@types/btoa-lite/1.0.0: resolution: {integrity: sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg==} @@ -10943,7 +10806,7 @@ packages: /@types/bunyan/1.8.7: resolution: {integrity: sha512-jaNt6xX5poSmXuDAkQrSqx2zkR66OrdRDuVnU8ldvn3k/Ci/7Sf5nooKspQWimDnw337Bzt/yirqSThTjvrHkg==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: false /@types/cacheable-request/6.0.3: @@ -10951,7 +10814,7 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.1 '@types/keyv': 3.1.4 - '@types/node': 20.4.8 + '@types/node': 20.5.0 '@types/responselike': 1.0.0 /@types/chai-subset/1.3.3: @@ -10973,7 +10836,7 @@ packages: /@types/connect/3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 /@types/content-disposition/0.5.5: resolution: {integrity: sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA==} @@ -10988,7 +10851,7 @@ packages: '@types/connect': 3.4.35 '@types/express': 4.17.15 '@types/keygrip': 1.0.2 - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: false /@types/debug/4.1.7: @@ -11053,7 +10916,7 @@ packages: /@types/express-serve-static-core/4.17.32: resolution: {integrity: sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 @@ -11089,19 +10952,19 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.4.8 + '@types/node': 20.5.0 /@types/glob/8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: true /@types/graceful-fs/4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: true /@types/gradient-string/1.1.2: @@ -11123,7 +10986,7 @@ packages: '@types/hapi__catbox': 10.2.4 '@types/hapi__mimos': 4.1.4 '@types/hapi__shot': 4.1.2 - '@types/node': 20.4.8 + '@types/node': 20.5.0 joi: 17.7.0 dev: false @@ -11136,7 +10999,7 @@ packages: /@types/hapi__shot/4.1.2: resolution: {integrity: sha512-8wWgLVP1TeGqgzZtCdt+F+k15DWQvLG1Yv6ZzPfb3D5WIo5/S+GGKtJBVo2uNEcqabP5Ifc71QnJTDnTmw1axA==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: false /@types/hast/2.3.4: @@ -11186,7 +11049,7 @@ packages: /@types/is-stream/1.1.0: resolution: {integrity: sha512-jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: false /@types/istanbul-lib-coverage/2.0.4: @@ -11234,7 +11097,7 @@ packages: /@types/jsonwebtoken/9.0.1: resolution: {integrity: sha512-c5ltxazpWabia/4UzhIoaDcIza4KViOQhdbjRlfcIGVnsE3c3brkz9Z+F/EeJIECOQP7W7US2hNE930cWWkPiw==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: false /@types/keygrip/1.0.2: @@ -11244,7 +11107,7 @@ packages: /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 /@types/koa-compose/3.2.5: resolution: {integrity: sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==} @@ -11262,7 +11125,7 @@ packages: '@types/http-errors': 2.0.1 '@types/keygrip': 1.0.2 '@types/koa-compose': 3.2.5 - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: false /@types/koa__router/8.0.7: @@ -11310,7 +11173,7 @@ packages: /@types/memcached/2.2.7: resolution: {integrity: sha512-ImJbz1i8pl+OnyhYdIDnHe8jAuM8TOwM/7VsciqhYX3IL0jPPUToAtVxklfcWFGYckahEYZxhd9FS0z3MM1dpA==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: false /@types/mime-db/1.43.1: @@ -11343,7 +11206,7 @@ packages: /@types/mysql/2.15.19: resolution: {integrity: sha512-wSRg2QZv14CWcZXkgdvHbbV2ACufNy5EgI8mBBxnJIptchv7DBy/h53VMa2jDhyo0C9MO4iowE6z9vF8Ja1DkQ==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: false /@types/node-fetch/2.6.2: @@ -11386,7 +11249,6 @@ packages: /@types/node/20.5.0: resolution: {integrity: sha512-Mgq7eCtoTjT89FqNoTzzXg2XvCi5VMhRV6+I2aYanc6kQCBImeNaAYRs/DyoVqk1YEUJK5gN9VO7HRIdz4Wo3Q==} - dev: false /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -11407,7 +11269,7 @@ packages: /@types/pg/8.6.1: resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 pg-protocol: 1.6.0 pg-types: 2.2.0 dev: false @@ -11415,7 +11277,7 @@ packages: /@types/pg/8.6.6: resolution: {integrity: sha512-O2xNmXebtwVekJDD+02udOncjVcMZQuTEQEMpKJ0ZRf5E7/9JJX3izhKUcUifBkyKpljyUM6BTgy2trmviKlpw==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 pg-protocol: 1.6.0 pg-types: 2.2.0 dev: false @@ -11456,7 +11318,7 @@ packages: /@types/responselike/1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 /@types/retry/0.12.0: resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} @@ -11470,18 +11332,17 @@ packages: /@types/semver/7.3.13: resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} - dev: true /@types/serve-static/1.15.0: resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} dependencies: '@types/mime': 3.0.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 /@types/set-cookie-parser/2.4.2: resolution: {integrity: sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: true /@types/shimmer/1.0.2: @@ -11510,13 +11371,13 @@ packages: /@types/tedious/4.0.9: resolution: {integrity: sha512-ipwFvfy9b2m0gjHsIX0D6NAAwGCKokzf5zJqUZHUGt+7uWVlBIy6n2eyMgiKQ8ChLFVxic/zwQUhjLYNzbHDRA==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: false /@types/through/0.0.30: resolution: {integrity: sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: true /@types/tinycolor2/1.4.3: @@ -11537,13 +11398,13 @@ packages: /@types/websocket/1.0.5: resolution: {integrity: sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: false /@types/ws/8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: true /@types/yargs-parser/21.0.0: @@ -11566,7 +11427,7 @@ packages: resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} requiresBuild: true dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: false optional: true @@ -11696,26 +11557,6 @@ packages: - supports-color dev: false - /@typescript-eslint/parser/5.59.6_qj3u6ezxe2airdzjq3nyoxe24m: - resolution: {integrity: sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.59.6 - '@typescript-eslint/types': 5.59.6 - '@typescript-eslint/typescript-estree': 5.59.6_typescript@5.1.6 - debug: 4.3.4 - eslint: 8.47.0 - typescript: 5.1.6 - transitivePeerDependencies: - - supports-color - dev: false - /@typescript-eslint/scope-manager/5.59.6: resolution: {integrity: sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -12664,22 +12505,6 @@ packages: postcss-value-parser: 4.2.0 dev: false - /autoprefixer/10.4.15_postcss@8.4.28: - resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - dependencies: - browserslist: 4.21.10 - caniuse-lite: 1.0.30001521 - fraction.js: 4.2.0 - normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.28 - postcss-value-parser: 4.2.0 - dev: false - /available-typed-arrays/1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} @@ -13127,23 +12952,12 @@ packages: pako: 0.2.9 dev: true - /browserslist/4.21.10: - resolution: {integrity: sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001521 - electron-to-chromium: 1.4.492 - node-releases: 2.0.13 - update-browserslist-db: 1.0.11_browserslist@4.21.10 - dev: false - /browserslist/4.21.4: resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001504 + caniuse-lite: 1.0.30001521 electron-to-chromium: 1.4.433 node-releases: 2.0.12 update-browserslist-db: 1.0.11_browserslist@4.21.4 @@ -13154,7 +12968,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001504 + caniuse-lite: 1.0.30001521 electron-to-chromium: 1.4.433 node-releases: 2.0.12 update-browserslist-db: 1.0.11_browserslist@4.21.9 @@ -13422,10 +13236,10 @@ packages: /caniuse-lite/1.0.30001504: resolution: {integrity: sha512-5uo7eoOp2mKbWyfMXnGO9rJWOGU8duvzEiYITW+wivukL7yHH4gX9yuRaobu6El4jPxo6jKZfG+N6fB621GD/Q==} + dev: false /caniuse-lite/1.0.30001521: resolution: {integrity: sha512-fnx1grfpEOvDGH+V17eccmNjucGUnCbP6KL+l5KqBIerp26WK/+RQ7CIDE37KGJjaPyqWXXlFUyKiWmvdNNKmQ==} - dev: false /cartesian/1.0.1: resolution: {integrity: sha512-tR3qKRYpRJ6FXEGuoBwpuCYcwydrk1N2rduy7eWg1Msepi3i5fCxheryw4VBlCqjCbk3Vhjh3eg+IGHtl5H74A==} @@ -14051,14 +13865,14 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.27 - postcss: 8.4.27 - postcss-modules-extract-imports: 3.0.0_postcss@8.4.27 - postcss-modules-local-by-default: 4.0.0_postcss@8.4.27 - postcss-modules-scope: 3.0.0_postcss@8.4.27 - postcss-modules-values: 4.0.0_postcss@8.4.27 + icss-utils: 5.1.0_postcss@8.4.28 + postcss: 8.4.28 + postcss-modules-extract-imports: 3.0.0_postcss@8.4.28 + postcss-modules-local-by-default: 4.0.0_postcss@8.4.28 + postcss-modules-scope: 3.0.0_postcss@8.4.28 + postcss-modules-values: 4.0.0_postcss@8.4.28 postcss-value-parser: 4.2.0 - semver: 7.5.0 + semver: 7.5.4 dev: true /css-loader/6.7.3_webpack@5.80.0: @@ -14067,14 +13881,14 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0_postcss@8.4.27 - postcss: 8.4.27 - postcss-modules-extract-imports: 3.0.0_postcss@8.4.27 - postcss-modules-local-by-default: 4.0.0_postcss@8.4.27 - postcss-modules-scope: 3.0.0_postcss@8.4.27 - postcss-modules-values: 4.0.0_postcss@8.4.27 + icss-utils: 5.1.0_postcss@8.4.28 + postcss: 8.4.28 + postcss-modules-extract-imports: 3.0.0_postcss@8.4.28 + postcss-modules-local-by-default: 4.0.0_postcss@8.4.28 + postcss-modules-scope: 3.0.0_postcss@8.4.28 + postcss-modules-values: 4.0.0_postcss@8.4.28 postcss-value-parser: 4.2.0 - semver: 7.5.0 + semver: 7.5.4 webpack: 5.80.0_uhpfu7q6noim4yjdo6qt2aajgu dev: true @@ -14666,10 +14480,6 @@ packages: /electron-to-chromium/1.4.433: resolution: {integrity: sha512-MGO1k0w1RgrfdbLVwmXcDhHHuxCn2qRgR7dYsJvWFKDttvYPx6FNzCGG0c/fBBvzK2LDh3UV7Tt9awnHnvAAUQ==} - /electron-to-chromium/1.4.492: - resolution: {integrity: sha512-36K9b/6skMVwAIEsC7GiQ8I8N3soCALVSHqWHzNDtGemAcI9Xu8hP02cywWM0A794rTHm0b0zHPeLJHtgFVamQ==} - dev: false - /emittery/0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} @@ -15388,31 +15198,6 @@ packages: - supports-color dev: false - /eslint-config-next/13.4.16_qj3u6ezxe2airdzjq3nyoxe24m: - resolution: {integrity: sha512-Of73d/FiaGf0GLCxxTGdh4rW8bRDvsqypylefkshE/uDDpQr8ifVQsD4UiB99rhegks7nJGkYtUnR3dC7kfFlw==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@next/eslint-plugin-next': 13.4.16 - '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/parser': 5.59.6_qj3u6ezxe2airdzjq3nyoxe24m - eslint: 8.47.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5_ms75x23u6teenmhnospuu6z2pm - eslint-plugin-import: 2.27.5_gl42cwmwde2bgag5w7p3v4v7ba - eslint-plugin-jsx-a11y: 6.7.1_eslint@8.47.0 - eslint-plugin-react: 7.32.2_eslint@8.47.0 - eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705_eslint@8.47.0 - typescript: 5.1.6 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - supports-color - dev: false - /eslint-config-next/13.4.6_binxsscxvozjxebftqdoazsxm4: resolution: {integrity: sha512-nlv4FYish1RYYHILbQwM5/rD37cOvEqtMfDjtQCYbXdE2O3MggqHu2q6IDeLE2Z6u8ZJyNPgWOA6OimWcxj3qw==} peerDependencies: @@ -15531,30 +15316,6 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript/3.5.5_ms75x23u6teenmhnospuu6z2pm: - resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - dependencies: - debug: 4.3.4 - enhanced-resolve: 5.13.0 - eslint: 8.47.0 - eslint-module-utils: 2.7.4_j3kplqwrilsxe5qxrkx6wov6mi - eslint-plugin-import: 2.27.5_gl42cwmwde2bgag5w7p3v4v7ba - get-tsconfig: 4.5.0 - globby: 13.1.3 - is-core-module: 2.11.0 - is-glob: 4.0.3 - synckit: 0.8.5 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - dev: false - /eslint-import-resolver-typescript/3.5.5_p5geytdocx6mbqwwlptzjkv4li: resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -15663,36 +15424,6 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.4_j3kplqwrilsxe5qxrkx6wov6mi: - resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - dependencies: - '@typescript-eslint/parser': 5.59.6_qj3u6ezxe2airdzjq3nyoxe24m - debug: 3.2.7 - eslint: 8.47.0 - eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5_ms75x23u6teenmhnospuu6z2pm - transitivePeerDependencies: - - supports-color - dev: false - /eslint-module-utils/2.7.4_mcdyrqs6peaairrn7md524c74a: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} @@ -15830,39 +15561,6 @@ packages: - supports-color dev: true - /eslint-plugin-import/2.27.5_gl42cwmwde2bgag5w7p3v4v7ba: - resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - dependencies: - '@typescript-eslint/parser': 5.59.6_qj3u6ezxe2airdzjq3nyoxe24m - array-includes: 3.1.6 - array.prototype.flat: 1.3.1 - array.prototype.flatmap: 1.3.1 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.47.0 - eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4_j3kplqwrilsxe5qxrkx6wov6mi - has: 1.0.3 - is-core-module: 2.11.0 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.values: 1.1.6 - resolve: 1.22.2 - semver: 6.3.0 - tsconfig-paths: 3.14.1 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: false - /eslint-plugin-import/2.27.5_titmrsdujnhsc3m2skivuhiz64: resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} @@ -16062,31 +15760,6 @@ packages: semver: 6.3.0 dev: false - /eslint-plugin-jsx-a11y/6.7.1_eslint@8.47.0: - resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - '@babel/runtime': 7.22.5 - aria-query: 5.1.3 - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - ast-types-flow: 0.0.7 - axe-core: 4.6.2 - axobject-query: 3.1.1 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - eslint: 8.47.0 - has: 1.0.3 - jsx-ast-utils: 3.3.3 - language-tags: 1.0.5 - minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - semver: 6.3.0 - dev: false - /eslint-plugin-node/11.1.0_eslint@8.31.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} @@ -16138,15 +15811,6 @@ packages: eslint: 8.45.0 dev: false - /eslint-plugin-react-hooks/5.0.0-canary-7118f5dd7-20230705_eslint@8.47.0: - resolution: {integrity: sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 8.47.0 - dev: false - /eslint-plugin-react/7.31.8_eslint@8.31.0: resolution: {integrity: sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==} engines: {node: '>=4'} @@ -16266,30 +15930,6 @@ packages: string.prototype.matchall: 4.0.8 dev: false - /eslint-plugin-react/7.32.2_eslint@8.47.0: - resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - array.prototype.tosorted: 1.1.1 - doctrine: 2.1.0 - eslint: 8.47.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.3 - minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - object.hasown: 1.1.2 - object.values: 1.1.6 - prop-types: 15.8.1 - resolve: 2.0.0-next.4 - semver: 6.3.0 - string.prototype.matchall: 4.0.8 - dev: false - /eslint-plugin-testing-library/5.11.0_iukboom6ndih5an6iafl45j2fe: resolution: {integrity: sha512-ELY7Gefo+61OfXKlQeXNIDVVLPcvKTeiQOoMZG9TeuWa7Ln4dUNRv8JdRWBQI9Mbb427XGlVB1aa1QPZxBJM8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'} @@ -16335,14 +15975,6 @@ packages: esrecurse: 4.3.0 estraverse: 5.3.0 - /eslint-scope/7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: false - /eslint-utils/2.1.0: resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} engines: {node: '>=6'} @@ -16577,52 +16209,6 @@ packages: - supports-color dev: false - /eslint/8.47.0: - resolution: {integrity: sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0_eslint@8.47.0 - '@eslint-community/regexpp': 4.6.2 - '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.47.0 - '@humanwhocodes/config-array': 0.11.10 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.19.0 - graphemer: 1.4.0 - ignore: 5.2.4 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: false - /espree/9.4.1: resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -16640,15 +16226,6 @@ packages: acorn-jsx: 5.3.2_acorn@8.10.0 eslint-visitor-keys: 3.4.2 - /espree/9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2_acorn@8.10.0 - eslint-visitor-keys: 3.4.3 - dev: false - /esprima/4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -16836,7 +16413,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/expect-utils': 29.6.2 - '@types/node': 20.4.8 + '@types/node': 20.5.0 jest-get-type: 29.4.3 jest-matcher-utils: 29.6.2 jest-message-util: 29.6.2 @@ -18198,6 +17775,15 @@ packages: postcss: 8.4.27 dev: true + /icss-utils/5.1.0_postcss@8.4.28: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.28 + dev: true + /ieee754/1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -18888,7 +18474,7 @@ packages: '@jest/expect': 29.6.2 '@jest/test-result': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -18978,7 +18564,7 @@ packages: - supports-color dev: true - /jest-config/29.6.2_@types+node@20.4.8: + /jest-config/29.6.2_@types+node@20.5.0: resolution: {integrity: sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -18993,7 +18579,7 @@ packages: '@babel/core': 7.21.8 '@jest/test-sequencer': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 babel-jest: 29.6.2_@babel+core@7.21.8 chalk: 4.1.2 ci-info: 3.7.1 @@ -19053,7 +18639,7 @@ packages: '@jest/environment': 29.6.2 '@jest/fake-timers': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 jest-mock: 29.6.2 jest-util: 29.6.2 dev: true @@ -19069,7 +18655,7 @@ packages: dependencies: '@jest/types': 29.6.1 '@types/graceful-fs': 4.1.6 - '@types/node': 20.4.8 + '@types/node': 20.5.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -19088,7 +18674,7 @@ packages: dependencies: '@jest/types': 29.6.1 '@types/graceful-fs': 4.1.6 - '@types/node': 20.4.8 + '@types/node': 20.5.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -19139,7 +18725,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 dev: true /jest-mock/29.6.2: @@ -19147,7 +18733,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 jest-util: 29.6.2 dev: true @@ -19202,7 +18788,7 @@ packages: '@jest/test-result': 29.6.2 '@jest/transform': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 @@ -19233,7 +18819,7 @@ packages: '@jest/test-result': 29.6.2 '@jest/transform': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -19285,7 +18871,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 chalk: 4.1.2 ci-info: 3.7.1 graceful-fs: 4.2.10 @@ -19297,7 +18883,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 chalk: 4.1.2 ci-info: 3.7.1 graceful-fs: 4.2.10 @@ -19322,7 +18908,7 @@ packages: dependencies: '@jest/test-result': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.8 + '@types/node': 20.5.0 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -19334,7 +18920,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -19343,7 +18929,7 @@ packages: resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 jest-util: 29.6.2 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -19353,7 +18939,7 @@ packages: resolution: {integrity: sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 jest-util: 29.6.2 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -21085,7 +20671,7 @@ packages: '@next/env': 13.4.12 '@swc/helpers': 0.5.1 busboy: 1.6.0 - caniuse-lite: 1.0.30001504 + caniuse-lite: 1.0.30001521 postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 @@ -21107,46 +20693,6 @@ packages: - babel-plugin-macros dev: false - /next/13.4.16_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-1xaA/5DrfpPu0eV31Iro7JfPeqO8uxQWb1zYNTe+KDKdzqkAGapLcDYHMLNKXKB7lHjZ7LfKUOf9dyuzcibrhA==} - engines: {node: '>=16.8.0'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - react: ^18.2.0 - react-dom: ^18.2.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - sass: - optional: true - dependencies: - '@next/env': 13.4.16 - '@swc/helpers': 0.5.1 - busboy: 1.6.0 - caniuse-lite: 1.0.30001504 - postcss: 8.4.14 - react: 18.2.0 - react-dom: 18.2.0_react@18.2.0 - styled-jsx: 5.1.1_react@18.2.0 - watchpack: 2.4.0 - zod: 3.21.4 - optionalDependencies: - '@next/swc-darwin-arm64': 13.4.16 - '@next/swc-darwin-x64': 13.4.16 - '@next/swc-linux-arm64-gnu': 13.4.16 - '@next/swc-linux-arm64-musl': 13.4.16 - '@next/swc-linux-x64-gnu': 13.4.16 - '@next/swc-linux-x64-musl': 13.4.16 - '@next/swc-win32-arm64-msvc': 13.4.16 - '@next/swc-win32-ia32-msvc': 13.4.16 - '@next/swc-win32-x64-msvc': 13.4.16 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - dev: false - /ngrok/5.0.0-beta.2: resolution: {integrity: sha512-UzsyGiJ4yTTQLCQD11k1DQaMwq2/SsztBg2b34zAqcyjS25qjDpogMKPaCKHwe/APRTHeel3iDXcVctk5CNaCQ==} engines: {node: '>=14.2'} @@ -21266,10 +20812,6 @@ packages: /node-releases/2.0.12: resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==} - /node-releases/2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - dev: false - /nodemon/3.0.1: resolution: {integrity: sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==} engines: {node: '>=10'} @@ -22304,7 +21846,7 @@ packages: jiti: 1.18.2 klona: 2.0.6 postcss: 8.4.21 - semver: 7.5.0 + semver: 7.5.4 dev: true /postcss-modules-extract-imports/3.0.0_postcss@8.4.27: @@ -22316,6 +21858,15 @@ packages: postcss: 8.4.27 dev: true + /postcss-modules-extract-imports/3.0.0_postcss@8.4.28: + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.28 + dev: true + /postcss-modules-local-by-default/4.0.0_postcss@8.4.27: resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} engines: {node: ^10 || ^12 || >= 14} @@ -22328,6 +21879,18 @@ packages: postcss-value-parser: 4.2.0 dev: true + /postcss-modules-local-by-default/4.0.0_postcss@8.4.28: + resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0_postcss@8.4.28 + postcss: 8.4.28 + postcss-selector-parser: 6.0.11 + postcss-value-parser: 4.2.0 + dev: true + /postcss-modules-scope/3.0.0_postcss@8.4.27: resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} @@ -22338,6 +21901,16 @@ packages: postcss-selector-parser: 6.0.11 dev: true + /postcss-modules-scope/3.0.0_postcss@8.4.28: + resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.4.28 + postcss-selector-parser: 6.0.11 + dev: true + /postcss-modules-values/4.0.0_postcss@8.4.27: resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} @@ -22348,6 +21921,16 @@ packages: postcss: 8.4.27 dev: true + /postcss-modules-values/4.0.0_postcss@8.4.28: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0_postcss@8.4.28 + postcss: 8.4.28 + dev: true + /postcss-modules/6.0.0_postcss@8.4.27: resolution: {integrity: sha512-7DGfnlyi/ju82BRzTIjWS5C4Tafmzl3R79YP/PASiocj+aa6yYphHhhKUOEoXQToId5rgyFgJ88+ccOUydjBXQ==} peerDependencies: @@ -22459,7 +22042,6 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: false /postgres-array/2.0.0: resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} @@ -22726,7 +22308,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.4.8 + '@types/node': 20.5.0 long: 5.2.3 dev: false @@ -23578,7 +23160,7 @@ packages: adjust-sourcemap-loader: 4.0.0 convert-source-map: 1.9.0 loader-utils: 2.0.4 - postcss: 8.4.27 + postcss: 8.4.28 source-map: 0.6.1 dev: true @@ -24558,7 +24140,7 @@ packages: resolution: {integrity: sha512-WrDlYH1p5jliY7uzSU5nLDY7OCIeRe6FkC0hhScpTGwMthP/Muk38WXGeggjDHKeXAGCs43jUheZ7Ud/NEAJdg==} engines: {node: '>=12.*'} dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 qs: 6.11.0 /striptags/2.2.1: @@ -26005,17 +25587,6 @@ packages: setimmediate: 1.0.5 dev: false - /update-browserslist-db/1.0.11_browserslist@4.21.10: - resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.10 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: false - /update-browserslist-db/1.0.11_browserslist@4.21.4: resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} hasBin: true @@ -26283,7 +25854,7 @@ packages: - terser dev: true - /vite-node/0.28.5_@types+node@20.4.8: + /vite-node/0.28.5_@types+node@20.5.0: resolution: {integrity: sha512-LmXb9saMGlrMZbXTvOveJKwMTBTNUH66c8rJnQ0ZPNX+myPEol64+szRzXtV5ORb0Hb/91yq+/D3oERoyAt6LA==} engines: {node: '>=v14.16.0'} hasBin: true @@ -26295,7 +25866,7 @@ packages: picocolors: 1.0.0 source-map: 0.6.1 source-map-support: 0.5.21 - vite: 4.1.4_@types+node@20.4.8 + vite: 4.1.4_@types+node@20.5.0 transitivePeerDependencies: - '@types/node' - less @@ -26385,7 +25956,7 @@ packages: fsevents: 2.3.2 dev: true - /vite/4.1.4_@types+node@20.4.8: + /vite/4.1.4_@types+node@20.5.0: resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -26410,7 +25981,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.4.8 + '@types/node': 20.5.0 esbuild: 0.16.17 postcss: 8.4.27 resolve: 1.22.1 @@ -26443,7 +26014,7 @@ packages: dependencies: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 - '@types/node': 20.4.8 + '@types/node': 20.5.0 '@vitest/expect': 0.28.5 '@vitest/runner': 0.28.5 '@vitest/spy': 0.28.5 @@ -26462,8 +26033,8 @@ packages: tinybench: 2.3.1 tinypool: 0.3.1 tinyspy: 1.0.2 - vite: 4.1.4_@types+node@20.4.8 - vite-node: 0.28.5_@types+node@20.4.8 + vite: 4.1.4_@types+node@20.5.0 + vite-node: 0.28.5_@types+node@20.5.0 why-is-node-running: 2.2.2 transitivePeerDependencies: - less