diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml new file mode 100644 index 00000000..b4cb9e2c --- /dev/null +++ b/.github/workflows/e2e.yml @@ -0,0 +1,158 @@ +name: E2E Tests + +on: + schedule: + - cron: '0 0 * * *' + push: + branches: + - main + +env: + PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 + PLAYWRIGHT_BROWSERS_PATH: 0 + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + +permissions: + id-token: write # This is required for requesting the JWT + contents: read # This is required for actions/checkout + +jobs: + check_next_version: + runs-on: ubuntu-latest + + steps: + - name: Get Latest Next Version + id: get_latest_version + run: | + latest_version=$(curl -s https://api.github.com/repos/vercel/next.js/releases/latest | jq -r '.tag_name') + echo "Latest version: $latest_version" + echo "LATEST_VERSION=$latest_version" >> $GITHUB_ENV + echo "LATEST_VERSION=$latest_version" >> $GITHUB_OUTPUT + + - name: Restore Cache Previous Version + id: cache-previous + uses: actions/cache/restore@v3 + with: + path: previous_version.txt + key: ${{ runner.os }}-previous-${{ steps.get_latest_version.outputs.LATEST_VERSION }} + + - name: Compare Versions + id: compare_versions + run: | + latest_version=$LATEST_VERSION + if [ -f previous_version.txt ]; then + previous_version=$(cat previous_version.txt) + echo "pv: $previous_version" + else + previous_version="" + fi + + if [ "$latest_version" != "$previous_version" ]; then + echo "Versions are different. Continuing the pipeline." + else + echo "Versions are the same. Exiting with success." + echo "SKIP=true" >> $GITHUB_OUTPUT + fi + + outputs: + skip: ${{ steps.compare_versions.outputs.SKIP }} + previousNextVersion: ${{ steps.get_latest_version.outputs.LATEST_VERSION }} + cacheKey: ${{ steps.cache-previous.outputs.cache-primary-key }} + + e2e: + needs: check_next_version + if: needs.check_next_version.outputs.skip != 'true' + runs-on: ubuntu-latest + steps: + + - name: Checkout code + uses: actions/checkout@v3 + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v2 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: us-east-1 + + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 8 + + - name: Set up NodeJS v18 + uses: actions/setup-node@v3 + with: + cache: pnpm # cache pnpm store + node-version: 18.16.1 + + - name: Install packages + run: pnpm install + + - name: Get Playwright version + id: playwright-version + run: echo "version=$(npm ls @playwright/test | grep @playwright | sed 's/.*@//' | sed 's/ .*//' )" + + - name: Cache Playwright + uses: actions/cache@v3 + id: playwright-cache + with: + path: "~/.cache/ms-playwright" + key: ${{ runner.os }}-playwright-${{ steps.playwright-version.outputs.version }} + restore-keys: | + ${{ runner.os }}-playwright- + + - name: Install Playwright + if: steps.playwright-cache.outputs.cache-hit != 'true' + run: pnpm exec playwright install chromium --with-deps + + # Cache turbo runs + - name: Cache Turbo + uses: actions/cache@v3 + with: + path: .turbo + key: ${{ runner.os }}-turbo-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-turbo- + + # Build all the packages + - name: Build + run: pnpm run build + + # Deploy e2e stage + - name: Deploy NextjsSite + working-directory: examples/sst + run: npx sst deploy --stage e2e + + # Load app urls from .sst/output.json file + - name: Set environments + working-directory: examples/sst + run: | + APP_ROUTER_URL=$(jq -r '.["e2e-example-AppRouter"].url' .sst/outputs.json) + echo "APP_ROUTER_URL=$APP_ROUTER_URL" >> $GITHUB_ENV + PAGES_ROUTER_URL=$(jq -r '.["e2e-example-PagesRouter"].url' .sst/outputs.json) + echo "PAGES_ROUTER_URL=$PAGES_ROUTER_URL" >> $GITHUB_ENV + APP_PAGES_ROUTER_URL=$(jq -r '.["e2e-example-AppPagesRouter"].url' .sst/outputs.json) + echo "APP_PAGES_ROUTER_URL=$APP_PAGES_ROUTER_URL" >> $GITHUB_ENV + + - name: Run e2e Test + run: npm run e2e:test + + - name: Archive + if: failure() + uses: actions/upload-artifact@v3 + with: + name: sst + path: | + .sst/ + .next/ + + - name: Store Latest Version + run: | + echo "${{ needs.check_next_version.outputs.previousNextVersion }}" > previous_version.txt + + - name: Cache Previous Version + uses: actions/cache/save@v3 + with: + path: previous_version.txt + key: ${{ needs.check_next_version.outputs.cacheKey }} diff --git a/.gitignore b/.gitignore index 0e3845a6..1175aeaf 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,14 @@ docs/out/ .DS_Store # typescript -next-env.d.ts \ No newline at end of file +next-env.d.ts + +.turbo +# Tests +tests-unit/coverage +test-results + +.sst/ +.sst.config* +.next/ +.open-next/ \ No newline at end of file diff --git a/.npmrc b/.npmrc index 3a1c239d..bab15d5a 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1,3 @@ shared-workspace-lockfile = true auto-install-peers = true +node-linker=hoisted diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..9d3e05b7 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,10 @@ +{ + "files.exclude": { + "**/.turbo": true + }, + "tailwindCSS.classAttributes": [ + "class", + "className", + "tw" + ], +} \ No newline at end of file diff --git a/docs/pages/_app.tsx b/docs/pages/_app.tsx index 9a7d3375..6bb3f5c4 100644 --- a/docs/pages/_app.tsx +++ b/docs/pages/_app.tsx @@ -17,6 +17,7 @@ export default function App({ Component, pageProps }: AppProps) { } `} + {/* @ts-ignore */} diff --git a/docs/tsconfig.json b/docs/tsconfig.json index 99710e85..0457d2b2 100644 --- a/docs/tsconfig.json +++ b/docs/tsconfig.json @@ -8,8 +8,8 @@ "forceConsistentCasingInFileNames": true, "noEmit": true, "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "node", + "module": "NodeNext", + "moduleResolution": "NodeNext", "resolveJsonModule": true, "isolatedModules": true, "jsx": "preserve", diff --git a/example/package.json b/example/package.json index f1914ff3..ac30030e 100644 --- a/example/package.json +++ b/example/package.json @@ -20,8 +20,8 @@ "swr": "^1.0.1" }, "devDependencies": { - "aws-cdk-lib": "2.84.0", - "constructs": "10.1.156", - "sst": "2.16.3" + "aws-cdk-lib": "2.91.0", + "constructs": "10.2.69", + "sst": "2.24.20" } } diff --git a/examples/app-pages-router/.gitignore b/examples/app-pages-router/.gitignore new file mode 100644 index 00000000..61cbd98f --- /dev/null +++ b/examples/app-pages-router/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +.open-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/app-pages-router/README.md b/examples/app-pages-router/README.md new file mode 100644 index 00000000..f4da3c4c --- /dev/null +++ b/examples/app-pages-router/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/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx b/examples/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx new file mode 100644 index 00000000..cca33b8b --- /dev/null +++ b/examples/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx @@ -0,0 +1,28 @@ +import { getSong } from "@example/shared/api"; +import Modal from "@example/shared/components/Modal"; + +type Props = { + params: { + album: string; + song: string; + }; +}; +export default async function SongPage({ params }: Props) { + const song = await getSong(params.album, params.song); + return ( + +

Modal

+ Album: {decodeURIComponent(params.album)} +
+ {/*
+
+ ); +} diff --git a/examples/app-pages-router/app/albums/@modal/(.)[album]/page.tsx b/examples/app-pages-router/app/albums/@modal/(.)[album]/page.tsx new file mode 100644 index 00000000..4447a618 --- /dev/null +++ b/examples/app-pages-router/app/albums/@modal/(.)[album]/page.tsx @@ -0,0 +1,10 @@ +import Modal from "@example/shared/components/Modal"; + +type Props = { + params: { + artist: string; + }; +}; +export default function ArtistPage({ params }: Props) { + return Artists {params.artist}; +} diff --git a/examples/app-pages-router/app/albums/@modal/default.tsx b/examples/app-pages-router/app/albums/@modal/default.tsx new file mode 100644 index 00000000..6ddf1b76 --- /dev/null +++ b/examples/app-pages-router/app/albums/@modal/default.tsx @@ -0,0 +1,3 @@ +export default function Default() { + return null; +} diff --git a/examples/app-pages-router/app/albums/[album]/[song]/page.tsx b/examples/app-pages-router/app/albums/[album]/[song]/page.tsx new file mode 100644 index 00000000..63c5dc30 --- /dev/null +++ b/examples/app-pages-router/app/albums/[album]/[song]/page.tsx @@ -0,0 +1,24 @@ +import { getSong } from "@example/shared/api"; + +type Props = { + params: { + album: string; + song: string; + }; +}; +export default async function Song({ params }: Props) { + const song = await getSong(params.album, params.song); + + return ( +
+

Not Modal

+ {decodeURIComponent(params.album)} + +
+ ); +} diff --git a/examples/app-pages-router/app/albums/[album]/page.tsx b/examples/app-pages-router/app/albums/[album]/page.tsx new file mode 100644 index 00000000..8d3a5537 --- /dev/null +++ b/examples/app-pages-router/app/albums/[album]/page.tsx @@ -0,0 +1,3 @@ +export default function ArtistPage() { + return
Artist
; +} diff --git a/examples/app-pages-router/app/albums/layout.tsx b/examples/app-pages-router/app/albums/layout.tsx new file mode 100644 index 00000000..815c70ba --- /dev/null +++ b/examples/app-pages-router/app/albums/layout.tsx @@ -0,0 +1,16 @@ +import { ReactNode } from "react"; + +export default function Layout({ + children, + modal, +}: { + children: ReactNode; + modal: ReactNode; +}) { + return ( +
+ {children} + {modal} +
+ ); +} diff --git a/examples/app-pages-router/app/albums/page.tsx b/examples/app-pages-router/app/albums/page.tsx new file mode 100644 index 00000000..6471009b --- /dev/null +++ b/examples/app-pages-router/app/albums/page.tsx @@ -0,0 +1,13 @@ +import { getAlbums } from "@example/shared/api"; +import Album from "@example/shared/components/Album"; + +export default async function AlbumPage() { + const albums = await getAlbums(); + return ( +
+ {albums.map((album) => ( + + ))} +
+ ); +} diff --git a/examples/app-pages-router/app/api/client/route.ts b/examples/app-pages-router/app/api/client/route.ts new file mode 100644 index 00000000..e9c204ba --- /dev/null +++ b/examples/app-pages-router/app/api/client/route.ts @@ -0,0 +1,7 @@ +import { NextResponse } from "next/server"; + +export async function GET(request: Request) { + return NextResponse.json({ + hello: "client", + }); +} diff --git a/examples/app-pages-router/app/api/host/route.ts b/examples/app-pages-router/app/api/host/route.ts new file mode 100644 index 00000000..16630b34 --- /dev/null +++ b/examples/app-pages-router/app/api/host/route.ts @@ -0,0 +1,7 @@ +import { NextResponse } from "next/server"; + +export async function GET(request: Request) { + return NextResponse.json({ + url: request.url, + }); +} diff --git a/examples/app-pages-router/app/api/page.tsx b/examples/app-pages-router/app/api/page.tsx new file mode 100644 index 00000000..0771ac5a --- /dev/null +++ b/examples/app-pages-router/app/api/page.tsx @@ -0,0 +1,40 @@ +"use client"; + +import { useCallback, useState } from "react"; + +/** + * Make /api/hello call exclusively on the client + * - we already know SSR can fetch itself w/o issues + */ +export default function Page() { + const [data, setData] = useState(); + + const onClientClick = useCallback(async () => { + const { protocol, host } = window.location; + const url = `${protocol}//${host}`; + const r = await fetch(`${url}/api/client`); + const d = await r.json(); + setData(d); + }, []); + + const onMiddlewareClick = useCallback(async () => { + const { protocol, host } = window.location; + const url = `${protocol}//${host}`; + const r = await fetch(`${url}/api/middleware`); + const d = await r.json(); + setData(d); + }, []); + + return ( +
+
API: {data ? JSON.stringify(data, null, 2) : "N/A"}
+ + + +
+ ); +} diff --git a/examples/app-pages-router/app/globals.css b/examples/app-pages-router/app/globals.css new file mode 100644 index 00000000..fd81e885 --- /dev/null +++ b/examples/app-pages-router/app/globals.css @@ -0,0 +1,27 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + } +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient( + to bottom, + transparent, + rgb(var(--background-end-rgb)) + ) + rgb(var(--background-start-rgb)); +} diff --git a/examples/app-pages-router/app/isr/page.tsx b/examples/app-pages-router/app/isr/page.tsx new file mode 100644 index 00000000..e88f677c --- /dev/null +++ b/examples/app-pages-router/app/isr/page.tsx @@ -0,0 +1,9 @@ +async function getTime() { + return new Date().toISOString(); +} + +export const revalidate = 10; +export default async function ISR() { + const time = getTime(); + return
ISR: {time}
; +} diff --git a/examples/app-pages-router/app/layout.tsx b/examples/app-pages-router/app/layout.tsx new file mode 100644 index 00000000..85e1c420 --- /dev/null +++ b/examples/app-pages-router/app/layout.tsx @@ -0,0 +1,23 @@ +import "./globals.css"; + +import type { Metadata } from "next"; +import { Inter } from "next/font/google"; + +const inter = Inter({ subsets: ["latin"] }); + +export const metadata: Metadata = { + title: "Nextjs App Router", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + {children} + + ); +} diff --git a/examples/app-pages-router/app/page.tsx b/examples/app-pages-router/app/page.tsx new file mode 100644 index 00000000..0fd02970 --- /dev/null +++ b/examples/app-pages-router/app/page.tsx @@ -0,0 +1,48 @@ +import Nav from "@example/shared/components/Nav"; + +export default function Home() { + return ( + <> +

App Router

+
+ + + + + + + + +
+

Pages Router

+
+ + +
+ + ); +} diff --git a/examples/app-pages-router/app/parallel/@a/a-page/page.tsx b/examples/app-pages-router/app/parallel/@a/a-page/page.tsx new file mode 100644 index 00000000..8108d277 --- /dev/null +++ b/examples/app-pages-router/app/parallel/@a/a-page/page.tsx @@ -0,0 +1,3 @@ +export default function APage() { + return
A Page
; +} diff --git a/examples/app-pages-router/app/parallel/@a/page.tsx b/examples/app-pages-router/app/parallel/@a/page.tsx new file mode 100644 index 00000000..5e7ee146 --- /dev/null +++ b/examples/app-pages-router/app/parallel/@a/page.tsx @@ -0,0 +1,10 @@ +import Link from "next/link"; + +export default function A() { + return ( +
+

Parallel Route A

+ Go to a-page +
+ ); +} diff --git a/examples/app-pages-router/app/parallel/@b/b-page/page.tsx b/examples/app-pages-router/app/parallel/@b/b-page/page.tsx new file mode 100644 index 00000000..1750356e --- /dev/null +++ b/examples/app-pages-router/app/parallel/@b/b-page/page.tsx @@ -0,0 +1,3 @@ +export default function BPage() { + return
B Page
; +} diff --git a/examples/app-pages-router/app/parallel/@b/page.tsx b/examples/app-pages-router/app/parallel/@b/page.tsx new file mode 100644 index 00000000..b217f84e --- /dev/null +++ b/examples/app-pages-router/app/parallel/@b/page.tsx @@ -0,0 +1,11 @@ +import Link from "next/link"; + +export default function B() { + return ( +
+

Parallel Route B

+ + Go to b-page +
+ ); +} diff --git a/examples/app-pages-router/app/parallel/layout.tsx b/examples/app-pages-router/app/parallel/layout.tsx new file mode 100644 index 00000000..ab791f5a --- /dev/null +++ b/examples/app-pages-router/app/parallel/layout.tsx @@ -0,0 +1,48 @@ +"use client"; +import { ReactNode, useState } from "react"; + +export default function Layout({ + a, + b, + children, +}: { + children: ReactNode; + a: ReactNode; + b: ReactNode; +}) { + const [routeA, setRouteA] = useState(false); + const [routeB, setRouteB] = useState(false); + + return ( +
+
+ + +
+ + {routeA && a} + {routeB && b} + {/* {children} */} +
+ ); +} diff --git a/examples/app-pages-router/app/parallel/page.tsx b/examples/app-pages-router/app/parallel/page.tsx new file mode 100644 index 00000000..67e08591 --- /dev/null +++ b/examples/app-pages-router/app/parallel/page.tsx @@ -0,0 +1,3 @@ +export default function Page() { + return null; +} diff --git a/examples/app-pages-router/app/redirect-destination/page.tsx b/examples/app-pages-router/app/redirect-destination/page.tsx new file mode 100644 index 00000000..1fe01ac3 --- /dev/null +++ b/examples/app-pages-router/app/redirect-destination/page.tsx @@ -0,0 +1,3 @@ +export default function RedirectDestination() { + return
Redirect Destination
; +} diff --git a/examples/app-pages-router/app/rewrite-destination/page.tsx b/examples/app-pages-router/app/rewrite-destination/page.tsx new file mode 100644 index 00000000..c7ea97c3 --- /dev/null +++ b/examples/app-pages-router/app/rewrite-destination/page.tsx @@ -0,0 +1,3 @@ +export default function RewriteDestination() { + return
Rewritten Destination
; +} diff --git a/examples/app-pages-router/app/server-actions/client.tsx b/examples/app-pages-router/app/server-actions/client.tsx new file mode 100644 index 00000000..e5801872 --- /dev/null +++ b/examples/app-pages-router/app/server-actions/client.tsx @@ -0,0 +1,29 @@ +"use client"; +import { useCallback, useState, useTransition } from "react"; + +import type { Song as SongType } from "@example/shared/api"; +import { getSong } from "@example/shared/api"; +import Song from "@example/shared/components/Album/Song"; + +export default function Client() { + const [isPending, startTransition] = useTransition(); + const [song, setSong] = useState(); + + const onClick = useCallback(() => { + startTransition(async () => { + const song = await getSong( + "Hold Me In Your Arms", + "I'm never gonna give you up", + ); + setSong(song); + }); + }, []); + + return ( +
+ + {isPending &&
☎️ing Server Actions...
} + {song && } +
+ ); +} diff --git a/examples/app-pages-router/app/server-actions/page.tsx b/examples/app-pages-router/app/server-actions/page.tsx new file mode 100644 index 00000000..f15c66fc --- /dev/null +++ b/examples/app-pages-router/app/server-actions/page.tsx @@ -0,0 +1,10 @@ +import Client from "./client"; + +export default function Page() { + return ( +
+

Server Actions

+ +
+ ); +} diff --git a/examples/app-pages-router/app/ssr/loading.tsx b/examples/app-pages-router/app/ssr/loading.tsx new file mode 100644 index 00000000..fc80ef06 --- /dev/null +++ b/examples/app-pages-router/app/ssr/loading.tsx @@ -0,0 +1,3 @@ +export default function Loading() { + return
Loading...
; +} diff --git a/examples/app-pages-router/app/ssr/page.tsx b/examples/app-pages-router/app/ssr/page.tsx new file mode 100644 index 00000000..394f6e14 --- /dev/null +++ b/examples/app-pages-router/app/ssr/page.tsx @@ -0,0 +1,12 @@ +import { wait } from "@open-next/utils"; + +export const revalidate = 0; +export default async function SSR() { + await wait(2000); + const time = new Date().toISOString(); + return ( +
+

SSR {time}

+
+ ); +} diff --git a/examples/app-pages-router/middleware.ts b/examples/app-pages-router/middleware.ts new file mode 100644 index 00000000..f72ae027 --- /dev/null +++ b/examples/app-pages-router/middleware.ts @@ -0,0 +1,34 @@ +import { NextRequest, NextResponse } from "next/server"; + +export function middleware(request: NextRequest) { + const path = request.nextUrl.pathname; //new URL(request.url).pathname; + + const host = request.headers.get("host"); + const protocol = host?.startsWith("localhost") ? "http" : "https"; + if (path === "/redirect") { + const u = new URL("/redirect-destination", `${protocol}://${host}`); + return NextResponse.redirect(u); + } else if (path === "/rewrite") { + const u = new URL("/rewrite-destination", `${protocol}://${host}`); + return NextResponse.rewrite(u); + } else if (path === "/api/middleware") { + return new NextResponse(JSON.stringify({ hello: "middleware" }), { + status: 200, + headers: { + "content-type": "application/json", + }, + }); + } + + const rHeaders = new Headers(request.headers); + const r = NextResponse.next({ + request: { + headers: rHeaders, + }, + }); + return r; +} + +export const config = { + matcher: ["/((?!_next|favicon.ico|match|static|fonts|api/auth|og).*)"], +}; diff --git a/examples/app-pages-router/next.config.js b/examples/app-pages-router/next.config.js new file mode 100644 index 00000000..49dc3c03 --- /dev/null +++ b/examples/app-pages-router/next.config.js @@ -0,0 +1,11 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + poweredByHeader: false, + output: "standalone", + transpilePackages: ["@example/shared"], + experimental: { + serverActions: true, + }, +}; + +module.exports = nextConfig; diff --git a/examples/app-pages-router/package.json b/examples/app-pages-router/package.json new file mode 100644 index 00000000..ab204c26 --- /dev/null +++ b/examples/app-pages-router/package.json @@ -0,0 +1,30 @@ +{ + "name": "app-pages-router", + "version": "0.1.0", + "private": true, + "scripts": { + "openbuild": "node ../../packages/open-next/dist/index.js build --build-command \"npx turbo build\"", + "dev": "next dev --port 3003", + "build": "next build", + "start": "next start --port 3003", + "lint": "next lint", + "clean": "rm -rf .turbo && rm -rf node_modules" + }, + "dependencies": { + "open-next": "workspace:*", + "@example/shared": "workspace:*", + "@open-next/utils": "workspace:*" + }, + "devDependencies": { + "@types/node": "20.5.0", + "@types/react": "18.2.20", + "@types/react-dom": "18.2.7", + "autoprefixer": "10.4.15", + "next": "13.4.12", + "postcss": "8.4.27", + "react": "18.2.0", + "react-dom": "18.2.0", + "tailwindcss": "3.3.3", + "typescript": "^4.9.3" + } +} diff --git a/examples/app-pages-router/pages/_app.tsx b/examples/app-pages-router/pages/_app.tsx new file mode 100644 index 00000000..a9d6fd8d --- /dev/null +++ b/examples/app-pages-router/pages/_app.tsx @@ -0,0 +1,7 @@ +import "@/styles/globals.css"; + +import type { AppProps } from "next/app"; + +export default function App({ Component, pageProps }: AppProps) { + return ; +} diff --git a/examples/app-pages-router/pages/_document.tsx b/examples/app-pages-router/pages/_document.tsx new file mode 100644 index 00000000..ffc3f3cc --- /dev/null +++ b/examples/app-pages-router/pages/_document.tsx @@ -0,0 +1,13 @@ +import { Head, Html, Main, NextScript } from "next/document"; + +export default function Document() { + return ( + + + +
+ + + + ); +} diff --git a/examples/app-pages-router/pages/api/hello.ts b/examples/app-pages-router/pages/api/hello.ts new file mode 100644 index 00000000..11190ecf --- /dev/null +++ b/examples/app-pages-router/pages/api/hello.ts @@ -0,0 +1,13 @@ +// Next.js API route support: https://nextjs.org/docs/api-routes/introduction +import type { NextApiRequest, NextApiResponse } from "next"; + +type Data = { + hello: string; +}; + +export default function handler( + req: NextApiRequest, + res: NextApiResponse, +) { + res.status(200).json({ hello: "world" }); +} diff --git a/examples/app-pages-router/pages/pages_isr/index.tsx b/examples/app-pages-router/pages/pages_isr/index.tsx new file mode 100644 index 00000000..c5efe235 --- /dev/null +++ b/examples/app-pages-router/pages/pages_isr/index.tsx @@ -0,0 +1,16 @@ +import { InferGetStaticPropsType } from "next"; + +export async function getStaticProps() { + return { + props: { + time: new Date().toISOString(), + }, + revalidate: 10, + }; +} + +export default function Page({ + time, +}: InferGetStaticPropsType) { + return
ISR: {time}
; +} diff --git a/examples/app-pages-router/pages/pages_ssr/index.tsx b/examples/app-pages-router/pages/pages_ssr/index.tsx new file mode 100644 index 00000000..372da27a --- /dev/null +++ b/examples/app-pages-router/pages/pages_ssr/index.tsx @@ -0,0 +1,15 @@ +import { InferGetServerSidePropsType } from "next"; + +export async function getServerSideProps() { + return { + props: { + time: new Date().toISOString(), + }, + }; +} + +export default function Page({ + time, +}: InferGetServerSidePropsType) { + return
SSR: {time}
; +} diff --git a/examples/app-pages-router/postcss.config.js b/examples/app-pages-router/postcss.config.js new file mode 100644 index 00000000..12a703d9 --- /dev/null +++ b/examples/app-pages-router/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/examples/app-pages-router/public/favicon.ico b/examples/app-pages-router/public/favicon.ico new file mode 100644 index 00000000..4ba005f2 Binary files /dev/null and b/examples/app-pages-router/public/favicon.ico differ diff --git a/examples/app-pages-router/public/static/frank.webp b/examples/app-pages-router/public/static/frank.webp new file mode 100644 index 00000000..b2cc67f0 Binary files /dev/null and b/examples/app-pages-router/public/static/frank.webp differ diff --git a/examples/app-pages-router/sst-env.d.ts b/examples/app-pages-router/sst-env.d.ts new file mode 100644 index 00000000..59d33569 --- /dev/null +++ b/examples/app-pages-router/sst-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/examples/app-pages-router/styles/globals.css b/examples/app-pages-router/styles/globals.css new file mode 100644 index 00000000..ac35d370 --- /dev/null +++ b/examples/app-pages-router/styles/globals.css @@ -0,0 +1,111 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +: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/app-pages-router/tailwind.config.ts b/examples/app-pages-router/tailwind.config.ts new file mode 100644 index 00000000..79ebdacc --- /dev/null +++ b/examples/app-pages-router/tailwind.config.ts @@ -0,0 +1,19 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + content: [ + "./app/**/*.{js,ts,jsx,tsx,mdx}", + "../../examples/shared/**/*.{jsx,tsx}", + ], + theme: { + extend: { + backgroundImage: { + "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", + "gradient-conic": + "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", + }, + }, + }, + plugins: [], +}; +export default config; diff --git a/examples/app-pages-router/tsconfig.json b/examples/app-pages-router/tsconfig.json new file mode 100644 index 00000000..81f2bef5 --- /dev/null +++ b/examples/app-pages-router/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": "NodeNext", + "moduleResolution": "NodeNext", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/examples/app-router/.gitignore b/examples/app-router/.gitignore new file mode 100644 index 00000000..61cbd98f --- /dev/null +++ b/examples/app-router/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +.open-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/app-router/README.md b/examples/app-router/README.md new file mode 100644 index 00000000..f4da3c4c --- /dev/null +++ b/examples/app-router/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/app-router/app/albums/@modal/(.)[album]/[song]/page.tsx b/examples/app-router/app/albums/@modal/(.)[album]/[song]/page.tsx new file mode 100644 index 00000000..cca33b8b --- /dev/null +++ b/examples/app-router/app/albums/@modal/(.)[album]/[song]/page.tsx @@ -0,0 +1,28 @@ +import { getSong } from "@example/shared/api"; +import Modal from "@example/shared/components/Modal"; + +type Props = { + params: { + album: string; + song: string; + }; +}; +export default async function SongPage({ params }: Props) { + const song = await getSong(params.album, params.song); + return ( + +

Modal

+ Album: {decodeURIComponent(params.album)} +
+ {/*
+
+ ); +} diff --git a/examples/app-router/app/albums/@modal/(.)[album]/page.tsx b/examples/app-router/app/albums/@modal/(.)[album]/page.tsx new file mode 100644 index 00000000..4447a618 --- /dev/null +++ b/examples/app-router/app/albums/@modal/(.)[album]/page.tsx @@ -0,0 +1,10 @@ +import Modal from "@example/shared/components/Modal"; + +type Props = { + params: { + artist: string; + }; +}; +export default function ArtistPage({ params }: Props) { + return Artists {params.artist}; +} diff --git a/examples/app-router/app/albums/@modal/default.tsx b/examples/app-router/app/albums/@modal/default.tsx new file mode 100644 index 00000000..6ddf1b76 --- /dev/null +++ b/examples/app-router/app/albums/@modal/default.tsx @@ -0,0 +1,3 @@ +export default function Default() { + return null; +} diff --git a/examples/app-router/app/albums/[album]/[song]/page.tsx b/examples/app-router/app/albums/[album]/[song]/page.tsx new file mode 100644 index 00000000..63c5dc30 --- /dev/null +++ b/examples/app-router/app/albums/[album]/[song]/page.tsx @@ -0,0 +1,24 @@ +import { getSong } from "@example/shared/api"; + +type Props = { + params: { + album: string; + song: string; + }; +}; +export default async function Song({ params }: Props) { + const song = await getSong(params.album, params.song); + + return ( +
+

Not Modal

+ {decodeURIComponent(params.album)} + +
+ ); +} diff --git a/examples/app-router/app/albums/[album]/page.tsx b/examples/app-router/app/albums/[album]/page.tsx new file mode 100644 index 00000000..8d3a5537 --- /dev/null +++ b/examples/app-router/app/albums/[album]/page.tsx @@ -0,0 +1,3 @@ +export default function ArtistPage() { + return
Artist
; +} diff --git a/examples/app-router/app/albums/layout.tsx b/examples/app-router/app/albums/layout.tsx new file mode 100644 index 00000000..815c70ba --- /dev/null +++ b/examples/app-router/app/albums/layout.tsx @@ -0,0 +1,16 @@ +import { ReactNode } from "react"; + +export default function Layout({ + children, + modal, +}: { + children: ReactNode; + modal: ReactNode; +}) { + return ( +
+ {children} + {modal} +
+ ); +} diff --git a/examples/app-router/app/albums/page.tsx b/examples/app-router/app/albums/page.tsx new file mode 100644 index 00000000..6471009b --- /dev/null +++ b/examples/app-router/app/albums/page.tsx @@ -0,0 +1,13 @@ +import { getAlbums } from "@example/shared/api"; +import Album from "@example/shared/components/Album"; + +export default async function AlbumPage() { + const albums = await getAlbums(); + return ( +
+ {albums.map((album) => ( + + ))} +
+ ); +} diff --git a/examples/app-router/app/api/client/route.ts b/examples/app-router/app/api/client/route.ts new file mode 100644 index 00000000..e9c204ba --- /dev/null +++ b/examples/app-router/app/api/client/route.ts @@ -0,0 +1,7 @@ +import { NextResponse } from "next/server"; + +export async function GET(request: Request) { + return NextResponse.json({ + hello: "client", + }); +} diff --git a/examples/app-router/app/api/host/route.ts b/examples/app-router/app/api/host/route.ts new file mode 100644 index 00000000..16630b34 --- /dev/null +++ b/examples/app-router/app/api/host/route.ts @@ -0,0 +1,7 @@ +import { NextResponse } from "next/server"; + +export async function GET(request: Request) { + return NextResponse.json({ + url: request.url, + }); +} diff --git a/examples/app-router/app/api/page.tsx b/examples/app-router/app/api/page.tsx new file mode 100644 index 00000000..0771ac5a --- /dev/null +++ b/examples/app-router/app/api/page.tsx @@ -0,0 +1,40 @@ +"use client"; + +import { useCallback, useState } from "react"; + +/** + * Make /api/hello call exclusively on the client + * - we already know SSR can fetch itself w/o issues + */ +export default function Page() { + const [data, setData] = useState(); + + const onClientClick = useCallback(async () => { + const { protocol, host } = window.location; + const url = `${protocol}//${host}`; + const r = await fetch(`${url}/api/client`); + const d = await r.json(); + setData(d); + }, []); + + const onMiddlewareClick = useCallback(async () => { + const { protocol, host } = window.location; + const url = `${protocol}//${host}`; + const r = await fetch(`${url}/api/middleware`); + const d = await r.json(); + setData(d); + }, []); + + return ( +
+
API: {data ? JSON.stringify(data, null, 2) : "N/A"}
+ + + +
+ ); +} diff --git a/examples/app-router/app/globals.css b/examples/app-router/app/globals.css new file mode 100644 index 00000000..fd81e885 --- /dev/null +++ b/examples/app-router/app/globals.css @@ -0,0 +1,27 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + } +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient( + to bottom, + transparent, + rgb(var(--background-end-rgb)) + ) + rgb(var(--background-start-rgb)); +} diff --git a/examples/app-router/app/isr/page.tsx b/examples/app-router/app/isr/page.tsx new file mode 100644 index 00000000..e88f677c --- /dev/null +++ b/examples/app-router/app/isr/page.tsx @@ -0,0 +1,9 @@ +async function getTime() { + return new Date().toISOString(); +} + +export const revalidate = 10; +export default async function ISR() { + const time = getTime(); + return
ISR: {time}
; +} diff --git a/examples/app-router/app/layout.tsx b/examples/app-router/app/layout.tsx new file mode 100644 index 00000000..85e1c420 --- /dev/null +++ b/examples/app-router/app/layout.tsx @@ -0,0 +1,23 @@ +import "./globals.css"; + +import type { Metadata } from "next"; +import { Inter } from "next/font/google"; + +const inter = Inter({ subsets: ["latin"] }); + +export const metadata: Metadata = { + title: "Nextjs App Router", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + {children} + + ); +} diff --git a/examples/app-router/app/page.tsx b/examples/app-router/app/page.tsx new file mode 100644 index 00000000..1d7f8be9 --- /dev/null +++ b/examples/app-router/app/page.tsx @@ -0,0 +1,40 @@ +import Nav from "@example/shared/components/Nav"; + +export default function Home() { + return ( + <> +

Nextjs App Router

+ +
+ + + + + + + + +
+ + ); +} diff --git a/examples/app-router/app/parallel/@a/a-page/page.tsx b/examples/app-router/app/parallel/@a/a-page/page.tsx new file mode 100644 index 00000000..8108d277 --- /dev/null +++ b/examples/app-router/app/parallel/@a/a-page/page.tsx @@ -0,0 +1,3 @@ +export default function APage() { + return
A Page
; +} diff --git a/examples/app-router/app/parallel/@a/page.tsx b/examples/app-router/app/parallel/@a/page.tsx new file mode 100644 index 00000000..5e7ee146 --- /dev/null +++ b/examples/app-router/app/parallel/@a/page.tsx @@ -0,0 +1,10 @@ +import Link from "next/link"; + +export default function A() { + return ( +
+

Parallel Route A

+ Go to a-page +
+ ); +} diff --git a/examples/app-router/app/parallel/@b/b-page/page.tsx b/examples/app-router/app/parallel/@b/b-page/page.tsx new file mode 100644 index 00000000..1750356e --- /dev/null +++ b/examples/app-router/app/parallel/@b/b-page/page.tsx @@ -0,0 +1,3 @@ +export default function BPage() { + return
B Page
; +} diff --git a/examples/app-router/app/parallel/@b/page.tsx b/examples/app-router/app/parallel/@b/page.tsx new file mode 100644 index 00000000..b217f84e --- /dev/null +++ b/examples/app-router/app/parallel/@b/page.tsx @@ -0,0 +1,11 @@ +import Link from "next/link"; + +export default function B() { + return ( +
+

Parallel Route B

+ + Go to b-page +
+ ); +} diff --git a/examples/app-router/app/parallel/layout.tsx b/examples/app-router/app/parallel/layout.tsx new file mode 100644 index 00000000..ab791f5a --- /dev/null +++ b/examples/app-router/app/parallel/layout.tsx @@ -0,0 +1,48 @@ +"use client"; +import { ReactNode, useState } from "react"; + +export default function Layout({ + a, + b, + children, +}: { + children: ReactNode; + a: ReactNode; + b: ReactNode; +}) { + const [routeA, setRouteA] = useState(false); + const [routeB, setRouteB] = useState(false); + + return ( +
+
+ + +
+ + {routeA && a} + {routeB && b} + {/* {children} */} +
+ ); +} diff --git a/examples/app-router/app/parallel/page.tsx b/examples/app-router/app/parallel/page.tsx new file mode 100644 index 00000000..67e08591 --- /dev/null +++ b/examples/app-router/app/parallel/page.tsx @@ -0,0 +1,3 @@ +export default function Page() { + return null; +} diff --git a/examples/app-router/app/redirect-destination/page.tsx b/examples/app-router/app/redirect-destination/page.tsx new file mode 100644 index 00000000..1fe01ac3 --- /dev/null +++ b/examples/app-router/app/redirect-destination/page.tsx @@ -0,0 +1,3 @@ +export default function RedirectDestination() { + return
Redirect Destination
; +} diff --git a/examples/app-router/app/rewrite-destination/page.tsx b/examples/app-router/app/rewrite-destination/page.tsx new file mode 100644 index 00000000..c7ea97c3 --- /dev/null +++ b/examples/app-router/app/rewrite-destination/page.tsx @@ -0,0 +1,3 @@ +export default function RewriteDestination() { + return
Rewritten Destination
; +} diff --git a/examples/app-router/app/server-actions/client.tsx b/examples/app-router/app/server-actions/client.tsx new file mode 100644 index 00000000..e5801872 --- /dev/null +++ b/examples/app-router/app/server-actions/client.tsx @@ -0,0 +1,29 @@ +"use client"; +import { useCallback, useState, useTransition } from "react"; + +import type { Song as SongType } from "@example/shared/api"; +import { getSong } from "@example/shared/api"; +import Song from "@example/shared/components/Album/Song"; + +export default function Client() { + const [isPending, startTransition] = useTransition(); + const [song, setSong] = useState(); + + const onClick = useCallback(() => { + startTransition(async () => { + const song = await getSong( + "Hold Me In Your Arms", + "I'm never gonna give you up", + ); + setSong(song); + }); + }, []); + + return ( +
+ + {isPending &&
☎️ing Server Actions...
} + {song && } +
+ ); +} diff --git a/examples/app-router/app/server-actions/page.tsx b/examples/app-router/app/server-actions/page.tsx new file mode 100644 index 00000000..f15c66fc --- /dev/null +++ b/examples/app-router/app/server-actions/page.tsx @@ -0,0 +1,10 @@ +import Client from "./client"; + +export default function Page() { + return ( +
+

Server Actions

+ +
+ ); +} diff --git a/examples/app-router/app/ssr/loading.tsx b/examples/app-router/app/ssr/loading.tsx new file mode 100644 index 00000000..fc80ef06 --- /dev/null +++ b/examples/app-router/app/ssr/loading.tsx @@ -0,0 +1,3 @@ +export default function Loading() { + return
Loading...
; +} diff --git a/examples/app-router/app/ssr/page.tsx b/examples/app-router/app/ssr/page.tsx new file mode 100644 index 00000000..394f6e14 --- /dev/null +++ b/examples/app-router/app/ssr/page.tsx @@ -0,0 +1,12 @@ +import { wait } from "@open-next/utils"; + +export const revalidate = 0; +export default async function SSR() { + await wait(2000); + const time = new Date().toISOString(); + return ( +
+

SSR {time}

+
+ ); +} diff --git a/examples/app-router/middleware.ts b/examples/app-router/middleware.ts new file mode 100644 index 00000000..f72ae027 --- /dev/null +++ b/examples/app-router/middleware.ts @@ -0,0 +1,34 @@ +import { NextRequest, NextResponse } from "next/server"; + +export function middleware(request: NextRequest) { + const path = request.nextUrl.pathname; //new URL(request.url).pathname; + + const host = request.headers.get("host"); + const protocol = host?.startsWith("localhost") ? "http" : "https"; + if (path === "/redirect") { + const u = new URL("/redirect-destination", `${protocol}://${host}`); + return NextResponse.redirect(u); + } else if (path === "/rewrite") { + const u = new URL("/rewrite-destination", `${protocol}://${host}`); + return NextResponse.rewrite(u); + } else if (path === "/api/middleware") { + return new NextResponse(JSON.stringify({ hello: "middleware" }), { + status: 200, + headers: { + "content-type": "application/json", + }, + }); + } + + const rHeaders = new Headers(request.headers); + const r = NextResponse.next({ + request: { + headers: rHeaders, + }, + }); + return r; +} + +export const config = { + matcher: ["/((?!_next|favicon.ico|match|static|fonts|api/auth|og).*)"], +}; diff --git a/examples/app-router/next.config.js b/examples/app-router/next.config.js new file mode 100644 index 00000000..49dc3c03 --- /dev/null +++ b/examples/app-router/next.config.js @@ -0,0 +1,11 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + poweredByHeader: false, + output: "standalone", + transpilePackages: ["@example/shared"], + experimental: { + serverActions: true, + }, +}; + +module.exports = nextConfig; diff --git a/examples/app-router/package.json b/examples/app-router/package.json new file mode 100644 index 00000000..54cfafda --- /dev/null +++ b/examples/app-router/package.json @@ -0,0 +1,30 @@ +{ + "name": "app-router", + "version": "0.1.0", + "private": true, + "scripts": { + "openbuild": "node ../../packages/open-next/dist/index.js build --build-command \"npx turbo build\"", + "dev": "next dev --port 3001", + "build": "next build", + "start": "next start --port 3001", + "lint": "next lint", + "clean": "rm -rf .turbo && rm -rf node_modules" + }, + "dependencies": { + "open-next": "workspace:*", + "@example/shared": "workspace:*", + "@open-next/utils": "workspace:*" + }, + "devDependencies": { + "@types/node": "20.5.0", + "@types/react": "18.2.20", + "@types/react-dom": "18.2.7", + "autoprefixer": "10.4.15", + "next": "13.4.12", + "postcss": "8.4.27", + "react": "18.2.0", + "react-dom": "18.2.0", + "tailwindcss": "3.3.3", + "typescript": "^4.9.3" + } +} diff --git a/examples/app-router/postcss.config.js b/examples/app-router/postcss.config.js new file mode 100644 index 00000000..12a703d9 --- /dev/null +++ b/examples/app-router/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/examples/app-router/public/favicon.ico b/examples/app-router/public/favicon.ico new file mode 100644 index 00000000..4ba005f2 Binary files /dev/null and b/examples/app-router/public/favicon.ico differ diff --git a/examples/app-router/public/static/frank.webp b/examples/app-router/public/static/frank.webp new file mode 100644 index 00000000..b2cc67f0 Binary files /dev/null and b/examples/app-router/public/static/frank.webp differ diff --git a/examples/app-router/sst-env.d.ts b/examples/app-router/sst-env.d.ts new file mode 100644 index 00000000..59d33569 --- /dev/null +++ b/examples/app-router/sst-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/examples/app-router/tailwind.config.ts b/examples/app-router/tailwind.config.ts new file mode 100644 index 00000000..79ebdacc --- /dev/null +++ b/examples/app-router/tailwind.config.ts @@ -0,0 +1,19 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + content: [ + "./app/**/*.{js,ts,jsx,tsx,mdx}", + "../../examples/shared/**/*.{jsx,tsx}", + ], + theme: { + extend: { + backgroundImage: { + "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", + "gradient-conic": + "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", + }, + }, + }, + plugins: [], +}; +export default config; diff --git a/examples/app-router/tsconfig.json b/examples/app-router/tsconfig.json new file mode 100644 index 00000000..81f2bef5 --- /dev/null +++ b/examples/app-router/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": "NodeNext", + "moduleResolution": "NodeNext", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/examples/pages-router/.gitignore b/examples/pages-router/.gitignore new file mode 100644 index 00000000..13f9f4c2 --- /dev/null +++ b/examples/pages-router/.gitignore @@ -0,0 +1,37 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +.open-next +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/examples/pages-router/next.config.js b/examples/pages-router/next.config.js new file mode 100644 index 00000000..2884669b --- /dev/null +++ b/examples/pages-router/next.config.js @@ -0,0 +1,7 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + transpilePackages: ["@example/shared"], + reactStrictMode: true, +}; + +module.exports = nextConfig; diff --git a/examples/pages-router/package.json b/examples/pages-router/package.json new file mode 100644 index 00000000..9108854f --- /dev/null +++ b/examples/pages-router/package.json @@ -0,0 +1,27 @@ +{ + "name": "pages-router", + "version": "0.1.0", + "private": true, + "scripts": { + "openbuild": "node ../../packages/open-next/dist/index.js build --build-command \"npx turbo build\"", + "dev": "next dev --port 3002", + "build": "next build", + "start": "next start --port 3002", + "lint": "next lint", + "clean": "rm -rf .turbo && rm -rf node_modules" + }, + "dependencies": { + "@next/font": "13.4.16", + "@example/shared": "workspace:*", + "@types/node": "20.5.0", + "@types/react": "18.2.20", + "@types/react-dom": "18.2.7", + "autoprefixer": "10.4.15", + "next": "13.4.12", + "postcss": "8.4.27", + "react": "18.2.0", + "react-dom": "18.2.0", + "tailwindcss": "3.3.3", + "typescript": "^4.9.3" + } +} diff --git a/examples/pages-router/postcss.config.js b/examples/pages-router/postcss.config.js new file mode 100644 index 00000000..8dcd66fb --- /dev/null +++ b/examples/pages-router/postcss.config.js @@ -0,0 +1,11 @@ +module.exports = { + plugins: { + tailwindcss: { + content: [ + "./src/**/*.{js,ts,jsx,tsx,mdx}", + "../../examples/shared/**/*.{jsx,tsx}", + ], + }, + autoprefixer: {}, + }, +}; diff --git a/examples/pages-router/public/favicon.ico b/examples/pages-router/public/favicon.ico new file mode 100644 index 00000000..4ba005f2 Binary files /dev/null and b/examples/pages-router/public/favicon.ico differ diff --git a/examples/pages-router/public/static/frank.webp b/examples/pages-router/public/static/frank.webp new file mode 100644 index 00000000..b2cc67f0 Binary files /dev/null and b/examples/pages-router/public/static/frank.webp differ diff --git a/examples/pages-router/src/pages/_app.tsx b/examples/pages-router/src/pages/_app.tsx new file mode 100644 index 00000000..a9d6fd8d --- /dev/null +++ b/examples/pages-router/src/pages/_app.tsx @@ -0,0 +1,7 @@ +import "@/styles/globals.css"; + +import type { AppProps } from "next/app"; + +export default function App({ Component, pageProps }: AppProps) { + return ; +} diff --git a/examples/pages-router/src/pages/_document.tsx b/examples/pages-router/src/pages/_document.tsx new file mode 100644 index 00000000..ffc3f3cc --- /dev/null +++ b/examples/pages-router/src/pages/_document.tsx @@ -0,0 +1,13 @@ +import { Head, Html, Main, NextScript } from "next/document"; + +export default function Document() { + return ( + + + +
+ + + + ); +} diff --git a/examples/pages-router/src/pages/api/hello.ts b/examples/pages-router/src/pages/api/hello.ts new file mode 100644 index 00000000..11190ecf --- /dev/null +++ b/examples/pages-router/src/pages/api/hello.ts @@ -0,0 +1,13 @@ +// Next.js API route support: https://nextjs.org/docs/api-routes/introduction +import type { NextApiRequest, NextApiResponse } from "next"; + +type Data = { + hello: string; +}; + +export default function handler( + req: NextApiRequest, + res: NextApiResponse, +) { + res.status(200).json({ hello: "world" }); +} diff --git a/examples/pages-router/src/pages/index.tsx b/examples/pages-router/src/pages/index.tsx new file mode 100644 index 00000000..6c2712ba --- /dev/null +++ b/examples/pages-router/src/pages/index.tsx @@ -0,0 +1,28 @@ +import Nav from "@example/shared/components/Nav"; +import { Inter } from "@next/font/google"; +import Head from "next/head"; + +const inter = Inter({ subsets: ["latin"] }); + +export default function Home() { + return ( + <> + + Nextjs Pages Router + + + +
+

Nextjs Pages Router

+
+ + +
+
+ + ); +} diff --git a/examples/pages-router/src/pages/isr/index.tsx b/examples/pages-router/src/pages/isr/index.tsx new file mode 100644 index 00000000..c5efe235 --- /dev/null +++ b/examples/pages-router/src/pages/isr/index.tsx @@ -0,0 +1,16 @@ +import { InferGetStaticPropsType } from "next"; + +export async function getStaticProps() { + return { + props: { + time: new Date().toISOString(), + }, + revalidate: 10, + }; +} + +export default function Page({ + time, +}: InferGetStaticPropsType) { + return
ISR: {time}
; +} diff --git a/examples/pages-router/src/pages/ssr/index.tsx b/examples/pages-router/src/pages/ssr/index.tsx new file mode 100644 index 00000000..372da27a --- /dev/null +++ b/examples/pages-router/src/pages/ssr/index.tsx @@ -0,0 +1,15 @@ +import { InferGetServerSidePropsType } from "next"; + +export async function getServerSideProps() { + return { + props: { + time: new Date().toISOString(), + }, + }; +} + +export default function Page({ + time, +}: InferGetServerSidePropsType) { + return
SSR: {time}
; +} diff --git a/examples/pages-router/src/styles/globals.css b/examples/pages-router/src/styles/globals.css new file mode 100644 index 00000000..ac35d370 --- /dev/null +++ b/examples/pages-router/src/styles/globals.css @@ -0,0 +1,111 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +: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/pages-router/sst-env.d.ts b/examples/pages-router/sst-env.d.ts new file mode 100644 index 00000000..59d33569 --- /dev/null +++ b/examples/pages-router/sst-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/examples/pages-router/tsconfig.json b/examples/pages-router/tsconfig.json new file mode 100644 index 00000000..7b004a0c --- /dev/null +++ b/examples/pages-router/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "NodeNext", + "moduleResolution": "NodeNext", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] +} diff --git a/examples/shared/api/index.ts b/examples/shared/api/index.ts new file mode 100644 index 00000000..4b90ffaf --- /dev/null +++ b/examples/shared/api/index.ts @@ -0,0 +1,39 @@ +"use server"; +import data from "./songs.json"; + +export type Song = (typeof data.songs)[0]; +export type Album = { album: string; artist: string; songs: Song[] }; +const albumsMap: { [key: string]: Song[] } = {}; + +const albums: Album[] = []; +data.songs.forEach((s) => { + if (!albumsMap[s.album]) { + albumsMap[s.album] = [s]; + } else { + albumsMap[s.album].push(s); + } +}); + +Object.entries(albumsMap).forEach(([key, album]) => { + albums.push({ + album: album[0].album, + artist: album[0].artist, + songs: album, + }); +}); + +export async function getAlbums() { + return albums; +} + +export async function getSongs() { + return data.songs; +} + +export async function getSong(album: string, title: string) { + return data.songs.find( + (song) => + song.album === decodeURIComponent(album) && + song.title === decodeURIComponent(title), + ); +} diff --git a/examples/shared/api/songs.json b/examples/shared/api/songs.json new file mode 100644 index 00000000..5fe2db65 --- /dev/null +++ b/examples/shared/api/songs.json @@ -0,0 +1,36 @@ +{ + "songs": [ + { + "rank": 1, + "title": "I'm never gonna give you up", + "artist": "Rick Astley", + "album": "Hold Me In Your Arms", + "year": "1965", + "videoId": "dQw4w9WgXcQ" + }, + { + "rank": 2, + "title": "My Wang", + "artist": "Frank Wangnatra", + "album": "@franjiewang", + "year": "2023", + "videoId": "qQzdAsjWGPg" + }, + { + "rank": 3, + "title": "Excuse me miSST", + "artist": "Jay-Air", + "album": "@Jayair", + "year": "2023", + "videoId": "tnDh0JhmaFw" + }, + { + "rank": 4, + "title": "I don't want another CONSOLE-RRY", + "artist": "Dax", + "album": "@thxdr", + "year": "2023", + "videoId": "4JI70_9acgE" + } + ] +} \ No newline at end of file diff --git a/examples/shared/components/Album/Album.tsx b/examples/shared/components/Album/Album.tsx new file mode 100644 index 00000000..b5eac0a1 --- /dev/null +++ b/examples/shared/components/Album/Album.tsx @@ -0,0 +1,17 @@ +import type { Album } from "../../api/index"; +import Song from "./Song"; + +type Props = { + album: Album; +}; +export default function Album({ album }: Props) { + return ( +
+
Album: {album.album}
+
Artist: {album.artist}
+ {album.songs.map((song) => ( + + ))} +
+ ); +} diff --git a/examples/shared/components/Album/Song.tsx b/examples/shared/components/Album/Song.tsx new file mode 100644 index 00000000..0cc93e77 --- /dev/null +++ b/examples/shared/components/Album/Song.tsx @@ -0,0 +1,23 @@ +import type { Song } from "../../api/index"; + +type Props = { + song: Song; + play?: boolean; +}; +export default function Song({ song, play }: Props) { + return ( +
+
Song: {song.title}
+
Year: {song.year}
+ {play && ( + + )} +
+ ); +} diff --git a/examples/shared/components/Album/index.tsx b/examples/shared/components/Album/index.tsx new file mode 100644 index 00000000..633e3cdc --- /dev/null +++ b/examples/shared/components/Album/index.tsx @@ -0,0 +1,21 @@ +import Link from "next/link"; + +import type { Album } from "../../api/index"; +import Song from "./Song"; + +type Props = { + album: Album; +}; +export default function Album({ album }: Props) { + return ( +
+
Album: {album.album}
+
Artist: {album.artist}
+ {album.songs.map((song) => ( + + + + ))} +
+ ); +} diff --git a/examples/shared/components/Modal/index.tsx b/examples/shared/components/Modal/index.tsx new file mode 100644 index 00000000..fb306a4d --- /dev/null +++ b/examples/shared/components/Modal/index.tsx @@ -0,0 +1,53 @@ +"use client"; +import { MouseEventHandler, useCallback, useEffect, useRef } from "react"; + +import { useRouter } from "next/navigation"; + +export default function Modal({ children }: { children: React.ReactNode }) { + const overlay = useRef(null); + const wrapper = useRef(null); + const router = useRouter(); + + const onDismiss = useCallback(() => { + router.back(); + }, [router]); + + const onClick: MouseEventHandler = useCallback( + (e) => { + if ( + onDismiss && + (e.target === overlay.current || e.target === wrapper.current) + ) { + onDismiss(); + } + }, + [onDismiss, overlay, wrapper], + ); + + const onKeyDown = useCallback( + (e: KeyboardEvent) => { + if (e.key === "Escape") onDismiss(); + }, + [onDismiss], + ); + + useEffect(() => { + document.addEventListener("keydown", onKeyDown); + return () => document.removeEventListener("keydown", onKeyDown); + }, [onKeyDown]); + + return ( +
+
+ {children} +
+
+ ); +} diff --git a/examples/shared/components/Nav/index.tsx b/examples/shared/components/Nav/index.tsx new file mode 100644 index 00000000..cf3a6c79 --- /dev/null +++ b/examples/shared/components/Nav/index.tsx @@ -0,0 +1,31 @@ +"use client"; +import { PropsWithChildren } from "react"; + +import Link from "next/link"; + +type Props = PropsWithChildren & { + href: string; + title: string; + icon?: string; +}; +export default function Nav(p: Props) { + const { children, href, title, icon = "/static/frank.webp" } = p; + return ( + +
+
{title}
+
+ +
+
+
{children}
+ + ); +} diff --git a/examples/shared/package.json b/examples/shared/package.json new file mode 100644 index 00000000..c6acb41b --- /dev/null +++ b/examples/shared/package.json @@ -0,0 +1,14 @@ +{ + "name": "@example/shared", + "version": "0.0.0", + "scripts": { + "clean": "rm -rf .turbo && rm -rf node_modules" + }, + "dependencies": { + "react":"18.2.0" + }, + "devDependencies": { + "@types/react": "^18.0.26", + "@types/react-dom": "^18.0.9" + } +} \ No newline at end of file diff --git a/examples/shared/sst-env.d.ts b/examples/shared/sst-env.d.ts new file mode 100644 index 00000000..59d33569 --- /dev/null +++ b/examples/shared/sst-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/examples/shared/tsconfig.json b/examples/shared/tsconfig.json new file mode 100644 index 00000000..aa745ab0 --- /dev/null +++ b/examples/shared/tsconfig.json @@ -0,0 +1,38 @@ +{ + "include": [ + "." + ], + "exclude": [ + "dist", + "build", + "node_modules" + ], + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "inlineSources": false, + "isolatedModules": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "moduleResolution": "NodeNext", + "noUnusedLocals": true, + "noUnusedParameters": true, + "preserveWatchOutput": true, + "skipLibCheck": true, + "strict": true, + "removeComments": true, + "resolveJsonModule": true, + "sourceMap": true, + "baseUrl": ".", + "jsx": "react-jsx", + "lib": ["ES2022", "DOM"], + "module": "NodeNext", + "target": "ESNext", + "paths": { + "~/*": ["./*"] + } + } +} \ No newline at end of file diff --git a/examples/sst/README.md b/examples/sst/README.md new file mode 100644 index 00000000..d5a4256b --- /dev/null +++ b/examples/sst/README.md @@ -0,0 +1,3 @@ +# sst + +This example contains the AppRouter, PagesRouter, and AppPagesRouter Stacks for the end to end tests to hit. \ No newline at end of file diff --git a/examples/sst/package.json b/examples/sst/package.json new file mode 100644 index 00000000..e7cdafa7 --- /dev/null +++ b/examples/sst/package.json @@ -0,0 +1,16 @@ +{ + "name": "example_sst", + "version": "0.0.0", + "type": "module", + "private": true, + "scripts": { + }, + "dependencies": { + + }, + "devDependencies": { + "aws-cdk-lib": "2.91.0", + "constructs": "10.2.69", + "sst": "2.24.20" + } +} diff --git a/examples/sst/sst.config.ts b/examples/sst/sst.config.ts new file mode 100644 index 00000000..6cfb7f61 --- /dev/null +++ b/examples/sst/sst.config.ts @@ -0,0 +1,16 @@ +import { SSTConfig } from "sst"; + +import { AppRouter } from "./stacks/AppRouter"; +import { PagesRouter } from "./stacks/PagesRouter"; + +export default { + config(_input) { + return { + name: "example", + region: "us-east-1", + }; + }, + stacks(app) { + app.stack(AppRouter).stack(PagesRouter); + }, +} satisfies SSTConfig; diff --git a/examples/sst/stacks/AppRouter.ts b/examples/sst/stacks/AppRouter.ts new file mode 100644 index 00000000..07b74030 --- /dev/null +++ b/examples/sst/stacks/AppRouter.ts @@ -0,0 +1,14 @@ +import { NextjsSite } from "sst/constructs"; + +export function AppRouter({ stack }) { + const site = new NextjsSite(stack, "approuter", { + path: "../app-router", + buildCommand: "npm run openbuild", + bind: [], + environment: {}, + }); + + stack.addOutputs({ + url: site.url, + }); +} diff --git a/examples/sst/stacks/PagesRouter.ts b/examples/sst/stacks/PagesRouter.ts new file mode 100644 index 00000000..e6ae5842 --- /dev/null +++ b/examples/sst/stacks/PagesRouter.ts @@ -0,0 +1,14 @@ +import { NextjsSite } from "sst/constructs"; + +export function PagesRouter({ stack }) { + const site = new NextjsSite(stack, "pagesrouter", { + path: "../pages-router", + buildCommand: "npm run openbuild", + bind: [], + environment: {}, + }); + + stack.addOutputs({ + url: site.url, + }); +} diff --git a/package.json b/package.json index 447b9ec3..bdac6a72 100644 --- a/package.json +++ b/package.json @@ -8,18 +8,22 @@ "packages/*" ], "scripts": { - "build": "pnpm -r build", + "dev": "turbo run dev", + "build": "turbo run build", + "clean": "turbo run clean && rm -rf node_modules pnpm-lock.yaml", "lint": "eslint --ext .js,.ts,.tsx .", "lint:fix": "eslint --fix --ext .js,.ts,.tsx .", "version": "./.changeset/version", "release": "./.changeset/release", "release-snapshot": "./.changeset/snapshot" + }, "devDependencies": { "@changesets/changelog-github": "^0.4.4", "@changesets/cli": "^2.22.0", "@sladg/eslint-config-base": "1.4.1", - "eslint": "^8.47.0" + "eslint": "^8.47.0", + "turbo": "1.10.12" }, "engines": { "node": ">=16", diff --git a/packages/open-next/package.json b/packages/open-next/package.json index c205e624..d8b2cd0a 100644 --- a/packages/open-next/package.json +++ b/packages/open-next/package.json @@ -34,9 +34,9 @@ "README.md" ], "dependencies": { - "@aws-sdk/client-lambda": "^3.312.0", - "@aws-sdk/client-s3": "^3.312.0", - "@aws-sdk/client-sqs": "^3.312.0", + "@aws-sdk/client-lambda": "^3.398.0", + "@aws-sdk/client-s3": "^3.398.0", + "@aws-sdk/client-sqs": "^3.398.0", "@node-minify/core": "^8.0.6", "@node-minify/terser": "^8.0.6", "@tsconfig/node18": "^1.0.1", diff --git a/packages/open-next/src/adapters/server-adapter.ts b/packages/open-next/src/adapters/server-adapter.ts index 4d2ece77..6fb504f2 100644 --- a/packages/open-next/src/adapters/server-adapter.ts +++ b/packages/open-next/src/adapters/server-adapter.ts @@ -195,6 +195,7 @@ function createRequestHandler() { return new NextServer.default({ hostname: "localhost", port: 3000, + // @ts-ignore conf: { ...config, // Next.js compression should be disabled because of a bug in the bundled @@ -220,6 +221,7 @@ async function processRequest(req: IncomingMessage, res: ServerResponse) { delete req.body; try { + // @ts-ignore await requestHandler(req, res); } catch (e: any) { error("NextJS request failed.", e); @@ -282,13 +284,13 @@ async function revalidateIfRequired( // - Link to NextInternalRequestMeta: https://github.com/vercel/next.js/blob/57ab2818b93627e91c937a130fb56a36c41629c3/packages/next/src/server/request-meta.ts#L11 // @ts-ignore const internalMeta = req[Symbol.for("NextInternalRequestMeta")]; + // When using Pages Router, two requests will be received: + // 1. one for the page: /foo + // 2. one for the json data: /_next/data/BUILD_ID/foo.json + // The rewritten url is correct for 1, but that for the second request + // does not include the "/_next/data/" prefix. Need to add it. const revalidateUrl = internalMeta?._nextDidRewrite - ? // When using Pages Router, two requests will be received: - // 1. one for the page: /foo - // 2. one for the json data: /_next/data/BUILD_ID/foo.json - // The rewritten url is correct for 1, but that for the second request - // does not include the "/_next/data/" prefix. Need to add it. - rawPath.startsWith("/_next/data/") + ? rawPath.startsWith("/_next/data/") ? `/_next/data/${buildId}${internalMeta?._nextRewroteUrl}.json` : internalMeta?._nextRewroteUrl : rawPath; diff --git a/packages/open-next/tsconfig.json b/packages/open-next/tsconfig.json index 1450cb4f..ae80d1d2 100644 --- a/packages/open-next/tsconfig.json +++ b/packages/open-next/tsconfig.json @@ -2,7 +2,7 @@ "extends": "@tsconfig/node18/tsconfig.json", "compilerOptions": { "declaration": true, - "module": "esnext", + "module": "NodeNext", "moduleResolution": "nodenext", "outDir": "./dist", "allowSyntheticDefaultImports": true diff --git a/packages/tests-e2e/README.md b/packages/tests-e2e/README.md new file mode 100644 index 00000000..a08931f9 --- /dev/null +++ b/packages/tests-e2e/README.md @@ -0,0 +1,31 @@ +# End to End Integration Test + +This e2e testing suite tries to cover different permutations and features that Nextjs provides to catch missing features and/or breaking changes. + +The 3 permutations are: + +1. App Router project +2. Pages Router project +3. App + Pages Router project + +Their respective `tests/` folders are: + +1. [appDirOnly](./tests/appDirOnly) +2. [pagesOnly](./tests/pagesOnly) +3. [appDirAndPages](./tests//appDirAndPages) + +Their respective `packages/` are located at: + +1. [appRouter](/examples/app-router) +2. [pagesRouter](/examples/pages-router) +3. [appPagesRouter](/examples/app-pages-router) + +The GitHub actions will trigger the [e2e test](/.github/workflows//e2e.yml), which deploys the app in the [Example](/example/) folder. The deploy command is: + +``` +npx sst deploy --stage e2e +``` + +## Gotchas + +`isr.test.ts` returns a timestamp, when running `next dev`, ISR does not cache so each reload is a new timestamp. You'll need to `next build` and `next start` for Next to not cache. diff --git a/packages/tests-e2e/package.json b/packages/tests-e2e/package.json new file mode 100644 index 00000000..b1732490 --- /dev/null +++ b/packages/tests-e2e/package.json @@ -0,0 +1,17 @@ +{ + "name": "tests-e2e", + "version": "0.0.0", + "private": true, + "scripts": { + "e2e:dev": "playwright test --headed", + "e2e:test": "playwright test --retries=5", + "clean": "rm -rf .turbo && rm -rf node_modules" + }, + "dependencies": {}, + "devDependencies": { + "@playwright/test": "1.37.0", + "@open-next/utils": "workspace:*", + "start-server-and-test": "2.0.0", + "ts-node": "10.9.1" + } +} \ No newline at end of file diff --git a/packages/tests-e2e/playwright.config.js b/packages/tests-e2e/playwright.config.js new file mode 100644 index 00000000..fe7e08be --- /dev/null +++ b/packages/tests-e2e/playwright.config.js @@ -0,0 +1,27 @@ +import { defineConfig } from "@playwright/test"; + +export default defineConfig({ + projects: [ + { + name: "appRouter", + testMatch: ["tests/appRouter/*.test.ts"], + use: { + baseURL: process.env.APP_ROUTER_URL || "http://localhost:3001", + }, + }, + { + name: "pagesRouter", + testMatch: ["tests/pagesRouter/*.test.ts"], + use: { + baseURL: process.env.PAGES_ROUTER_URL || "http://localhost:3002", + }, + }, + { + name: "appPagesRouter", + testMatch: ["tests/appPagesRouter/*.test.ts"], + use: { + baseURL: process.env.APP_PAGES_ROUTER_URL || "http://localhost:3003", + }, + }, + ], +}); diff --git a/packages/tests-e2e/tests/appPagesRouter/api.test.ts b/packages/tests-e2e/tests/appPagesRouter/api.test.ts new file mode 100644 index 00000000..670f1b05 --- /dev/null +++ b/packages/tests-e2e/tests/appPagesRouter/api.test.ts @@ -0,0 +1,29 @@ +import { expect, test } from "@playwright/test"; + +test("API call from client", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "/API" }).click(); + + await page.waitForURL("/api"); + + let el = page.getByText("API: N/A"); + await expect(el).toBeVisible(); + + await page.getByRole("button", { name: "Call /api/client" }).click(); + el = page.getByText('API: { "hello": "client" }'); + await expect(el).toBeVisible(); +}); + +test("API call from middleware", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "/API" }).click(); + + await page.waitForURL("/api"); + + let el = page.getByText("API: N/A"); + await expect(el).toBeVisible(); + + await page.getByRole("button", { name: "Call /api/middleware" }).click(); + el = page.getByText('API: { "hello": "middleware" }'); + await expect(el).toBeVisible(); +}); diff --git a/packages/tests-e2e/tests/appPagesRouter/host.test.ts b/packages/tests-e2e/tests/appPagesRouter/host.test.ts new file mode 100644 index 00000000..9457029f --- /dev/null +++ b/packages/tests-e2e/tests/appPagesRouter/host.test.ts @@ -0,0 +1,12 @@ +// TOD: enable when 13.4.13 PRs are merged +// import { test, expect } from "@playwright/test"; + +// /** +// * Tests that the request.url is the deployed host and not localhost +// */ +// test("API call from client", async ({ baseURL, page }) => { +// await page.goto("/api/host"); + +// let el = page.getByText(`{"url":"${baseURL}/api/host"}`); +// await expect(el).toBeVisible(); +// }); diff --git a/packages/tests-e2e/tests/appPagesRouter/isr.test.ts b/packages/tests-e2e/tests/appPagesRouter/isr.test.ts new file mode 100644 index 00000000..37f8d076 --- /dev/null +++ b/packages/tests-e2e/tests/appPagesRouter/isr.test.ts @@ -0,0 +1,39 @@ +import { wait } from "@open-next/utils"; +import { expect, test } from "@playwright/test"; + +test("Incremental Static Regeneration", async ({ page }) => { + test.setTimeout(45000); + await page.goto("/"); + await page.getByRole("link", { name: "ISR" }).click(); + // Load the page a couple times to regenerate ISR + + let el = page.getByText("ISR"); + // Track the static time + let time = await el.textContent(); + let newTime; + let tempTime = time; + do { + await wait(1000); + await page.reload(); + time = tempTime; + el = page.getByText("ISR"); + newTime = await el.textContent(); + tempTime = newTime; + } while (time !== newTime); + await page.reload(); + + el = page.getByText("ISR"); + newTime = await el.textContent(); + + // Wait 10 seconds for ISR to regenerate time + await wait(15000); + await page.reload(); + await wait(5000); + await page.reload(); + await wait(5000); + await page.reload(); + el = page.getByText("ISR"); + newTime = await el.textContent(); + + expect(time).not.toEqual(newTime); +}); diff --git a/packages/tests-e2e/tests/appPagesRouter/middleware.redirect.test.ts b/packages/tests-e2e/tests/appPagesRouter/middleware.redirect.test.ts new file mode 100644 index 00000000..bb27a44d --- /dev/null +++ b/packages/tests-e2e/tests/appPagesRouter/middleware.redirect.test.ts @@ -0,0 +1,17 @@ +import { expect, test } from "@playwright/test"; + +test("Middleware Redirect", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "/Redirect" }).click(); + + // URL is immediately redirected + await page.waitForURL(`/redirect-destination`); + let el = page.getByText("Redirect Destination", { exact: true }); + await expect(el).toBeVisible(); + + // Loading page should also redirect + await page.goto(`/redirect`); + await page.waitForURL(`/redirect-destination`); + el = page.getByText("Redirect Destination", { exact: true }); + await expect(el).toBeVisible(); +}); diff --git a/packages/tests-e2e/tests/appPagesRouter/middleware.rewrite.test.ts b/packages/tests-e2e/tests/appPagesRouter/middleware.rewrite.test.ts new file mode 100644 index 00000000..2f24ed4b --- /dev/null +++ b/packages/tests-e2e/tests/appPagesRouter/middleware.rewrite.test.ts @@ -0,0 +1,16 @@ +import { expect, test } from "@playwright/test"; + +test("Middleware Rewrite", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "/Rewrite" }).click(); + + await page.waitForURL(`/rewrite`); + let el = page.getByText("Rewritten Destination", { exact: true }); + await expect(el).toBeVisible(); + + // Loading page should also rewrite + await page.goto(`/rewrite`); + await page.waitForURL(`/rewrite`); + el = page.getByText("Rewritten Destination", { exact: true }); + await expect(el).toBeVisible(); +}); diff --git a/packages/tests-e2e/tests/appPagesRouter/modals.test.ts b/packages/tests-e2e/tests/appPagesRouter/modals.test.ts new file mode 100644 index 00000000..f5be403d --- /dev/null +++ b/packages/tests-e2e/tests/appPagesRouter/modals.test.ts @@ -0,0 +1,24 @@ +import { expect, test } from "@playwright/test"; + +test("Route modal and interception", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "Albums" }).click(); + await page + .getByRole("link", { name: "Song: I'm never gonna give you up Year: 1965" }) + .click(); + + await page.waitForURL( + `/albums/Hold%20Me%20In%20Your%20Arms/I'm%20never%20gonna%20give%20you%20up`, + ); + + const modal = page.getByText("Modal", { exact: true }); + await expect(modal).toBeVisible(); + + // Reload the page to load non intercepted modal + await page.reload(); + await page.waitForURL( + `/albums/Hold%20Me%20In%20Your%20Arms/I'm%20never%20gonna%20give%20you%20up`, + ); + const notModal = page.getByText("Not Modal", { exact: true }); + await expect(notModal).toBeVisible(); +}); diff --git a/packages/tests-e2e/tests/appPagesRouter/pages_isr.test.ts b/packages/tests-e2e/tests/appPagesRouter/pages_isr.test.ts new file mode 100644 index 00000000..777cd1fe --- /dev/null +++ b/packages/tests-e2e/tests/appPagesRouter/pages_isr.test.ts @@ -0,0 +1,40 @@ +import { wait } from "@open-next/utils"; +import { expect, test } from "@playwright/test"; + +test("Incremental Static Regeneration", async ({ page }) => { + test.setTimeout(45000); + await page.goto("/"); + await page.getByRole("link", { name: "/Pages_ISR" }).click(); + await page.waitForURL("/pages_isr"); + // Load the page a couple times to regenerate ISR + + let el = page.getByText("ISR").first(); + // Track the static time + let time = await el.textContent(); + let newTime; + let tempTime = time; + do { + await wait(1000); + await page.reload(); + time = tempTime; + el = page.getByText("ISR"); + newTime = await el.textContent(); + tempTime = newTime; + } while (time !== newTime); + await page.reload(); + + el = page.getByText("ISR"); + newTime = await el.textContent(); + + // Wait 10 seconds for ISR to regenerate time + await wait(15000); + await page.reload(); + await wait(5000); + await page.reload(); + await wait(5000); + await page.reload(); + el = page.getByText("ISR"); + newTime = await el.textContent(); + + expect(time).not.toEqual(newTime); +}); diff --git a/packages/tests-e2e/tests/appPagesRouter/pages_ssr.test.ts b/packages/tests-e2e/tests/appPagesRouter/pages_ssr.test.ts new file mode 100644 index 00000000..f2541b11 --- /dev/null +++ b/packages/tests-e2e/tests/appPagesRouter/pages_ssr.test.ts @@ -0,0 +1,31 @@ +// NOTE: loading.tsx is currently broken on open-next +// This works locally but not on deployed apps + +import { wait } from "@open-next/utils"; +import { expect, test } from "@playwright/test"; + +// NOTE: We don't await page load b/c we want to see the Loading page +test("Server Side Render", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "/Pages_SSR" }).click(); + await page.waitForURL("/pages_ssr"); + let el = page.getByText("SSR").first(); + await expect(el).toBeVisible(); + let time = await el.textContent(); + + await page.reload(); + + el = page.getByText("SSR"); + let newTime = await el.textContent(); + await expect(el).toBeVisible(); + + for (let i = 0; i < 5; i++) { + await page.reload(); + el = page.getByText("SSR"); + newTime = await el.textContent(); + await expect(el).toBeVisible(); + await expect(time).not.toEqual(newTime); + time = newTime; + await wait(250); + } +}); diff --git a/packages/tests-e2e/tests/appPagesRouter/parallel.test.ts b/packages/tests-e2e/tests/appPagesRouter/parallel.test.ts new file mode 100644 index 00000000..9a0e32a7 --- /dev/null +++ b/packages/tests-e2e/tests/appPagesRouter/parallel.test.ts @@ -0,0 +1,42 @@ +import { expect, test } from "@playwright/test"; + +test("Parallel routes", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "Parallel" }).click(); + + await page.waitForURL(`/parallel`); + + // Neither are selected, so A/B shouldn't be rendered + let routeA = page.getByText("Parallel Route A"); + let routeB = page.getByText("Parallel Route B"); + await expect(routeA).not.toBeVisible(); + await expect(routeB).not.toBeVisible(); + + // Enable A, which should be visible but not B + await page.locator('input[name="a"]').check(); + routeA = page.getByText("Parallel Route A"); + await expect(routeA).toBeVisible(); + await expect(routeB).not.toBeVisible(); + + // Enable B, both should be visible + await page.locator('input[name="b"]').check(); + routeB = page.getByText("Parallel Route B"); + await expect(routeA).toBeVisible(); + await expect(routeB).toBeVisible(); + + // Click on A, should go to a-page + await page.getByText("Go to a-page").click(); + await page.waitForURL("/parallel/a-page"); + + // Should render contents of a-page + routeA = page.getByText("A Page"); + await expect(routeA).toBeVisible(); + + // Click on B, should go to b-page + await page.getByText("Go to b-page").click(); + await page.waitForURL("/parallel/b-page"); + + // Should render contents of b-page + routeB = page.getByText("B Page"); + await expect(routeB).toBeVisible(); +}); diff --git a/packages/tests-e2e/tests/appPagesRouter/serverActions.test.ts b/packages/tests-e2e/tests/appPagesRouter/serverActions.test.ts new file mode 100644 index 00000000..411400b0 --- /dev/null +++ b/packages/tests-e2e/tests/appPagesRouter/serverActions.test.ts @@ -0,0 +1,22 @@ +import { expect, test } from "@playwright/test"; + +test("Server Actions", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "Server Actions" }).click(); + + await page.waitForURL("/server-actions"); + let el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).not.toBeVisible(); + + await page.getByRole("button", { name: "Fire Server Actions" }).click(); + el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).toBeVisible(); + + // Reload page + await page.reload(); + el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).not.toBeVisible(); + await page.getByRole("button", { name: "Fire Server Actions" }).click(); + el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).toBeVisible(); +}); diff --git a/packages/tests-e2e/tests/appPagesRouter/ssr.test.ts b/packages/tests-e2e/tests/appPagesRouter/ssr.test.ts new file mode 100644 index 00000000..1a2aeca0 --- /dev/null +++ b/packages/tests-e2e/tests/appPagesRouter/ssr.test.ts @@ -0,0 +1,38 @@ +// NOTE: loading.tsx is currently broken on open-next +// This works locally but not on deployed apps + +// import { test, expect } from "@playwright/test"; +// import { wait } from "@open-next/utils"; + +// NOTE: We don't await page load b/c we want to see the Loading page +// test("Server Side Render and loading.tsx", async ({ page }) => { +// await page.goto("/"); +// await page.getByRole("link", { name: "SSR" }).click(); +// await page.waitForUrl('/ssr') + +// let loading = page.getByText("Loading..."); +// await expect(loading).toBeVisible(); + +// let el = page.getByText("SSR"); +// await expect(el).toBeVisible(); +// const time = await el.textContent(); + +// page.reload(); +// loading = page.getByText("Loading..."); +// await expect(loading).toBeVisible(); + +// el = page.getByText("SSR"); +// let newTime = await el.textContent(); +// await expect(el).toBeVisible(); +// await expect(time).not.toEqual(newTime); + +// await wait(5000); +// page.reload(); +// loading = page.getByText("Loading..."); +// await expect(loading).toBeVisible(); + +// el = page.getByText("SSR"); +// newTime = await el.textContent(); +// await expect(el).toBeVisible(); +// await expect(time).not.toEqual(newTime); +// }); diff --git a/packages/tests-e2e/tests/appRouter/api.test.ts b/packages/tests-e2e/tests/appRouter/api.test.ts new file mode 100644 index 00000000..670f1b05 --- /dev/null +++ b/packages/tests-e2e/tests/appRouter/api.test.ts @@ -0,0 +1,29 @@ +import { expect, test } from "@playwright/test"; + +test("API call from client", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "/API" }).click(); + + await page.waitForURL("/api"); + + let el = page.getByText("API: N/A"); + await expect(el).toBeVisible(); + + await page.getByRole("button", { name: "Call /api/client" }).click(); + el = page.getByText('API: { "hello": "client" }'); + await expect(el).toBeVisible(); +}); + +test("API call from middleware", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "/API" }).click(); + + await page.waitForURL("/api"); + + let el = page.getByText("API: N/A"); + await expect(el).toBeVisible(); + + await page.getByRole("button", { name: "Call /api/middleware" }).click(); + el = page.getByText('API: { "hello": "middleware" }'); + await expect(el).toBeVisible(); +}); diff --git a/packages/tests-e2e/tests/appRouter/host.test.ts b/packages/tests-e2e/tests/appRouter/host.test.ts new file mode 100644 index 00000000..9457029f --- /dev/null +++ b/packages/tests-e2e/tests/appRouter/host.test.ts @@ -0,0 +1,12 @@ +// TOD: enable when 13.4.13 PRs are merged +// import { test, expect } from "@playwright/test"; + +// /** +// * Tests that the request.url is the deployed host and not localhost +// */ +// test("API call from client", async ({ baseURL, page }) => { +// await page.goto("/api/host"); + +// let el = page.getByText(`{"url":"${baseURL}/api/host"}`); +// await expect(el).toBeVisible(); +// }); diff --git a/packages/tests-e2e/tests/appRouter/isr.test.ts b/packages/tests-e2e/tests/appRouter/isr.test.ts new file mode 100644 index 00000000..37f8d076 --- /dev/null +++ b/packages/tests-e2e/tests/appRouter/isr.test.ts @@ -0,0 +1,39 @@ +import { wait } from "@open-next/utils"; +import { expect, test } from "@playwright/test"; + +test("Incremental Static Regeneration", async ({ page }) => { + test.setTimeout(45000); + await page.goto("/"); + await page.getByRole("link", { name: "ISR" }).click(); + // Load the page a couple times to regenerate ISR + + let el = page.getByText("ISR"); + // Track the static time + let time = await el.textContent(); + let newTime; + let tempTime = time; + do { + await wait(1000); + await page.reload(); + time = tempTime; + el = page.getByText("ISR"); + newTime = await el.textContent(); + tempTime = newTime; + } while (time !== newTime); + await page.reload(); + + el = page.getByText("ISR"); + newTime = await el.textContent(); + + // Wait 10 seconds for ISR to regenerate time + await wait(15000); + await page.reload(); + await wait(5000); + await page.reload(); + await wait(5000); + await page.reload(); + el = page.getByText("ISR"); + newTime = await el.textContent(); + + expect(time).not.toEqual(newTime); +}); diff --git a/packages/tests-e2e/tests/appRouter/middleware.redirect.test.ts b/packages/tests-e2e/tests/appRouter/middleware.redirect.test.ts new file mode 100644 index 00000000..bb27a44d --- /dev/null +++ b/packages/tests-e2e/tests/appRouter/middleware.redirect.test.ts @@ -0,0 +1,17 @@ +import { expect, test } from "@playwright/test"; + +test("Middleware Redirect", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "/Redirect" }).click(); + + // URL is immediately redirected + await page.waitForURL(`/redirect-destination`); + let el = page.getByText("Redirect Destination", { exact: true }); + await expect(el).toBeVisible(); + + // Loading page should also redirect + await page.goto(`/redirect`); + await page.waitForURL(`/redirect-destination`); + el = page.getByText("Redirect Destination", { exact: true }); + await expect(el).toBeVisible(); +}); diff --git a/packages/tests-e2e/tests/appRouter/middleware.rewrite.test.ts b/packages/tests-e2e/tests/appRouter/middleware.rewrite.test.ts new file mode 100644 index 00000000..2f24ed4b --- /dev/null +++ b/packages/tests-e2e/tests/appRouter/middleware.rewrite.test.ts @@ -0,0 +1,16 @@ +import { expect, test } from "@playwright/test"; + +test("Middleware Rewrite", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "/Rewrite" }).click(); + + await page.waitForURL(`/rewrite`); + let el = page.getByText("Rewritten Destination", { exact: true }); + await expect(el).toBeVisible(); + + // Loading page should also rewrite + await page.goto(`/rewrite`); + await page.waitForURL(`/rewrite`); + el = page.getByText("Rewritten Destination", { exact: true }); + await expect(el).toBeVisible(); +}); diff --git a/packages/tests-e2e/tests/appRouter/modals.test.ts b/packages/tests-e2e/tests/appRouter/modals.test.ts new file mode 100644 index 00000000..f5be403d --- /dev/null +++ b/packages/tests-e2e/tests/appRouter/modals.test.ts @@ -0,0 +1,24 @@ +import { expect, test } from "@playwright/test"; + +test("Route modal and interception", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "Albums" }).click(); + await page + .getByRole("link", { name: "Song: I'm never gonna give you up Year: 1965" }) + .click(); + + await page.waitForURL( + `/albums/Hold%20Me%20In%20Your%20Arms/I'm%20never%20gonna%20give%20you%20up`, + ); + + const modal = page.getByText("Modal", { exact: true }); + await expect(modal).toBeVisible(); + + // Reload the page to load non intercepted modal + await page.reload(); + await page.waitForURL( + `/albums/Hold%20Me%20In%20Your%20Arms/I'm%20never%20gonna%20give%20you%20up`, + ); + const notModal = page.getByText("Not Modal", { exact: true }); + await expect(notModal).toBeVisible(); +}); diff --git a/packages/tests-e2e/tests/appRouter/parallel.test.ts b/packages/tests-e2e/tests/appRouter/parallel.test.ts new file mode 100644 index 00000000..9a0e32a7 --- /dev/null +++ b/packages/tests-e2e/tests/appRouter/parallel.test.ts @@ -0,0 +1,42 @@ +import { expect, test } from "@playwright/test"; + +test("Parallel routes", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "Parallel" }).click(); + + await page.waitForURL(`/parallel`); + + // Neither are selected, so A/B shouldn't be rendered + let routeA = page.getByText("Parallel Route A"); + let routeB = page.getByText("Parallel Route B"); + await expect(routeA).not.toBeVisible(); + await expect(routeB).not.toBeVisible(); + + // Enable A, which should be visible but not B + await page.locator('input[name="a"]').check(); + routeA = page.getByText("Parallel Route A"); + await expect(routeA).toBeVisible(); + await expect(routeB).not.toBeVisible(); + + // Enable B, both should be visible + await page.locator('input[name="b"]').check(); + routeB = page.getByText("Parallel Route B"); + await expect(routeA).toBeVisible(); + await expect(routeB).toBeVisible(); + + // Click on A, should go to a-page + await page.getByText("Go to a-page").click(); + await page.waitForURL("/parallel/a-page"); + + // Should render contents of a-page + routeA = page.getByText("A Page"); + await expect(routeA).toBeVisible(); + + // Click on B, should go to b-page + await page.getByText("Go to b-page").click(); + await page.waitForURL("/parallel/b-page"); + + // Should render contents of b-page + routeB = page.getByText("B Page"); + await expect(routeB).toBeVisible(); +}); diff --git a/packages/tests-e2e/tests/appRouter/serverActions.test.ts b/packages/tests-e2e/tests/appRouter/serverActions.test.ts new file mode 100644 index 00000000..411400b0 --- /dev/null +++ b/packages/tests-e2e/tests/appRouter/serverActions.test.ts @@ -0,0 +1,22 @@ +import { expect, test } from "@playwright/test"; + +test("Server Actions", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "Server Actions" }).click(); + + await page.waitForURL("/server-actions"); + let el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).not.toBeVisible(); + + await page.getByRole("button", { name: "Fire Server Actions" }).click(); + el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).toBeVisible(); + + // Reload page + await page.reload(); + el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).not.toBeVisible(); + await page.getByRole("button", { name: "Fire Server Actions" }).click(); + el = page.getByText("Song: I'm never gonna give you up"); + await expect(el).toBeVisible(); +}); diff --git a/packages/tests-e2e/tests/appRouter/ssr.test.ts b/packages/tests-e2e/tests/appRouter/ssr.test.ts new file mode 100644 index 00000000..1a2aeca0 --- /dev/null +++ b/packages/tests-e2e/tests/appRouter/ssr.test.ts @@ -0,0 +1,38 @@ +// NOTE: loading.tsx is currently broken on open-next +// This works locally but not on deployed apps + +// import { test, expect } from "@playwright/test"; +// import { wait } from "@open-next/utils"; + +// NOTE: We don't await page load b/c we want to see the Loading page +// test("Server Side Render and loading.tsx", async ({ page }) => { +// await page.goto("/"); +// await page.getByRole("link", { name: "SSR" }).click(); +// await page.waitForUrl('/ssr') + +// let loading = page.getByText("Loading..."); +// await expect(loading).toBeVisible(); + +// let el = page.getByText("SSR"); +// await expect(el).toBeVisible(); +// const time = await el.textContent(); + +// page.reload(); +// loading = page.getByText("Loading..."); +// await expect(loading).toBeVisible(); + +// el = page.getByText("SSR"); +// let newTime = await el.textContent(); +// await expect(el).toBeVisible(); +// await expect(time).not.toEqual(newTime); + +// await wait(5000); +// page.reload(); +// loading = page.getByText("Loading..."); +// await expect(loading).toBeVisible(); + +// el = page.getByText("SSR"); +// newTime = await el.textContent(); +// await expect(el).toBeVisible(); +// await expect(time).not.toEqual(newTime); +// }); diff --git a/packages/tests-e2e/tests/pagesRouter/isr.test.ts b/packages/tests-e2e/tests/pagesRouter/isr.test.ts new file mode 100644 index 00000000..99886782 --- /dev/null +++ b/packages/tests-e2e/tests/pagesRouter/isr.test.ts @@ -0,0 +1,40 @@ +import { wait } from "@open-next/utils"; +import { expect, test } from "@playwright/test"; + +test("Incremental Static Regeneration", async ({ page }) => { + test.setTimeout(45000); + await page.goto("/"); + await page.getByRole("link", { name: "/ISR" }).click(); + await page.waitForURL("/isr"); + // Load the page a couple times to regenerate ISR + + let el = page.getByText("ISR").first(); + // Track the static time + let time = await el.textContent(); + let newTime; + let tempTime = time; + do { + await wait(1000); + await page.reload(); + time = tempTime; + el = page.getByText("ISR"); + newTime = await el.textContent(); + tempTime = newTime; + } while (time !== newTime); + await page.reload(); + + el = page.getByText("ISR"); + newTime = await el.textContent(); + + // Wait 10 seconds for ISR to regenerate time + await wait(15000); + await page.reload(); + await wait(5000); + await page.reload(); + await wait(5000); + await page.reload(); + el = page.getByText("ISR"); + newTime = await el.textContent(); + + expect(time).not.toEqual(newTime); +}); diff --git a/packages/tests-e2e/tests/pagesRouter/ssr.test.ts b/packages/tests-e2e/tests/pagesRouter/ssr.test.ts new file mode 100644 index 00000000..f8969ea3 --- /dev/null +++ b/packages/tests-e2e/tests/pagesRouter/ssr.test.ts @@ -0,0 +1,31 @@ +// NOTE: loading.tsx is currently broken on open-next +// This works locally but not on deployed apps + +import { wait } from "@open-next/utils"; +import { expect, test } from "@playwright/test"; + +// NOTE: We don't await page load b/c we want to see the Loading page +test("Server Side Render", async ({ page }) => { + await page.goto("/"); + await page.getByRole("link", { name: "/SSR" }).click(); + await page.waitForURL("/ssr"); + let el = page.getByText("SSR").first(); + await expect(el).toBeVisible(); + let time = await el.textContent(); + + await page.reload(); + + el = page.getByText("SSR"); + let newTime = await el.textContent(); + await expect(el).toBeVisible(); + + for (let i = 0; i < 5; i++) { + await page.reload(); + el = page.getByText("SSR"); + newTime = await el.textContent(); + await expect(el).toBeVisible(); + await expect(time).not.toEqual(newTime); + time = newTime; + await wait(250); + } +}); diff --git a/packages/tests-e2e/tsconfig.json b/packages/tests-e2e/tsconfig.json new file mode 100644 index 00000000..74d695da --- /dev/null +++ b/packages/tests-e2e/tsconfig.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Test Config", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "inlineSources": false, + "isolatedModules": false, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "moduleResolution": "nodenext", + "noUnusedLocals": true, + "noUnusedParameters": true, + "preserveWatchOutput": true, + "skipLibCheck": true, + "strict": true, + "removeComments": true, + "module": "NodeNext", + "target": "ES2022", + "sourceMap": true + }, + "include": [ + "." + ], + "exclude": [ + "dist", + "build", + "node_modules" + ] +} \ No newline at end of file diff --git a/packages/tests-unit/package.json b/packages/tests-unit/package.json new file mode 100644 index 00000000..13dd4d19 --- /dev/null +++ b/packages/tests-unit/package.json @@ -0,0 +1,22 @@ +{ + "name": "tests-unit", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "clean": "rm -rf .turbo && rm -rf node_modules", + "dev": "vitest", + "test": "vitest run --coverage" + }, + "dependencies": { + "open-next": "workspace:*", + "@open-next/utils": "workspace:*" + }, + "devDependencies": { + "@types/testing-library__jest-dom": "^5.14.9", + "@vitest/coverage-v8": "^0.34.1", + "jsdom": "^22.1.0", + "vitest": "^0.34.1", + "vite": "4.4.9" + } +} \ No newline at end of file diff --git a/packages/tests-unit/setup.ts b/packages/tests-unit/setup.ts new file mode 100644 index 00000000..2853e718 --- /dev/null +++ b/packages/tests-unit/setup.ts @@ -0,0 +1,4 @@ +import { afterEach } from "vitest"; + +// runs a cleanup after each test case (e.g. clearing jsdom) +afterEach(() => {}); diff --git a/packages/tests-unit/tests/binary.test.ts b/packages/tests-unit/tests/binary.test.ts new file mode 100644 index 00000000..0f8fd4a6 --- /dev/null +++ b/packages/tests-unit/tests/binary.test.ts @@ -0,0 +1,110 @@ +import { isBinaryContentType } from "@open-next/utils"; + +describe("isBinaryContentType", () => { + const tests = [ + { type: "application/octet-stream", binary: true }, + // Docs + { type: "application/epub+zip", binary: true }, + { type: "application/msword", binary: true }, + { type: "application/pdf", binary: true }, + { type: "application/rtf", binary: true }, + { type: "application/vnd.amazon.ebook", binary: true }, + { type: "application/vnd.ms-excel", binary: true }, + { type: "application/vnd.ms-powerpoint", binary: true }, + { + type: "application/vnd.openxmlformats-officedocument.presentationml.presentation", + binary: true, + }, + { + type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + binary: true, + }, + { + type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + binary: true, + }, + // Fonts + { type: "font/otf", binary: true }, + { type: "font/woff", binary: true }, + { type: "font/woff2", binary: true }, + // Images + { type: "image/bmp", binary: true }, + { type: "image/gif", binary: true }, + { type: "image/jpeg", binary: true }, + { type: "image/png", binary: true }, + { type: "image/tiff", binary: true }, + { type: "image/vnd.microsoft.icon", binary: true }, + { type: "image/webp", binary: true }, + // Audio + { type: "audio/3gpp", binary: true }, + { type: "audio/aac", binary: true }, + { type: "audio/basic", binary: true }, + { type: "audio/mpeg", binary: true }, + { type: "audio/ogg", binary: true }, + { type: "audio/wavaudio/webm", binary: true }, + { type: "audio/x-aiff", binary: true }, + { type: "audio/x-midi", binary: true }, + { type: "audio/x-wav", binary: true }, + // Video + { type: "video/3gpp", binary: true }, + { type: "video/mp2t", binary: true }, + { type: "video/mpeg", binary: true }, + { type: "video/ogg", binary: true }, + { type: "video/quicktime", binary: true }, + { type: "video/webm", binary: true }, + { type: "video/x-msvideo", binary: true }, + // Archives + { type: "application/java-archive", binary: true }, + { type: "application/vnd.apple.installer+xml", binary: true }, + { type: "application/x-7z-compressed", binary: true }, + { type: "application/x-apple-diskimage", binary: true }, + { type: "application/x-bzip", binary: true }, + { type: "application/x-bzip2", binary: true }, + { type: "application/x-gzip", binary: true }, + { type: "application/x-java-archive", binary: true }, + { type: "application/x-rar-compressed", binary: true }, + { type: "application/x-tar", binary: true }, + { type: "application/x-zip", binary: true }, + { type: "application/zip", binary: true }, + // False + + { type: "text/plain", binary: false }, + { type: "text/html", binary: false }, + { type: "text/css", binary: false }, + { type: "text/javascript", binary: false }, + { type: "or", binary: false }, + { type: "application/javascript", binary: false }, + { type: "application/json", binary: false }, + { type: "application/xml", binary: false }, + { type: "application/x", binary: false }, + { type: "www", binary: false }, + { type: "form", binary: false }, + { type: "urlencoded", binary: false }, + { type: "text/xml", binary: false }, + { type: "application/x", binary: false }, + { type: "yaml", binary: false }, + { type: "text/markdown", binary: false }, + { type: "text/csv", binary: false }, + { type: "text/richtext", binary: false }, + { type: "text/x", binary: false }, + { type: "python", binary: false }, + { type: "text/x", binary: false }, + { type: "java", binary: false }, + { type: "source", binary: false }, + { type: "text/x", binary: false }, + { type: "csrc", binary: false }, + { type: "application/xhtml", binary: false }, + { type: "xml", binary: false }, + { type: "application/msgpack", binary: false }, + { type: "application/cbor", binary: false }, + { type: "application/properties", binary: false }, + { type: "application/yaml", binary: false }, + ]; + + tests.forEach(({ type, binary }) => { + it(`${type} should be ${binary}`, () => { + const result = isBinaryContentType(type); + expect(result).toEqual(binary); + }); + }); +}); diff --git a/packages/tests-unit/tests/example.test.ts b/packages/tests-unit/tests/example.test.ts new file mode 100644 index 00000000..ea0e2886 --- /dev/null +++ b/packages/tests-unit/tests/example.test.ts @@ -0,0 +1,7 @@ +import { add } from "@open-next/utils"; + +describe("test", () => { + it("passes", () => { + expect(add(34.5, 34.5)).toEqual(69); + }); +}); diff --git a/packages/tests-unit/tsconfig.json b/packages/tests-unit/tsconfig.json new file mode 100644 index 00000000..456155b6 --- /dev/null +++ b/packages/tests-unit/tsconfig.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "React Library", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "inlineSources": false, + "isolatedModules": false, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "moduleResolution": "nodenext", + "noUnusedLocals": true, + "noUnusedParameters": true, + "preserveWatchOutput": true, + "skipLibCheck": true, + "strict": true, + "removeComments": true, + "module": "NodeNext", + "target": "ES2022", + "sourceMap": true + }, + "include": [ + "." + ], + "exclude": [ + "dist", + "build", + "node_modules", + ] +} \ No newline at end of file diff --git a/packages/tests-unit/vite.config.ts b/packages/tests-unit/vite.config.ts new file mode 100644 index 00000000..ea6124a5 --- /dev/null +++ b/packages/tests-unit/vite.config.ts @@ -0,0 +1,16 @@ +/** @type {import('vite').UserConfig} */ + +import { defineConfig } from "vite"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [], + test: { + globals: true, + environment: "node", + setupFiles: "./setup.ts", + coverage: { + all: true, + }, + }, +}); diff --git a/packages/utils/package.json b/packages/utils/package.json new file mode 100644 index 00000000..d16ca072 --- /dev/null +++ b/packages/utils/package.json @@ -0,0 +1,29 @@ +{ + "name": "@open-next/utils", + "version": "0.0.0", + "exports": { + ".": "./dist/index.js", + "./binary": "./dist/binary.js", + "./logger": "./dist/logger.js" + }, + "typesVersions": { + "*": { + "types": ["./dist/*.d.ts"] + } + }, + "scripts": { + "build": "tsup ./src/*.ts --format cjs --dts", + "dev": "tsup ./src/*.ts --format cjs --dts --watch", + "lint": "TIMING=1 eslint \"**/*.ts*\"", + "clean": "rm -rf .turbo && rm -rf node_modules" + }, + "dependencies": { + }, + "devDependencies": { + "tsup": "7.2.0", + "@types/node": "20.5.0" + }, + "publishConfig": { + "access": "public" + } +} \ No newline at end of file diff --git a/packages/utils/src/binary.ts b/packages/utils/src/binary.ts new file mode 100644 index 00000000..1b599022 --- /dev/null +++ b/packages/utils/src/binary.ts @@ -0,0 +1,64 @@ +const commonBinaryMimeTypes = new Set([ + "application/octet-stream", + // Docs + "application/epub+zip", + "application/msword", + "application/pdf", + "application/rtf", + "application/vnd.amazon.ebook", + "application/vnd.ms-excel", + "application/vnd.ms-powerpoint", + "application/vnd.openxmlformats-officedocument.presentationml.presentation", + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + // Fonts + "font/otf", + "font/woff", + "font/woff2", + // Images + "image/bmp", + "image/gif", + "image/jpeg", + "image/png", + "image/tiff", + "image/vnd.microsoft.icon", + "image/webp", + // Audio + "audio/3gpp", + "audio/aac", + "audio/basic", + "audio/mpeg", + "audio/ogg", + "audio/wavaudio/webm", + "audio/x-aiff", + "audio/x-midi", + "audio/x-wav", + // Video + "video/3gpp", + "video/mp2t", + "video/mpeg", + "video/ogg", + "video/quicktime", + "video/webm", + "video/x-msvideo", + // Archives + "application/java-archive", + "application/vnd.apple.installer+xml", + "application/x-7z-compressed", + "application/x-apple-diskimage", + "application/x-bzip", + "application/x-bzip2", + "application/x-gzip", + "application/x-java-archive", + "application/x-rar-compressed", + "application/x-tar", + "application/x-zip", + "application/zip", +]); + +export function isBinaryContentType(contentType?: string | null) { + if (!contentType) return false; + + const value = contentType?.split(";")[0] ?? ""; + return commonBinaryMimeTypes.has(value); +} diff --git a/packages/utils/src/index.ts b/packages/utils/src/index.ts new file mode 100644 index 00000000..5581c85e --- /dev/null +++ b/packages/utils/src/index.ts @@ -0,0 +1,16 @@ +export * from "./binary"; + +// TODO: move util functions from open-next here (if/where it makes sense) +export function add(a: number, b: number) { + return a + b; +} + +export function generateUniqueId() { + return Math.random().toString(36).slice(2, 8); +} + +export async function wait(n: number = 1000) { + return new Promise((res) => { + setTimeout(res, n); + }); +} diff --git a/packages/utils/src/logger.ts b/packages/utils/src/logger.ts new file mode 100644 index 00000000..ad98b809 --- /dev/null +++ b/packages/utils/src/logger.ts @@ -0,0 +1,21 @@ +export function debug(...args: any[]) { + if (process.env.OPEN_NEXT_DEBUG) { + console.log(...args); + } +} + +export function warn(...args: any[]) { + console.warn(...args); +} + +export function error(...args: any[]) { + console.error(...args); +} + +export const awsLogger = { + trace: () => {}, + debug: () => {}, + info: debug, + warn, + error, +}; diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json new file mode 100644 index 00000000..ec13da8b --- /dev/null +++ b/packages/utils/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": false, + "moduleResolution": "NodeNext", + "module": "NodeNext", + "preserveWatchOutput": true, + "skipLibCheck": true, + "noEmit": true, + "strict": true, + "target": "ESNext" + }, + "exclude": ["node_modules"] +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ae4f11cb..86698c36 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,16 +10,19 @@ importers: devDependencies: '@changesets/changelog-github': specifier: ^0.4.4 - version: 0.4.4 + version: 0.4.8 '@changesets/cli': specifier: ^2.22.0 - version: 2.22.0 + version: 2.26.2 '@sladg/eslint-config-base': specifier: 1.4.1 - version: 1.4.1(eslint@8.47.0)(prettier@3.0.2)(typescript@4.9.3) + version: 1.4.1(eslint@8.48.0)(prettier@3.0.3)(typescript@4.9.3) eslint: specifier: ^8.47.0 - version: 8.47.0 + version: 8.48.0 + turbo: + specifier: 1.10.12 + version: 1.10.12 docs: dependencies: @@ -58,7 +61,7 @@ importers: version: 13.4.12(@babel/core@7.22.11)(react-dom@18.2.0)(react@18.2.0) next-auth: specifier: ^4.22.1 - version: 4.22.1(next@13.4.12)(react-dom@18.2.0)(react@18.2.0) + version: 4.23.1(next@13.4.12)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -73,29 +76,179 @@ importers: version: 13.0.2 swr: specifier: ^1.0.1 - version: 1.0.1(react@18.2.0) + version: 1.3.0(react@18.2.0) devDependencies: aws-cdk-lib: - specifier: 2.84.0 - version: 2.84.0(constructs@10.1.156) + specifier: 2.91.0 + version: 2.91.0(constructs@10.2.69) constructs: - specifier: 10.1.156 - version: 10.1.156 + specifier: 10.2.69 + version: 10.2.69 sst: - specifier: 2.16.3 - version: 2.16.3 + specifier: 2.24.20 + version: 2.24.20 + + examples/app-pages-router: + dependencies: + '@example/shared': + specifier: workspace:* + version: link:../shared + '@open-next/utils': + specifier: workspace:* + version: link:../../packages/utils + open-next: + specifier: workspace:* + version: link:../../packages/open-next + devDependencies: + '@types/node': + specifier: 20.5.0 + version: 20.5.0 + '@types/react': + specifier: 18.2.20 + version: 18.2.20 + '@types/react-dom': + specifier: 18.2.7 + version: 18.2.7 + autoprefixer: + specifier: 10.4.15 + version: 10.4.15(postcss@8.4.27) + next: + specifier: 13.4.12 + version: 13.4.12(@babel/core@7.22.11)(react-dom@18.2.0)(react@18.2.0) + postcss: + specifier: 8.4.27 + version: 8.4.27 + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + tailwindcss: + specifier: 3.3.3 + version: 3.3.3 + typescript: + specifier: ^4.9.3 + version: 4.9.3 + + examples/app-router: + dependencies: + '@example/shared': + specifier: workspace:* + version: link:../shared + '@open-next/utils': + specifier: workspace:* + version: link:../../packages/utils + open-next: + specifier: workspace:* + version: link:../../packages/open-next + devDependencies: + '@types/node': + specifier: 20.5.0 + version: 20.5.0 + '@types/react': + specifier: 18.2.20 + version: 18.2.20 + '@types/react-dom': + specifier: 18.2.7 + version: 18.2.7 + autoprefixer: + specifier: 10.4.15 + version: 10.4.15(postcss@8.4.27) + next: + specifier: 13.4.12 + version: 13.4.12(@babel/core@7.22.11)(react-dom@18.2.0)(react@18.2.0) + postcss: + specifier: 8.4.27 + version: 8.4.27 + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + tailwindcss: + specifier: 3.3.3 + version: 3.3.3 + typescript: + specifier: ^4.9.3 + version: 4.9.3 + + examples/pages-router: + dependencies: + '@example/shared': + specifier: workspace:* + version: link:../shared + '@next/font': + specifier: 13.4.16 + version: 13.4.16 + '@types/node': + specifier: 20.5.0 + version: 20.5.0 + '@types/react': + specifier: 18.2.20 + version: 18.2.20 + '@types/react-dom': + specifier: 18.2.7 + version: 18.2.7 + autoprefixer: + specifier: 10.4.15 + version: 10.4.15(postcss@8.4.27) + next: + specifier: 13.4.12 + version: 13.4.12(@babel/core@7.22.11)(react-dom@18.2.0)(react@18.2.0) + postcss: + specifier: 8.4.27 + version: 8.4.27 + react: + specifier: 18.2.0 + version: 18.2.0 + react-dom: + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) + tailwindcss: + specifier: 3.3.3 + version: 3.3.3 + typescript: + specifier: ^4.9.3 + version: 4.9.3 + + examples/shared: + dependencies: + react: + specifier: 18.2.0 + version: 18.2.0 + devDependencies: + '@types/react': + specifier: ^18.0.26 + version: 18.2.20 + '@types/react-dom': + specifier: ^18.0.9 + version: 18.2.7 + + examples/sst: + devDependencies: + aws-cdk-lib: + specifier: 2.91.0 + version: 2.91.0(constructs@10.2.69) + constructs: + specifier: 10.2.69 + version: 10.2.69 + sst: + specifier: 2.24.20 + version: 2.24.20 packages/open-next: dependencies: '@aws-sdk/client-lambda': - specifier: ^3.312.0 - version: 3.312.0 + specifier: ^3.398.0 + version: 3.398.0 '@aws-sdk/client-s3': - specifier: ^3.312.0 - version: 3.312.0(@aws-sdk/signature-v4-crt@3.398.0) + specifier: ^3.398.0 + version: 3.400.0(@aws-sdk/signature-v4-crt@3.398.0) '@aws-sdk/client-sqs': - specifier: ^3.312.0 - version: 3.312.0 + specifier: ^3.398.0 + version: 3.398.0 '@node-minify/core': specifier: ^8.0.6 version: 8.0.6 @@ -104,7 +257,7 @@ importers: version: 8.0.6 '@tsconfig/node18': specifier: ^1.0.1 - version: 1.0.1 + version: 1.0.3 esbuild: specifier: ^0.15.18 version: 0.15.18 @@ -114,14 +267,63 @@ importers: devDependencies: '@types/aws-lambda': specifier: ^8.10.109 - version: 8.10.109 + version: 8.10.119 '@types/node': specifier: ^18.11.17 - version: 18.11.17 + version: 18.17.12 typescript: specifier: ^4.9.3 version: 4.9.3 + packages/tests-e2e: + devDependencies: + '@open-next/utils': + specifier: workspace:* + version: link:../utils + '@playwright/test': + specifier: 1.37.0 + version: 1.37.0 + start-server-and-test: + specifier: 2.0.0 + version: 2.0.0 + ts-node: + specifier: 10.9.1 + version: 10.9.1(@types/node@18.17.12)(typescript@4.9.3) + + packages/tests-unit: + dependencies: + '@open-next/utils': + specifier: workspace:* + version: link:../utils + open-next: + specifier: workspace:* + version: link:../open-next + devDependencies: + '@types/testing-library__jest-dom': + specifier: ^5.14.9 + version: 5.14.9 + '@vitest/coverage-v8': + specifier: ^0.34.1 + version: 0.34.3(vitest@0.34.3) + jsdom: + specifier: ^22.1.0 + version: 22.1.0 + vite: + specifier: 4.4.9 + version: 4.4.9(@types/node@18.17.12) + vitest: + specifier: ^0.34.1 + version: 0.34.3(jsdom@22.1.0) + + packages/utils: + devDependencies: + '@types/node': + specifier: 20.5.0 + version: 20.5.0 + tsup: + specifier: 7.2.0 + version: 7.2.0(typescript@4.9.3) + packages: /@aashutoshrathi/word-wrap@1.2.6: @@ -137,6 +339,10 @@ packages: is-fullwidth-code-point: 4.0.0 dev: true + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + /@ampproject/remapping@2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} engines: {node: '>=6.0.0'} @@ -156,52 +362,52 @@ packages: resolution: {integrity: sha512-j0xnccpUQHXJKPgCwQcGGNu4lRiC1PptYfdxBIH1L4dRK91iBxtSQHESRQX+yB47oGLaF/WfNN/aF3WXwlhikg==} dev: true - /@aws-cdk/aws-apigatewayv2-alpha@2.84.0-alpha.0(aws-cdk-lib@2.84.0)(constructs@10.1.156): - resolution: {integrity: sha512-Iom2VbAt9N6QXJqqjikcG6hHCaYsPIZdLy8gkMkQu/idmaQnGzZ7sNp4uRdLr4EmqtGJOSFxAM9jrGyBIEhYlw==} + /@aws-cdk/aws-apigatewayv2-alpha@2.91.0-alpha.0(aws-cdk-lib@2.91.0)(constructs@10.2.69): + resolution: {integrity: sha512-i5kqy/M4xL5+Q8/SoeM6A6hO9Ho18Rif/TWMaEwUFdWbpUTLWL67FhMs8aKtKPmQJJXHEj98HVAO+sgW23ixaw==} engines: {node: '>= 14.15.0'} peerDependencies: - aws-cdk-lib: 2.84.0 + aws-cdk-lib: 2.91.0 constructs: ^10.0.0 dependencies: - aws-cdk-lib: 2.84.0(constructs@10.1.156) - constructs: 10.1.156 + aws-cdk-lib: 2.91.0(constructs@10.2.69) + constructs: 10.2.69 dev: true - /@aws-cdk/aws-apigatewayv2-authorizers-alpha@2.84.0-alpha.0(@aws-cdk/aws-apigatewayv2-alpha@2.84.0-alpha.0)(aws-cdk-lib@2.84.0)(constructs@10.1.156): - resolution: {integrity: sha512-sbYY/PXYWPguC7c0+FEWCxvUtCjmYTkufdYRWsLLMreIFMaZ6ObiPNQezNQkhLibJEdX4N0UNzqM6rur1mpYdA==} + /@aws-cdk/aws-apigatewayv2-authorizers-alpha@2.91.0-alpha.0(@aws-cdk/aws-apigatewayv2-alpha@2.91.0-alpha.0)(aws-cdk-lib@2.91.0)(constructs@10.2.69): + resolution: {integrity: sha512-/1vVXS2JDUQjhGuceOUoIRgTxKdZwBTf4ZnH9nrGHa2nAhLF9lL8fLWpBJb1n2Xoh3qyvoG6/lsWBGffXuUnkA==} engines: {node: '>= 14.15.0'} peerDependencies: - '@aws-cdk/aws-apigatewayv2-alpha': 2.84.0-alpha.0 - aws-cdk-lib: 2.84.0 + '@aws-cdk/aws-apigatewayv2-alpha': 2.91.0-alpha.0 + aws-cdk-lib: 2.91.0 constructs: ^10.0.0 dependencies: - '@aws-cdk/aws-apigatewayv2-alpha': 2.84.0-alpha.0(aws-cdk-lib@2.84.0)(constructs@10.1.156) - aws-cdk-lib: 2.84.0(constructs@10.1.156) - constructs: 10.1.156 + '@aws-cdk/aws-apigatewayv2-alpha': 2.91.0-alpha.0(aws-cdk-lib@2.91.0)(constructs@10.2.69) + aws-cdk-lib: 2.91.0(constructs@10.2.69) + constructs: 10.2.69 dev: true - /@aws-cdk/aws-apigatewayv2-integrations-alpha@2.84.0-alpha.0(@aws-cdk/aws-apigatewayv2-alpha@2.84.0-alpha.0)(aws-cdk-lib@2.84.0)(constructs@10.1.156): - resolution: {integrity: sha512-LgVYXnAAOWL8RJLVDpu/M0qbHMADk3EwZKPsVgtxgSxKXSIU9Wpw25mK9MhYMbEJdtRUUNFz98U7Ra8Zu8AJMg==} + /@aws-cdk/aws-apigatewayv2-integrations-alpha@2.91.0-alpha.0(@aws-cdk/aws-apigatewayv2-alpha@2.91.0-alpha.0)(aws-cdk-lib@2.91.0)(constructs@10.2.69): + resolution: {integrity: sha512-3BW0nmof3CX9T0CauamJJT2KCFTE74yf0cB9wOGqJWK4d6pzd3uRPgAdRAt5HnwB8qISVgqSK1xX9Z0POI8iHg==} engines: {node: '>= 14.15.0'} peerDependencies: - '@aws-cdk/aws-apigatewayv2-alpha': 2.84.0-alpha.0 - aws-cdk-lib: 2.84.0 + '@aws-cdk/aws-apigatewayv2-alpha': 2.91.0-alpha.0 + aws-cdk-lib: 2.91.0 constructs: ^10.0.0 dependencies: - '@aws-cdk/aws-apigatewayv2-alpha': 2.84.0-alpha.0(aws-cdk-lib@2.84.0)(constructs@10.1.156) - aws-cdk-lib: 2.84.0(constructs@10.1.156) - constructs: 10.1.156 + '@aws-cdk/aws-apigatewayv2-alpha': 2.91.0-alpha.0(aws-cdk-lib@2.91.0)(constructs@10.2.69) + aws-cdk-lib: 2.91.0(constructs@10.2.69) + constructs: 10.2.69 dev: true - /@aws-cdk/cfnspec@2.84.0-alpha.0: - resolution: {integrity: sha512-gUBBnDa/0uBiqY7oQhiRpmlFV2zBJVNbDDybnPLd0OaLWhpYPLuOTb10rQCUCZNh/r4LnQMW4sxkzOOfm1O30A==} + /@aws-cdk/cfnspec@2.91.0-alpha.0: + resolution: {integrity: sha512-3Or0ZphyFR1dd53XwVqE2IbXIVvQiU/CgrVY9lWKR2jvEFtdwh3CXd5jsQwrc1MOgkGbrhOTjcXt8UeZZ+pKeg==} dependencies: fs-extra: 9.1.0 md5: 2.3.0 dev: true - /@aws-cdk/cloud-assembly-schema@2.84.0: - resolution: {integrity: sha512-TLQMexYkev8T1WSevwCibW4Dc9bvm89MUOdv1rJykCg4Vskmmw9WkWBRxW8S4nLgRAsQ0Uw8503sg5FIGjQ7rQ==} + /@aws-cdk/cloud-assembly-schema@2.91.0: + resolution: {integrity: sha512-H7pbe7VMnX2siipaT6rVDWjp0p9clrKc+8C+FG+6woqQIuQBuBZxZGVVSNtR0hdtAj7UWFX/CHGS4ihFtJnmIQ==} engines: {node: '>= 14.15.0'} dependencies: jsonschema: 1.4.1 @@ -211,11 +417,11 @@ packages: - jsonschema - semver - /@aws-cdk/cloudformation-diff@2.84.0: - resolution: {integrity: sha512-ICy5OjHfU5rC6zYqfE6VFlNFIr6Nw7W+Gz9ibDM19RrMVfyTjLcs+FBTjfVt69r96IOBD2wkW+5z1UqAtyiFfg==} + /@aws-cdk/cloudformation-diff@2.91.0: + resolution: {integrity: sha512-gjZ5wKN2tPRRsYuKolNYeYqWoqwyq4V8taALXTxre3INkY/mZUaRfj/DXeSuH24E1WFxmudKqnD8LexHeounzw==} engines: {node: '>= 14.15.0'} dependencies: - '@aws-cdk/cfnspec': 2.84.0-alpha.0 + '@aws-cdk/cfnspec': 2.91.0-alpha.0 chalk: 4.1.2 diff: 5.1.0 fast-deep-equal: 3.1.3 @@ -223,13 +429,13 @@ packages: table: 6.8.1 dev: true - /@aws-cdk/cx-api@2.84.0(@aws-cdk/cloud-assembly-schema@2.84.0): - resolution: {integrity: sha512-YcyEjT9TYtuXQgm5w9x4rsWLYRQAL78PEjjg3nRVgX6BPjjyvHtVydsiAh3h87tY00PVUlC+qQLb2FSY5YmMHg==} + /@aws-cdk/cx-api@2.91.0(@aws-cdk/cloud-assembly-schema@2.91.0): + resolution: {integrity: sha512-s/Fv7NmPvRwNpN5rssPcKRqucAc/GASEO1xtPxgHmGd+Ckj1gWvlKwPkQuR6QgZchorlm2Ch6Dzt/Vj5gQrMww==} engines: {node: '>= 14.15.0'} peerDependencies: - '@aws-cdk/cloud-assembly-schema': 2.84.0 + '@aws-cdk/cloud-assembly-schema': 2.91.0 dependencies: - '@aws-cdk/cloud-assembly-schema': 2.84.0 + '@aws-cdk/cloud-assembly-schema': 2.91.0 semver: 7.5.4 dev: true bundledDependencies: @@ -239,14 +445,14 @@ packages: resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.398.0 tslib: 1.14.1 /@aws-crypto/crc32c@3.0.0: resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.398.0 tslib: 1.14.1 /@aws-crypto/ie11-detection@3.0.0: @@ -260,7 +466,7 @@ packages: '@aws-crypto/ie11-detection': 3.0.0 '@aws-crypto/supports-web-crypto': 3.0.0 '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.398.0 '@aws-sdk/util-locate-window': 3.310.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 @@ -272,7 +478,7 @@ packages: '@aws-crypto/sha256-js': 3.0.0 '@aws-crypto/supports-web-crypto': 3.0.0 '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.398.0 '@aws-sdk/util-locate-window': 3.310.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 @@ -281,8 +487,17 @@ packages: resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.398.0 + tslib: 1.14.1 + + /@aws-crypto/sha256-js@5.0.0: + resolution: {integrity: sha512-g+u9iKkaQVp9Mjoxq1IJSHj9NHGZF441+R/GIH0dn7u4mix5QQ4VqgpppHrNm1LzjUzb0BpcFGsBXP6cOVf+ZQ==} + engines: {node: '>=16.0.0'} + dependencies: + '@aws-crypto/util': 5.0.0 + '@aws-sdk/types': 3.398.0 tslib: 1.14.1 + dev: true /@aws-crypto/supports-web-crypto@3.0.0: resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} @@ -292,21 +507,17 @@ packages: /@aws-crypto/util@3.0.0: resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} dependencies: - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.398.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 - /@aws-sdk/abort-controller@3.310.0: - resolution: {integrity: sha512-v1zrRQxDLA1MdPim159Vx/CPHqsB4uybSxRi1CnfHO5ZjHryx3a5htW2gdGAykVCul40+yJXvfpufMrELVxH+g==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/chunked-blob-reader@3.310.0: - resolution: {integrity: sha512-CrJS3exo4mWaLnWxfCH+w88Ou0IcAZSIkk4QbmxiHl/5Dq705OLoxf4385MVyExpqpeVJYOYQ2WaD8i/pQZ2fg==} + /@aws-crypto/util@5.0.0: + resolution: {integrity: sha512-1GYqLdYRe96idcCltlqxdJ68OWE6ADT8qGLmVi7PVHKl8AxD2EWSbJSSevPq2eTx6vaPZpkr1RoZ3lcw/uGoEA==} dependencies: - tslib: 2.6.2 + '@aws-sdk/types': 3.398.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 + dev: true /@aws-sdk/client-cloudformation@3.398.0: resolution: {integrity: sha512-NQAjm0FYmmMT9jn7y2kYpa5MtANwe2c+65IJATXCJC9YqmDxDveZce6YmOpZ3Qflf7Z1J2A7rYAwo0qO35/Zcg==} @@ -399,6 +610,51 @@ packages: - aws-crt dev: true + /@aws-sdk/client-ecs@3.398.0: + resolution: {integrity: sha512-bjLdxYs9fV6u5qZI5HssZrcrM2pD8JOxqo4ApHTo1ldhwtKiSsrsJv2nJ721bRT0iByDrtgI72EKfGMBysE+lA==} + engines: {node: '>=14.0.0'} + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.398.0 + '@aws-sdk/credential-provider-node': 3.398.0 + '@aws-sdk/middleware-host-header': 3.398.0 + '@aws-sdk/middleware-logger': 3.398.0 + '@aws-sdk/middleware-recursion-detection': 3.398.0 + '@aws-sdk/middleware-signing': 3.398.0 + '@aws-sdk/middleware-user-agent': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@aws-sdk/util-endpoints': 3.398.0 + '@aws-sdk/util-user-agent-browser': 3.398.0 + '@aws-sdk/util-user-agent-node': 3.398.0 + '@smithy/config-resolver': 2.0.5 + '@smithy/fetch-http-handler': 2.0.5 + '@smithy/hash-node': 2.0.5 + '@smithy/invalid-dependency': 2.0.5 + '@smithy/middleware-content-length': 2.0.5 + '@smithy/middleware-endpoint': 2.0.5 + '@smithy/middleware-retry': 2.0.5 + '@smithy/middleware-serde': 2.0.5 + '@smithy/middleware-stack': 2.0.0 + '@smithy/node-config-provider': 2.0.5 + '@smithy/node-http-handler': 2.0.5 + '@smithy/protocol-http': 2.0.5 + '@smithy/smithy-client': 2.0.5 + '@smithy/types': 2.2.2 + '@smithy/url-parser': 2.0.5 + '@smithy/util-base64': 2.0.0 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.5 + '@smithy/util-defaults-mode-node': 2.0.5 + '@smithy/util-retry': 2.0.0 + '@smithy/util-utf8': 2.0.0 + '@smithy/util-waiter': 2.0.5 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: true + /@aws-sdk/client-eventbridge@3.398.0(@aws-sdk/signature-v4-crt@3.398.0): resolution: {integrity: sha512-EmaRYvjdj+OaIjLmOlWjfAqG4hQuhEieJucRXNvdf1FShktDzN23kOHchvzBzn6e+EG5sOWhZx2ID/8YDRAPew==} engines: {node: '>=14.0.0'} @@ -581,48 +837,50 @@ packages: - aws-crt dev: true - /@aws-sdk/client-lambda@3.312.0: - resolution: {integrity: sha512-Gnzp2oniAzEr6/w8rpPI0VPx9byV2Fu4T5dYMnCKT6sxc9G8Fshb76zShVNrAB/nv7G9noobtP/L9z81yNduhg==} + /@aws-sdk/client-lambda@3.398.0: + resolution: {integrity: sha512-f++i62vpdh/kUFBx2hWnAJRpb1IOGSqP6+2OP4c7WCpYrrGKleZCRPEZdsDTYnEG1ws987XYfDtal4CVVVL+nw==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.312.0 - '@aws-sdk/config-resolver': 3.310.0 - '@aws-sdk/credential-provider-node': 3.310.0 - '@aws-sdk/eventstream-serde-browser': 3.310.0 - '@aws-sdk/eventstream-serde-config-resolver': 3.310.0 - '@aws-sdk/eventstream-serde-node': 3.310.0 - '@aws-sdk/fetch-http-handler': 3.310.0 - '@aws-sdk/hash-node': 3.310.0 - '@aws-sdk/invalid-dependency': 3.310.0 - '@aws-sdk/middleware-content-length': 3.310.0 - '@aws-sdk/middleware-endpoint': 3.310.0 - '@aws-sdk/middleware-host-header': 3.310.0 - '@aws-sdk/middleware-logger': 3.310.0 - '@aws-sdk/middleware-recursion-detection': 3.310.0 - '@aws-sdk/middleware-retry': 3.310.0 - '@aws-sdk/middleware-serde': 3.310.0 - '@aws-sdk/middleware-signing': 3.310.0 - '@aws-sdk/middleware-stack': 3.310.0 - '@aws-sdk/middleware-user-agent': 3.310.0 - '@aws-sdk/node-config-provider': 3.310.0 - '@aws-sdk/node-http-handler': 3.310.0 - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/smithy-client': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/url-parser': 3.310.0 - '@aws-sdk/util-base64': 3.310.0 - '@aws-sdk/util-body-length-browser': 3.310.0 - '@aws-sdk/util-body-length-node': 3.310.0 - '@aws-sdk/util-defaults-mode-browser': 3.310.0 - '@aws-sdk/util-defaults-mode-node': 3.310.0 - '@aws-sdk/util-endpoints': 3.310.0 - '@aws-sdk/util-retry': 3.310.0 - '@aws-sdk/util-user-agent-browser': 3.310.0 - '@aws-sdk/util-user-agent-node': 3.310.0 - '@aws-sdk/util-utf8': 3.310.0 - '@aws-sdk/util-waiter': 3.310.0 + '@aws-sdk/client-sts': 3.398.0 + '@aws-sdk/credential-provider-node': 3.398.0 + '@aws-sdk/middleware-host-header': 3.398.0 + '@aws-sdk/middleware-logger': 3.398.0 + '@aws-sdk/middleware-recursion-detection': 3.398.0 + '@aws-sdk/middleware-signing': 3.398.0 + '@aws-sdk/middleware-user-agent': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@aws-sdk/util-endpoints': 3.398.0 + '@aws-sdk/util-user-agent-browser': 3.398.0 + '@aws-sdk/util-user-agent-node': 3.398.0 + '@smithy/config-resolver': 2.0.5 + '@smithy/eventstream-serde-browser': 2.0.5 + '@smithy/eventstream-serde-config-resolver': 2.0.5 + '@smithy/eventstream-serde-node': 2.0.5 + '@smithy/fetch-http-handler': 2.0.5 + '@smithy/hash-node': 2.0.5 + '@smithy/invalid-dependency': 2.0.5 + '@smithy/middleware-content-length': 2.0.5 + '@smithy/middleware-endpoint': 2.0.5 + '@smithy/middleware-retry': 2.0.5 + '@smithy/middleware-serde': 2.0.5 + '@smithy/middleware-stack': 2.0.0 + '@smithy/node-config-provider': 2.0.5 + '@smithy/node-http-handler': 2.0.5 + '@smithy/protocol-http': 2.0.5 + '@smithy/smithy-client': 2.0.5 + '@smithy/types': 2.2.2 + '@smithy/url-parser': 2.0.5 + '@smithy/util-base64': 2.0.0 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.5 + '@smithy/util-defaults-mode-node': 2.0.5 + '@smithy/util-retry': 2.0.0 + '@smithy/util-stream': 2.0.5 + '@smithy/util-utf8': 2.0.0 + '@smithy/util-waiter': 2.0.5 tslib: 2.6.2 transitivePeerDependencies: - aws-crt @@ -671,135 +929,42 @@ packages: - aws-crt dev: true - /@aws-sdk/client-s3@3.312.0(@aws-sdk/signature-v4-crt@3.398.0): - resolution: {integrity: sha512-aqlll2g7eKwV0j+IAK4Ly7c0CRVSI712VTdItAWpLSQPw1VVUP9IKaIsBTiigoOBCJq+fb2+ufFrSTUAPdEzPQ==} + /@aws-sdk/client-s3@3.400.0(@aws-sdk/signature-v4-crt@3.398.0): + resolution: {integrity: sha512-lnv0pb79Czl8fCMs/z7yM56LvoKTri1I4jX/V33trHMFKPQDoy8i24wxG8+TZl3MUmnUyoQS7tlukh7IFkii1Q==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha1-browser': 3.0.0 - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.312.0 - '@aws-sdk/config-resolver': 3.310.0 - '@aws-sdk/credential-provider-node': 3.310.0 - '@aws-sdk/eventstream-serde-browser': 3.310.0 - '@aws-sdk/eventstream-serde-config-resolver': 3.310.0 - '@aws-sdk/eventstream-serde-node': 3.310.0 - '@aws-sdk/fetch-http-handler': 3.310.0 - '@aws-sdk/hash-blob-browser': 3.310.0 - '@aws-sdk/hash-node': 3.310.0 - '@aws-sdk/hash-stream-node': 3.310.0 - '@aws-sdk/invalid-dependency': 3.310.0 - '@aws-sdk/md5-js': 3.310.0 - '@aws-sdk/middleware-bucket-endpoint': 3.310.0 - '@aws-sdk/middleware-content-length': 3.310.0 - '@aws-sdk/middleware-endpoint': 3.310.0 - '@aws-sdk/middleware-expect-continue': 3.310.0 - '@aws-sdk/middleware-flexible-checksums': 3.310.0 - '@aws-sdk/middleware-host-header': 3.310.0 - '@aws-sdk/middleware-location-constraint': 3.310.0 - '@aws-sdk/middleware-logger': 3.310.0 - '@aws-sdk/middleware-recursion-detection': 3.310.0 - '@aws-sdk/middleware-retry': 3.310.0 - '@aws-sdk/middleware-sdk-s3': 3.310.0 - '@aws-sdk/middleware-serde': 3.310.0 - '@aws-sdk/middleware-signing': 3.310.0 - '@aws-sdk/middleware-ssec': 3.310.0 - '@aws-sdk/middleware-stack': 3.310.0 - '@aws-sdk/middleware-user-agent': 3.310.0 - '@aws-sdk/node-config-provider': 3.310.0 - '@aws-sdk/node-http-handler': 3.310.0 - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/signature-v4-multi-region': 3.310.0(@aws-sdk/signature-v4-crt@3.398.0) - '@aws-sdk/smithy-client': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/url-parser': 3.310.0 - '@aws-sdk/util-base64': 3.310.0 - '@aws-sdk/util-body-length-browser': 3.310.0 - '@aws-sdk/util-body-length-node': 3.310.0 - '@aws-sdk/util-defaults-mode-browser': 3.310.0 - '@aws-sdk/util-defaults-mode-node': 3.310.0 - '@aws-sdk/util-endpoints': 3.310.0 - '@aws-sdk/util-retry': 3.310.0 - '@aws-sdk/util-stream-browser': 3.310.0 - '@aws-sdk/util-stream-node': 3.310.0 - '@aws-sdk/util-user-agent-browser': 3.310.0 - '@aws-sdk/util-user-agent-node': 3.310.0 - '@aws-sdk/util-utf8': 3.310.0 - '@aws-sdk/util-waiter': 3.310.0 - '@aws-sdk/xml-builder': 3.310.0 - fast-xml-parser: 4.1.2 - tslib: 2.6.2 - transitivePeerDependencies: - - '@aws-sdk/signature-v4-crt' - - aws-crt - - /@aws-sdk/client-sqs@3.312.0: - resolution: {integrity: sha512-5laZcRwwT9GYf37K1BEBoynz4ofRuGLfvhmXQnq5QhFo5+SCYBREHinkhup81Bajrs8BK0Rju20tqpG8NcSU0Q==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.312.0 - '@aws-sdk/config-resolver': 3.310.0 - '@aws-sdk/credential-provider-node': 3.310.0 - '@aws-sdk/fetch-http-handler': 3.310.0 - '@aws-sdk/hash-node': 3.310.0 - '@aws-sdk/invalid-dependency': 3.310.0 - '@aws-sdk/md5-js': 3.310.0 - '@aws-sdk/middleware-content-length': 3.310.0 - '@aws-sdk/middleware-endpoint': 3.310.0 - '@aws-sdk/middleware-host-header': 3.310.0 - '@aws-sdk/middleware-logger': 3.310.0 - '@aws-sdk/middleware-recursion-detection': 3.310.0 - '@aws-sdk/middleware-retry': 3.310.0 - '@aws-sdk/middleware-sdk-sqs': 3.310.0 - '@aws-sdk/middleware-serde': 3.310.0 - '@aws-sdk/middleware-signing': 3.310.0 - '@aws-sdk/middleware-stack': 3.310.0 - '@aws-sdk/middleware-user-agent': 3.310.0 - '@aws-sdk/node-config-provider': 3.310.0 - '@aws-sdk/node-http-handler': 3.310.0 - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/smithy-client': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/url-parser': 3.310.0 - '@aws-sdk/util-base64': 3.310.0 - '@aws-sdk/util-body-length-browser': 3.310.0 - '@aws-sdk/util-body-length-node': 3.310.0 - '@aws-sdk/util-defaults-mode-browser': 3.310.0 - '@aws-sdk/util-defaults-mode-node': 3.310.0 - '@aws-sdk/util-endpoints': 3.310.0 - '@aws-sdk/util-retry': 3.310.0 - '@aws-sdk/util-user-agent-browser': 3.310.0 - '@aws-sdk/util-user-agent-node': 3.310.0 - '@aws-sdk/util-utf8': 3.310.0 - fast-xml-parser: 4.1.2 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/client-ssm@3.398.0: - resolution: {integrity: sha512-TlcY4wJzGinllmPtmZi7M8lUaXeUWHkpU1N5CFi8/Ef1A2o7Af9tG+1UgY7dFeoPv2pZsYp5Ettw/hRV+dt7fQ==} - engines: {node: '>=14.0.0'} - dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 '@aws-sdk/client-sts': 3.398.0 '@aws-sdk/credential-provider-node': 3.398.0 + '@aws-sdk/middleware-bucket-endpoint': 3.398.0 + '@aws-sdk/middleware-expect-continue': 3.398.0 + '@aws-sdk/middleware-flexible-checksums': 3.400.0 '@aws-sdk/middleware-host-header': 3.398.0 + '@aws-sdk/middleware-location-constraint': 3.398.0 '@aws-sdk/middleware-logger': 3.398.0 '@aws-sdk/middleware-recursion-detection': 3.398.0 + '@aws-sdk/middleware-sdk-s3': 3.398.0 '@aws-sdk/middleware-signing': 3.398.0 + '@aws-sdk/middleware-ssec': 3.398.0 '@aws-sdk/middleware-user-agent': 3.398.0 + '@aws-sdk/signature-v4-multi-region': 3.398.0(@aws-sdk/signature-v4-crt@3.398.0) '@aws-sdk/types': 3.398.0 '@aws-sdk/util-endpoints': 3.398.0 '@aws-sdk/util-user-agent-browser': 3.398.0 '@aws-sdk/util-user-agent-node': 3.398.0 + '@aws-sdk/xml-builder': 3.310.0 '@smithy/config-resolver': 2.0.5 + '@smithy/eventstream-serde-browser': 2.0.5 + '@smithy/eventstream-serde-config-resolver': 2.0.5 + '@smithy/eventstream-serde-node': 2.0.5 '@smithy/fetch-http-handler': 2.0.5 + '@smithy/hash-blob-browser': 2.0.5 '@smithy/hash-node': 2.0.5 + '@smithy/hash-stream-node': 2.0.5 '@smithy/invalid-dependency': 2.0.5 + '@smithy/md5-js': 2.0.5 '@smithy/middleware-content-length': 2.0.5 '@smithy/middleware-endpoint': 2.0.5 '@smithy/middleware-retry': 2.0.5 @@ -817,101 +982,28 @@ packages: '@smithy/util-defaults-mode-browser': 2.0.5 '@smithy/util-defaults-mode-node': 2.0.5 '@smithy/util-retry': 2.0.0 + '@smithy/util-stream': 2.0.5 '@smithy/util-utf8': 2.0.0 '@smithy/util-waiter': 2.0.5 - tslib: 2.6.2 - uuid: 8.3.2 - transitivePeerDependencies: - - aws-crt - dev: true - - /@aws-sdk/client-sso-oidc@3.310.0: - resolution: {integrity: sha512-3GKaRSfMD3OiYWGa+qg5KvJw0nLV0Vu7zRiulLuKDvgmWw3SNJKn3frWlmq/bKFUKahLsV8zozbeJItxtKAD6g==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/config-resolver': 3.310.0 - '@aws-sdk/fetch-http-handler': 3.310.0 - '@aws-sdk/hash-node': 3.310.0 - '@aws-sdk/invalid-dependency': 3.310.0 - '@aws-sdk/middleware-content-length': 3.310.0 - '@aws-sdk/middleware-endpoint': 3.310.0 - '@aws-sdk/middleware-host-header': 3.310.0 - '@aws-sdk/middleware-logger': 3.310.0 - '@aws-sdk/middleware-recursion-detection': 3.310.0 - '@aws-sdk/middleware-retry': 3.310.0 - '@aws-sdk/middleware-serde': 3.310.0 - '@aws-sdk/middleware-stack': 3.310.0 - '@aws-sdk/middleware-user-agent': 3.310.0 - '@aws-sdk/node-config-provider': 3.310.0 - '@aws-sdk/node-http-handler': 3.310.0 - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/smithy-client': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/url-parser': 3.310.0 - '@aws-sdk/util-base64': 3.310.0 - '@aws-sdk/util-body-length-browser': 3.310.0 - '@aws-sdk/util-body-length-node': 3.310.0 - '@aws-sdk/util-defaults-mode-browser': 3.310.0 - '@aws-sdk/util-defaults-mode-node': 3.310.0 - '@aws-sdk/util-endpoints': 3.310.0 - '@aws-sdk/util-retry': 3.310.0 - '@aws-sdk/util-user-agent-browser': 3.310.0 - '@aws-sdk/util-user-agent-node': 3.310.0 - '@aws-sdk/util-utf8': 3.310.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - - /@aws-sdk/client-sso@3.310.0: - resolution: {integrity: sha512-netFap3Mp9I7bzAjsswHPA5WEbQtNMmXvW9/IVb7tmf85/esXCWindtyI43e/Xerut9ZVyEACPBFn30CLLE2xQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/config-resolver': 3.310.0 - '@aws-sdk/fetch-http-handler': 3.310.0 - '@aws-sdk/hash-node': 3.310.0 - '@aws-sdk/invalid-dependency': 3.310.0 - '@aws-sdk/middleware-content-length': 3.310.0 - '@aws-sdk/middleware-endpoint': 3.310.0 - '@aws-sdk/middleware-host-header': 3.310.0 - '@aws-sdk/middleware-logger': 3.310.0 - '@aws-sdk/middleware-recursion-detection': 3.310.0 - '@aws-sdk/middleware-retry': 3.310.0 - '@aws-sdk/middleware-serde': 3.310.0 - '@aws-sdk/middleware-stack': 3.310.0 - '@aws-sdk/middleware-user-agent': 3.310.0 - '@aws-sdk/node-config-provider': 3.310.0 - '@aws-sdk/node-http-handler': 3.310.0 - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/smithy-client': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/url-parser': 3.310.0 - '@aws-sdk/util-base64': 3.310.0 - '@aws-sdk/util-body-length-browser': 3.310.0 - '@aws-sdk/util-body-length-node': 3.310.0 - '@aws-sdk/util-defaults-mode-browser': 3.310.0 - '@aws-sdk/util-defaults-mode-node': 3.310.0 - '@aws-sdk/util-endpoints': 3.310.0 - '@aws-sdk/util-retry': 3.310.0 - '@aws-sdk/util-user-agent-browser': 3.310.0 - '@aws-sdk/util-user-agent-node': 3.310.0 - '@aws-sdk/util-utf8': 3.310.0 + fast-xml-parser: 4.2.5 tslib: 2.6.2 transitivePeerDependencies: + - '@aws-sdk/signature-v4-crt' - aws-crt - /@aws-sdk/client-sso@3.398.0: - resolution: {integrity: sha512-CygL0jhfibw4kmWXG/3sfZMFNjcXo66XUuPC4BqZBk8Rj5vFoxp1vZeMkDLzTIk97Nvo5J5Bh+QnXKhub6AckQ==} + /@aws-sdk/client-sqs@3.398.0: + resolution: {integrity: sha512-y5+QxwQEYbbrHWuJgGL4BnlgfQO/Jp3cLpd0p/idLccAfWia2TKO15rn6sBvMcpC7/nTPjtii3jPeUn6HkAGHQ==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.398.0 + '@aws-sdk/credential-provider-node': 3.398.0 '@aws-sdk/middleware-host-header': 3.398.0 '@aws-sdk/middleware-logger': 3.398.0 '@aws-sdk/middleware-recursion-detection': 3.398.0 + '@aws-sdk/middleware-sdk-sqs': 3.398.0 + '@aws-sdk/middleware-signing': 3.398.0 '@aws-sdk/middleware-user-agent': 3.398.0 '@aws-sdk/types': 3.398.0 '@aws-sdk/util-endpoints': 3.398.0 @@ -921,6 +1013,7 @@ packages: '@smithy/fetch-http-handler': 2.0.5 '@smithy/hash-node': 2.0.5 '@smithy/invalid-dependency': 2.0.5 + '@smithy/md5-js': 2.0.5 '@smithy/middleware-content-length': 2.0.5 '@smithy/middleware-endpoint': 2.0.5 '@smithy/middleware-retry': 2.0.5 @@ -939,65 +1032,23 @@ packages: '@smithy/util-defaults-mode-node': 2.0.5 '@smithy/util-retry': 2.0.0 '@smithy/util-utf8': 2.0.0 + fast-xml-parser: 4.2.5 tslib: 2.6.2 transitivePeerDependencies: - aws-crt - dev: true - - /@aws-sdk/client-sts@3.312.0: - resolution: {integrity: sha512-t0U7vRvWaMjrzBUo6tPrHe6HE97Blqx+b4GOjFbcbLtzxLlcRfhnWJik0Lp8hJtVqzNoN5mL4OeYgK7CRpL/Sw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/config-resolver': 3.310.0 - '@aws-sdk/credential-provider-node': 3.310.0 - '@aws-sdk/fetch-http-handler': 3.310.0 - '@aws-sdk/hash-node': 3.310.0 - '@aws-sdk/invalid-dependency': 3.310.0 - '@aws-sdk/middleware-content-length': 3.310.0 - '@aws-sdk/middleware-endpoint': 3.310.0 - '@aws-sdk/middleware-host-header': 3.310.0 - '@aws-sdk/middleware-logger': 3.310.0 - '@aws-sdk/middleware-recursion-detection': 3.310.0 - '@aws-sdk/middleware-retry': 3.310.0 - '@aws-sdk/middleware-sdk-sts': 3.310.0 - '@aws-sdk/middleware-serde': 3.310.0 - '@aws-sdk/middleware-signing': 3.310.0 - '@aws-sdk/middleware-stack': 3.310.0 - '@aws-sdk/middleware-user-agent': 3.310.0 - '@aws-sdk/node-config-provider': 3.310.0 - '@aws-sdk/node-http-handler': 3.310.0 - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/smithy-client': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/url-parser': 3.310.0 - '@aws-sdk/util-base64': 3.310.0 - '@aws-sdk/util-body-length-browser': 3.310.0 - '@aws-sdk/util-body-length-node': 3.310.0 - '@aws-sdk/util-defaults-mode-browser': 3.310.0 - '@aws-sdk/util-defaults-mode-node': 3.310.0 - '@aws-sdk/util-endpoints': 3.310.0 - '@aws-sdk/util-retry': 3.310.0 - '@aws-sdk/util-user-agent-browser': 3.310.0 - '@aws-sdk/util-user-agent-node': 3.310.0 - '@aws-sdk/util-utf8': 3.310.0 - fast-xml-parser: 4.1.2 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt + dev: false - /@aws-sdk/client-sts@3.398.0: - resolution: {integrity: sha512-/3Pa9wLMvBZipKraq3AtbmTfXW6q9kyvhwOno64f1Fz7kFb8ijQFMGoATS70B2pGEZTlxkUqJFWDiisT6Q6dFg==} + /@aws-sdk/client-ssm@3.398.0: + resolution: {integrity: sha512-TlcY4wJzGinllmPtmZi7M8lUaXeUWHkpU1N5CFi8/Ef1A2o7Af9tG+1UgY7dFeoPv2pZsYp5Ettw/hRV+dt7fQ==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.398.0 '@aws-sdk/credential-provider-node': 3.398.0 '@aws-sdk/middleware-host-header': 3.398.0 '@aws-sdk/middleware-logger': 3.398.0 '@aws-sdk/middleware-recursion-detection': 3.398.0 - '@aws-sdk/middleware-sdk-sts': 3.398.0 '@aws-sdk/middleware-signing': 3.398.0 '@aws-sdk/middleware-user-agent': 3.398.0 '@aws-sdk/types': 3.398.0 @@ -1026,86 +1077,127 @@ packages: '@smithy/util-defaults-mode-node': 2.0.5 '@smithy/util-retry': 2.0.0 '@smithy/util-utf8': 2.0.0 - fast-xml-parser: 4.2.5 + '@smithy/util-waiter': 2.0.5 tslib: 2.6.2 + uuid: 8.3.2 transitivePeerDependencies: - aws-crt dev: true - /@aws-sdk/config-resolver@3.310.0: - resolution: {integrity: sha512-8vsT+/50lOqfDxka9m/rRt6oxv1WuGZoP8oPMk0Dt+TxXMbAzf4+rejBgiB96wshI1k3gLokYRjSQZn+dDtT8g==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.310.0 - '@aws-sdk/util-config-provider': 3.310.0 - '@aws-sdk/util-middleware': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/config-resolver@3.374.0: - resolution: {integrity: sha512-eTSbmpcgZ97o7PuFls8pH1344OS03nfqq1NO9HxxvoYoZ6DFfUO7kqKeNUhP9LxOF7slyHXajDT7eoPclGnTuw==} - engines: {node: '>=14.0.0'} - deprecated: This package has moved to @smithy/config-resolver - dependencies: - '@smithy/config-resolver': 1.1.0 - tslib: 2.6.2 - dev: true - - /@aws-sdk/credential-provider-cognito-identity@3.398.0: - resolution: {integrity: sha512-MFUhy1YayHg5ypRTk4OTfDumQRP+OJBagaGv14kA8DzhKH1sNrU4HV7A7y2J4SvkN5hG/KnLJqxpakCtB2/O2g==} + /@aws-sdk/client-sso@3.398.0: + resolution: {integrity: sha512-CygL0jhfibw4kmWXG/3sfZMFNjcXo66XUuPC4BqZBk8Rj5vFoxp1vZeMkDLzTIk97Nvo5J5Bh+QnXKhub6AckQ==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/client-cognito-identity': 3.398.0 + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/middleware-host-header': 3.398.0 + '@aws-sdk/middleware-logger': 3.398.0 + '@aws-sdk/middleware-recursion-detection': 3.398.0 + '@aws-sdk/middleware-user-agent': 3.398.0 '@aws-sdk/types': 3.398.0 - '@smithy/property-provider': 2.0.5 + '@aws-sdk/util-endpoints': 3.398.0 + '@aws-sdk/util-user-agent-browser': 3.398.0 + '@aws-sdk/util-user-agent-node': 3.398.0 + '@smithy/config-resolver': 2.0.5 + '@smithy/fetch-http-handler': 2.0.5 + '@smithy/hash-node': 2.0.5 + '@smithy/invalid-dependency': 2.0.5 + '@smithy/middleware-content-length': 2.0.5 + '@smithy/middleware-endpoint': 2.0.5 + '@smithy/middleware-retry': 2.0.5 + '@smithy/middleware-serde': 2.0.5 + '@smithy/middleware-stack': 2.0.0 + '@smithy/node-config-provider': 2.0.5 + '@smithy/node-http-handler': 2.0.5 + '@smithy/protocol-http': 2.0.5 + '@smithy/smithy-client': 2.0.5 '@smithy/types': 2.2.2 + '@smithy/url-parser': 2.0.5 + '@smithy/util-base64': 2.0.0 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.5 + '@smithy/util-defaults-mode-node': 2.0.5 + '@smithy/util-retry': 2.0.0 + '@smithy/util-utf8': 2.0.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt - dev: true - /@aws-sdk/credential-provider-env@3.310.0: - resolution: {integrity: sha512-vvIPQpI16fj95xwS7M3D48F7QhZJBnnCgB5lR+b7So+vsG9ibm1mZRVGzVpdxCvgyOhHFbvrby9aalNJmmIP1A==} + /@aws-sdk/client-sts@3.398.0: + resolution: {integrity: sha512-/3Pa9wLMvBZipKraq3AtbmTfXW6q9kyvhwOno64f1Fz7kFb8ijQFMGoATS70B2pGEZTlxkUqJFWDiisT6Q6dFg==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/property-provider': 3.310.0 - '@aws-sdk/types': 3.310.0 + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/credential-provider-node': 3.398.0 + '@aws-sdk/middleware-host-header': 3.398.0 + '@aws-sdk/middleware-logger': 3.398.0 + '@aws-sdk/middleware-recursion-detection': 3.398.0 + '@aws-sdk/middleware-sdk-sts': 3.398.0 + '@aws-sdk/middleware-signing': 3.398.0 + '@aws-sdk/middleware-user-agent': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@aws-sdk/util-endpoints': 3.398.0 + '@aws-sdk/util-user-agent-browser': 3.398.0 + '@aws-sdk/util-user-agent-node': 3.398.0 + '@smithy/config-resolver': 2.0.5 + '@smithy/fetch-http-handler': 2.0.5 + '@smithy/hash-node': 2.0.5 + '@smithy/invalid-dependency': 2.0.5 + '@smithy/middleware-content-length': 2.0.5 + '@smithy/middleware-endpoint': 2.0.5 + '@smithy/middleware-retry': 2.0.5 + '@smithy/middleware-serde': 2.0.5 + '@smithy/middleware-stack': 2.0.0 + '@smithy/node-config-provider': 2.0.5 + '@smithy/node-http-handler': 2.0.5 + '@smithy/protocol-http': 2.0.5 + '@smithy/smithy-client': 2.0.5 + '@smithy/types': 2.2.2 + '@smithy/url-parser': 2.0.5 + '@smithy/util-base64': 2.0.0 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.5 + '@smithy/util-defaults-mode-node': 2.0.5 + '@smithy/util-retry': 2.0.0 + '@smithy/util-utf8': 2.0.0 + fast-xml-parser: 4.2.5 tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt - /@aws-sdk/credential-provider-env@3.398.0: - resolution: {integrity: sha512-Z8Yj5z7FroAsR6UVML+XUdlpoqEe9Dnle8c2h8/xWwIC2feTfIBhjLhRVxfbpbM1pLgBSNEcZ7U8fwq5l7ESVQ==} + /@aws-sdk/config-resolver@3.374.0: + resolution: {integrity: sha512-eTSbmpcgZ97o7PuFls8pH1344OS03nfqq1NO9HxxvoYoZ6DFfUO7kqKeNUhP9LxOF7slyHXajDT7eoPclGnTuw==} engines: {node: '>=14.0.0'} + deprecated: This package has moved to @smithy/config-resolver dependencies: - '@aws-sdk/types': 3.398.0 - '@smithy/property-provider': 2.0.5 - '@smithy/types': 2.2.2 + '@smithy/config-resolver': 1.1.0 tslib: 2.6.2 dev: true - /@aws-sdk/credential-provider-imds@3.310.0: - resolution: {integrity: sha512-baxK7Zp6dai5AGW01FIW27xS2KAaPUmKLIXv5SvFYsUgXXvNW55im4uG3b+2gA0F7V+hXvVBH08OEqmwW6we5w==} + /@aws-sdk/credential-provider-cognito-identity@3.398.0: + resolution: {integrity: sha512-MFUhy1YayHg5ypRTk4OTfDumQRP+OJBagaGv14kA8DzhKH1sNrU4HV7A7y2J4SvkN5hG/KnLJqxpakCtB2/O2g==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/node-config-provider': 3.310.0 - '@aws-sdk/property-provider': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/url-parser': 3.310.0 + '@aws-sdk/client-cognito-identity': 3.398.0 + '@aws-sdk/types': 3.398.0 + '@smithy/property-provider': 2.0.5 + '@smithy/types': 2.2.2 tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + dev: true - /@aws-sdk/credential-provider-ini@3.310.0: - resolution: {integrity: sha512-gtRz7I+4BBpwZ3tc6UIt5lQuiAFnkpOibxHh95x1M6HDxBjm+uqD6RPZYVH+dULZPYXOtOTsHV0IGjrcV0sSRg==} + /@aws-sdk/credential-provider-env@3.398.0: + resolution: {integrity: sha512-Z8Yj5z7FroAsR6UVML+XUdlpoqEe9Dnle8c2h8/xWwIC2feTfIBhjLhRVxfbpbM1pLgBSNEcZ7U8fwq5l7ESVQ==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/credential-provider-env': 3.310.0 - '@aws-sdk/credential-provider-imds': 3.310.0 - '@aws-sdk/credential-provider-process': 3.310.0 - '@aws-sdk/credential-provider-sso': 3.310.0 - '@aws-sdk/credential-provider-web-identity': 3.310.0 - '@aws-sdk/property-provider': 3.310.0 - '@aws-sdk/shared-ini-file-loader': 3.310.0 - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.398.0 + '@smithy/property-provider': 2.0.5 + '@smithy/types': 2.2.2 tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt /@aws-sdk/credential-provider-ini@3.398.0: resolution: {integrity: sha512-AsK1lStK3nB9Cn6S6ODb1ktGh7SRejsNVQVKX3t5d3tgOaX+aX1Iwy8FzM/ZEN8uCloeRifUGIY9uQFygg5mSw==} @@ -1123,24 +1215,6 @@ packages: tslib: 2.6.2 transitivePeerDependencies: - aws-crt - dev: true - - /@aws-sdk/credential-provider-node@3.310.0: - resolution: {integrity: sha512-FrOztUcOq2Sp32xGtJvxfvdlmuAeoxIu/AElHzV1bkx6Pzo9DkQBhXrSQ+JFSpI++weOD4ZGFhAvgbgUOT4VAg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/credential-provider-env': 3.310.0 - '@aws-sdk/credential-provider-imds': 3.310.0 - '@aws-sdk/credential-provider-ini': 3.310.0 - '@aws-sdk/credential-provider-process': 3.310.0 - '@aws-sdk/credential-provider-sso': 3.310.0 - '@aws-sdk/credential-provider-web-identity': 3.310.0 - '@aws-sdk/property-provider': 3.310.0 - '@aws-sdk/shared-ini-file-loader': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt /@aws-sdk/credential-provider-node@3.398.0: resolution: {integrity: sha512-odmI/DSKfuWUYeDnGTCEHBbC8/MwnF6yEq874zl6+owoVv0ZsYP8qBHfiJkYqrwg7wQ7Pi40sSAPC1rhesGwzg==} @@ -1159,16 +1233,6 @@ packages: tslib: 2.6.2 transitivePeerDependencies: - aws-crt - dev: true - - /@aws-sdk/credential-provider-process@3.310.0: - resolution: {integrity: sha512-h73sg6GPMUWC+3zMCbA1nZ2O03nNJt7G96JdmnantiXBwHpRKWW8nBTLzx5uhXn6hTuTaoQRP/P+oxQJKYdMmA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/property-provider': 3.310.0 - '@aws-sdk/shared-ini-file-loader': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 /@aws-sdk/credential-provider-process@3.398.0: resolution: {integrity: sha512-WrkBL1W7TXN508PA9wRXPFtzmGpVSW98gDaHEaa8GolAPHMPa5t2QcC/z/cFpglzrcVv8SA277zu9Z8tELdZhg==} @@ -1179,20 +1243,6 @@ packages: '@smithy/shared-ini-file-loader': 2.0.5 '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true - - /@aws-sdk/credential-provider-sso@3.310.0: - resolution: {integrity: sha512-nXkpT8mrM/wRqSiz/a4p9U2UrOKyfZXhbPHIHyQj8K+uLjsYS+WPuH287J4A5Q57A6uarTrj5RjHmVeZVLaHmg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/client-sso': 3.310.0 - '@aws-sdk/property-provider': 3.310.0 - '@aws-sdk/shared-ini-file-loader': 3.310.0 - '@aws-sdk/token-providers': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt /@aws-sdk/credential-provider-sso@3.398.0: resolution: {integrity: sha512-2Dl35587xbnzR/GGZqA2MnFs8+kS4wbHQO9BioU0okA+8NRueohNMdrdQmQDdSNK4BfIpFspiZmFkXFNyEAfgw==} @@ -1207,15 +1257,6 @@ packages: tslib: 2.6.2 transitivePeerDependencies: - aws-crt - dev: true - - /@aws-sdk/credential-provider-web-identity@3.310.0: - resolution: {integrity: sha512-H4SzuZXILNhK6/IR1uVvsUDZvzc051hem7GLyYghBCu8mU+tq28YhKE8MfSroi6eL2e5Vujloij1OM2EQQkPkw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/property-provider': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 /@aws-sdk/credential-provider-web-identity@3.398.0: resolution: {integrity: sha512-iG3905Alv9pINbQ8/MIsshgqYMbWx+NDQWpxbIW3W0MkSH3iAqdVpSCteYidYX9G/jv2Um1nW3y360ib20bvNg==} @@ -1225,7 +1266,6 @@ packages: '@smithy/property-provider': 2.0.5 '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true /@aws-sdk/credential-providers@3.398.0: resolution: {integrity: sha512-355vXmImn2e85mIWSYDVb101AF2lIVHKNCaH6sV1U/8i0ZOXh2cJYNdkRYrxNt1ezDB0k97lSKvuDx7RDvJyRg==} @@ -1250,151 +1290,37 @@ packages: - aws-crt dev: true - /@aws-sdk/eventstream-codec@3.310.0: - resolution: {integrity: sha512-clIeSgWbZbxwtsxZ/yoedNM0/kJFSIjjHPikuDGhxhqc+vP6TN3oYyVMFrYwFaTFhk2+S5wZcWYMw8Op1pWo+A==} - dependencies: - '@aws-crypto/crc32': 3.0.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/util-hex-encoding': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/eventstream-serde-browser@3.310.0: - resolution: {integrity: sha512-3S6ziuQVALgEyz0TANGtYDVeG8ArK4Y05mcgrs8qUTmsvlDIXX37cR/DvmVbNB76M4IrsZeSAIajL9644CywkA==} + /@aws-sdk/middleware-bucket-endpoint@3.398.0: + resolution: {integrity: sha512-+iDHiRofK/vIY94RWAXkSnR4rBPzc2dPHmLp+FDKywq1y708H9W7TOT37dpn+KSFeO4k2FfddFjzWBHsaeakCA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/eventstream-serde-universal': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/eventstream-serde-config-resolver@3.310.0: - resolution: {integrity: sha512-8s1Qdn9STj+sV75nUp9yt0W6fHS4BZ2jTm4Z/1Pcbvh2Gqs0WjH5n2StS+pDW5Y9J/HSGBl0ogmUr5lC5bXFHg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/eventstream-serde-node@3.310.0: - resolution: {integrity: sha512-kSnRomCgW43K9TmQYuwN9+AoYPnhyOKroanUMyZEzJk7rpCPMj4OzaUpXfDYOvznFNYn7NLaH6nHLJAr0VPlJA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/eventstream-serde-universal': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/eventstream-serde-universal@3.310.0: - resolution: {integrity: sha512-Qyjt5k/waV5cDukpgT824ISZAz5U0pwzLz5ztR409u85AGNkF/9n7MS+LSyBUBSb0WJ5pUeSD47WBk+nLq9Nhw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/eventstream-codec': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/fetch-http-handler@3.310.0: - resolution: {integrity: sha512-Bi9vIwzdkw1zMcvi/zGzlWS9KfIEnAq4NNhsnCxbQ4OoIRU9wvU+WGZdBBhxg0ZxZmpp1j1aZhU53lLjA07MHw==} - dependencies: - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/querystring-builder': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/util-base64': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/hash-blob-browser@3.310.0: - resolution: {integrity: sha512-OoR8p0cbypToysLT0v3o2oyjy6+DKrY7GNCAzHOHJK9xmqXCt+DsjKoPeiY7o1sWX2aN6Plmvubj/zWxMKEn/A==} - dependencies: - '@aws-sdk/chunked-blob-reader': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/hash-node@3.310.0: - resolution: {integrity: sha512-NvE2fhRc8GRwCXBfDehxVAWCmVwVMILliAKVPAEr4yz2CkYs0tqU51S48x23dtna07H4qHtgpeNqVTthcIQOEQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.310.0 - '@aws-sdk/util-buffer-from': 3.310.0 - '@aws-sdk/util-utf8': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/hash-stream-node@3.310.0: - resolution: {integrity: sha512-ZoXdybNgvMz1Hl6k/e32xVL3jmG5p2IEk5mTtLfFEuskTJ74Z+VMYKkkF1whyy7KQfH83H+TQGnsGtlRCchQKw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.310.0 - '@aws-sdk/util-utf8': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/invalid-dependency@3.310.0: - resolution: {integrity: sha512-1s5RG5rSPXoa/aZ/Kqr5U/7lqpx+Ry81GprQ2bxWqJvWQIJ0IRUwo5pk8XFxbKVr/2a+4lZT/c3OGoBOM1yRRA==} - dependencies: - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/is-array-buffer@3.310.0: - resolution: {integrity: sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - - /@aws-sdk/md5-js@3.310.0: - resolution: {integrity: sha512-x5sRBUrEfLWAS1EhwbbDQ7cXq6uvBxh3qR2XAsnGvFFceTeAadk7cVogWxlk3PC+OCeeym7c3/6Bv2HQ2f1YyQ==} - dependencies: - '@aws-sdk/types': 3.310.0 - '@aws-sdk/util-utf8': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/middleware-bucket-endpoint@3.310.0: - resolution: {integrity: sha512-uJJfHI7v4AgbJZRLtyI8ap2QRWkBokGc3iyUoQ+dVNT3/CE2ZCu694A6W+H0dRqg79dIE+f9CRNdtLGa/Ehhvg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.398.0 '@aws-sdk/util-arn-parser': 3.310.0 - '@aws-sdk/util-config-provider': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/middleware-content-length@3.310.0: - resolution: {integrity: sha512-P8tQZxgDt6CAh1wd/W6WPzjc+uWPJwQkm+F7rAwRlM+k9q17HrhnksGDKcpuuLyIhPQYdmOMIkpKVgXGa4avhQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/middleware-endpoint@3.310.0: - resolution: {integrity: sha512-Z+N2vOL8K354/lstkClxLLsr6hCpVRh+0tCMXrVj66/NtKysCEZ/0b9LmqOwD9pWHNiI2mJqXwY0gxNlKAroUg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/middleware-serde': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/url-parser': 3.310.0 - '@aws-sdk/util-middleware': 3.310.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/types': 2.2.2 + '@smithy/util-config-provider': 2.0.0 tslib: 2.6.2 - /@aws-sdk/middleware-expect-continue@3.310.0: - resolution: {integrity: sha512-l3d1z2gt+gINJDnPSyu84IxfzjzPfCQrqC1sunw2cZGo/sXtEiq698Q3SiTcO2PGP4LBQAy2RHb5wVBJP708CQ==} + /@aws-sdk/middleware-expect-continue@3.398.0: + resolution: {integrity: sha512-d6he+Qqwh1yqml9duXSv5iKJ2lS0PVrF2UEsVew2GFxfUif0E/davTZJjvWtnelbuIGcTP+wDKVVjLwBN2sN/g==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.398.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/types': 2.2.2 tslib: 2.6.2 - /@aws-sdk/middleware-flexible-checksums@3.310.0: - resolution: {integrity: sha512-5ndnLgzgGVpWkmHBAiYkagHqiSuow8q62J4J6E2PzaQ77+fm8W3nfdy7hK5trHokEyouCZdxT/XK/IRhgj/4PA==} + /@aws-sdk/middleware-flexible-checksums@3.400.0: + resolution: {integrity: sha512-lpsumd5/G+eAMTr61h/cJQZ8+i+xzC6OG3bvUcbRHqcjN49XgeNLcPfYcr6Rzf0QHxmuCN4te/4XGU3Fif2YVA==} engines: {node: '>=14.0.0'} dependencies: '@aws-crypto/crc32': 3.0.0 '@aws-crypto/crc32c': 3.0.0 - '@aws-sdk/is-array-buffer': 3.310.0 - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/util-utf8': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/middleware-host-header@3.310.0: - resolution: {integrity: sha512-QWSA+46/hXorXyWa61ic2K7qZzwHTiwfk2e9mRRjeIRepUgI3qxFjsYqrWtrOGBjmFmq0pYIY8Bb/DCJuQqcoA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.398.0 + '@smithy/is-array-buffer': 2.0.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/types': 2.2.2 + '@smithy/util-utf8': 2.0.0 tslib: 2.6.2 /@aws-sdk/middleware-host-header@3.398.0: @@ -1405,20 +1331,13 @@ packages: '@smithy/protocol-http': 2.0.5 '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true - /@aws-sdk/middleware-location-constraint@3.310.0: - resolution: {integrity: sha512-LFm0JTQWwTPWL/tZU2wsQTl8J5PpDEkXjEhaXVKamtyH0xhysRqd+0n92n65dc8oztAuQkb9xUbErGn5b6gsew==} + /@aws-sdk/middleware-location-constraint@3.398.0: + resolution: {integrity: sha512-it+olJf1Lf2bmH8OL/N1jMOFB0zEVYs4rIzgFrluTRCuPatRuDi4LsXS8zqYxkBa05JE8JmqwW5gCzAmWyLLqw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/middleware-logger@3.310.0: - resolution: {integrity: sha512-Lurm8XofrASBRnAVtiSNuDSRsRqPNg27RIFLLsLp/pqog9nFJ0vz0kgdb9S5Z+zw83Mm+UlqOe6D8NTUNp4fVg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.398.0 + '@smithy/types': 2.2.2 tslib: 2.6.2 /@aws-sdk/middleware-logger@3.398.0: @@ -1428,15 +1347,6 @@ packages: '@aws-sdk/types': 3.398.0 '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true - - /@aws-sdk/middleware-recursion-detection@3.310.0: - resolution: {integrity: sha512-SuB75/xk/gyue24gkriTwO2jFd7YcUGZDClQYuRejgbXSa3CO0lWyawQtfLcSSEBp9izrEVXuFH24K1eAft5nQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 /@aws-sdk/middleware-recursion-detection@3.398.0: resolution: {integrity: sha512-7QpOqPQAZNXDXv6vsRex4R8dLniL0E/80OPK4PPFsrCh9btEyhN9Begh4i1T+5lL28hmYkztLOkTQ2N5J3hgRQ==} @@ -1446,19 +1356,6 @@ packages: '@smithy/protocol-http': 2.0.5 '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true - - /@aws-sdk/middleware-retry@3.310.0: - resolution: {integrity: sha512-oTPsRy2W4s+dfxbJPW7Km+hHtv/OMsNsVfThAq8DDYKC13qlr1aAyOqGLD+dpBy2aKe7ss517Sy2HcHtHqm7/g==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/service-error-classification': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/util-middleware': 3.310.0 - '@aws-sdk/util-retry': 3.310.0 - tslib: 2.6.2 - uuid: 8.3.2 /@aws-sdk/middleware-retry@3.374.0: resolution: {integrity: sha512-ZnT84qnT+Zmelv7y6hAqgAEaZgpGlrvf/+rchNWT0oG4duxI5bLWcRi9U88Jz7G8JgNQcGKJqPfC6oogCd7p8w==} @@ -1470,33 +1367,27 @@ packages: uuid: 8.3.2 dev: true - /@aws-sdk/middleware-sdk-s3@3.310.0: - resolution: {integrity: sha512-QK9x9g2ksg0hOjjYgqddeFcn5ctUEGdxJVu4OumPXceulefMcSO2jyH2qTybYSA93nqNQFdFmg5wQfvIRUWFCQ==} + /@aws-sdk/middleware-sdk-s3@3.398.0: + resolution: {integrity: sha512-yweSMc/TyiFtqc52hFMKQJvTm3i1KCoW5mB3o/Sla6zsHBh+nS6TTaBmo+2kcDIR7AKODwW+FLCTHWiazb7J3Q==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.398.0 '@aws-sdk/util-arn-parser': 3.310.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/types': 2.2.2 tslib: 2.6.2 - /@aws-sdk/middleware-sdk-sqs@3.310.0: - resolution: {integrity: sha512-p0TCoU/toRZxEAVdRZbtNVmkP36JCSoHMk1qbyPBycM3DL+kCNCsC1gSx5cbC0M6/U/zwUS783UPO0OwvyqimA==} + /@aws-sdk/middleware-sdk-sqs@3.398.0: + resolution: {integrity: sha512-O4MuAP14DuGRGFDIX7lWnR30Hx45SWx8p5vhERRMzC8Xjp3UDcLoJecFSv0/yn7KgSCho1Y61tFeyLic94+jzA==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.310.0 - '@aws-sdk/util-hex-encoding': 3.310.0 - '@aws-sdk/util-utf8': 3.310.0 + '@aws-sdk/types': 3.398.0 + '@smithy/types': 2.2.2 + '@smithy/util-hex-encoding': 2.0.0 + '@smithy/util-utf8': 2.0.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-sdk-sts@3.310.0: - resolution: {integrity: sha512-+5PFwlYNLvLLIfw0ASAoWV/iIF8Zv6R6QGtyP0CclhRSvNjgbQDVnV0g95MC5qvh+GB/Yjlkt8qAjLSPjHfsrQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/middleware-signing': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - /@aws-sdk/middleware-sdk-sts@3.398.0: resolution: {integrity: sha512-+JH76XHEgfVihkY+GurohOQ5Z83zVN1nYcQzwCFnCDTh4dG4KwhnZKG+WPw6XJECocY0R+H0ivofeALHvVWJtQ==} engines: {node: '>=14.0.0'} @@ -1505,25 +1396,6 @@ packages: '@aws-sdk/types': 3.398.0 '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true - - /@aws-sdk/middleware-serde@3.310.0: - resolution: {integrity: sha512-RNeeTVWSLTaentUeCgQKZhAl+C6hxtwD78cQWS10UymWpQFwbaxztzKUu4UQS5xA2j6PxwPRRUjqa4jcFjfLsg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/middleware-signing@3.310.0: - resolution: {integrity: sha512-f9mKq+XMdW207Af3hKjdTnpNhdtwqWuvFs/ZyXoOkp/g1MY1O6L23Jy6i52m29LxbT4AuNRG1oKODfXM0vYVjQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/property-provider': 3.310.0 - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/signature-v4': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/util-middleware': 3.310.0 - tslib: 2.6.2 /@aws-sdk/middleware-signing@3.398.0: resolution: {integrity: sha512-O0KqXAix1TcvZBFt1qoFkHMUNJOSgjJTYS7lFTRKSwgsD27bdW2TM2r9R8DAccWFt5Amjkdt+eOwQMIXPGTm8w==} @@ -1534,100 +1406,25 @@ packages: '@smithy/protocol-http': 2.0.5 '@smithy/signature-v4': 2.0.5 '@smithy/types': 2.2.2 - '@smithy/util-middleware': 2.0.0 - tslib: 2.6.2 - dev: true - - /@aws-sdk/middleware-ssec@3.310.0: - resolution: {integrity: sha512-CnEwNKVpd5bXnrCKPaePF8mWTA9ET21OMBb54y9b0fd8K02zoOcdBz4DWfh1SjFD4HkgCdja4egd8l2ivyvqmw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/middleware-stack@3.310.0: - resolution: {integrity: sha512-010O1PD+UAcZVKRvqEusE1KJqN96wwrf6QsqbRM0ywsKQ21NDweaHvEDlds2VHpgmofxkRLRu/IDrlPkKRQrRg==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - - /@aws-sdk/middleware-user-agent@3.310.0: - resolution: {integrity: sha512-x3IOwSwSbwKidlxRk3CNVHVUb06SRuaELxggCaR++QVI8NU6qD/l4VHXKVRvbTHiC/cYxXE/GaBDgQVpDR7V/g==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/util-endpoints': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/middleware-user-agent@3.398.0: - resolution: {integrity: sha512-nF1jg0L+18b5HvTcYzwyFgfZQQMELJINFqI0mi4yRKaX7T5a3aGp5RVLGGju/6tAGTuFbfBoEhkhU3kkxexPYQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.398.0 - '@aws-sdk/util-endpoints': 3.398.0 - '@smithy/protocol-http': 2.0.5 - '@smithy/types': 2.2.2 - tslib: 2.6.2 - dev: true - - /@aws-sdk/node-config-provider@3.310.0: - resolution: {integrity: sha512-T/Pp6htc6hq/Cq+MLNDSyiwWCMVF6GqbBbXKVlO5L8rdHx4sq9xPdoPveZhGWrxvkanjA6eCwUp6E0riBOSVng==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/property-provider': 3.310.0 - '@aws-sdk/shared-ini-file-loader': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/node-http-handler@3.310.0: - resolution: {integrity: sha512-irv9mbcM9xC2xYjArQF5SYmHBMu4ciMWtGsoHII1nRuFOl9FoT4ffTvEPuLlfC6pznzvKt9zvnm6xXj7gDChKg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/abort-controller': 3.310.0 - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/querystring-builder': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/property-provider@3.310.0: - resolution: {integrity: sha512-3lxDb0akV6BBzmFe4nLPaoliQbAifyWJhuvuDOu7e8NzouvpQXs0275w9LePhhcgjKAEVXUIse05ZW2DLbxo/g==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/protocol-http@3.310.0: - resolution: {integrity: sha512-fgZ1aw/irQtnrsR58pS8ThKOWo57Py3xX6giRvwSgZDEcxHfVzuQjy9yPuV++v04fdmdtgpbGf8WfvAAJ11yXQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/querystring-builder@3.310.0: - resolution: {integrity: sha512-ZHH8GV/80+pWGo7DzsvwvXR5xVxUHXUvPJPFAkhr6nCf78igdoF8gR10ScFoEKbtEapoNTaZlKHPXxpD8aPG7A==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.310.0 - '@aws-sdk/util-uri-escape': 3.310.0 + '@smithy/util-middleware': 2.0.0 tslib: 2.6.2 - /@aws-sdk/querystring-parser@3.310.0: - resolution: {integrity: sha512-YkIznoP6lsiIUHinx++/lbb3tlMURGGqMpo0Pnn32zYzGrJXA6eC3D0as2EcMjo55onTfuLcIiX4qzXes2MYOA==} + /@aws-sdk/middleware-ssec@3.398.0: + resolution: {integrity: sha512-QtKr/hPcRugKSIZAH4+7hbUfdW7Lg+OQvD25nJn7ic1JHRZ+eDctEFxdsmnt68lE6aZxOcHCWHAW6/umcA93Dw==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.398.0 + '@smithy/types': 2.2.2 tslib: 2.6.2 - /@aws-sdk/service-error-classification@3.310.0: - resolution: {integrity: sha512-PuyC7k3qfIKeH2LCnDwbttMOKq3qAx4buvg0yfnJtQOz6t1AR8gsnAq0CjKXXyfkXwNKWTqCpE6lVNUIkXgsMw==} - engines: {node: '>=14.0.0'} - - /@aws-sdk/shared-ini-file-loader@3.310.0: - resolution: {integrity: sha512-N0q9pG0xSjQwc690YQND5bofm+4nfUviQ/Ppgan2kU6aU0WUq8KwgHJBto/YEEI+VlrME30jZJnxtOvcZJc2XA==} + /@aws-sdk/middleware-user-agent@3.398.0: + resolution: {integrity: sha512-nF1jg0L+18b5HvTcYzwyFgfZQQMELJINFqI0mi4yRKaX7T5a3aGp5RVLGGju/6tAGTuFbfBoEhkhU3kkxexPYQ==} engines: {node: '>=14.0.0'} dependencies: - '@aws-sdk/types': 3.310.0 + '@aws-sdk/types': 3.398.0 + '@aws-sdk/util-endpoints': 3.398.0 + '@smithy/protocol-http': 2.0.5 + '@smithy/types': 2.2.2 tslib: 2.6.2 /@aws-sdk/signature-v4-crt@3.398.0: @@ -1645,21 +1442,6 @@ packages: - supports-color - utf-8-validate - /@aws-sdk/signature-v4-multi-region@3.310.0(@aws-sdk/signature-v4-crt@3.398.0): - resolution: {integrity: sha512-q8W+RIomTS/q85Ntgks/CoDElwqkC9+4OCicee5YznNHjQ4gtNWhUkYIyIRWRmXa/qx/AUreW9DM8FAecCOdng==} - engines: {node: '>=14.0.0'} - peerDependencies: - '@aws-sdk/signature-v4-crt': ^3.118.0 - peerDependenciesMeta: - '@aws-sdk/signature-v4-crt': - optional: true - dependencies: - '@aws-sdk/protocol-http': 3.310.0 - '@aws-sdk/signature-v4': 3.310.0 - '@aws-sdk/signature-v4-crt': 3.398.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - /@aws-sdk/signature-v4-multi-region@3.398.0(@aws-sdk/signature-v4-crt@3.398.0): resolution: {integrity: sha512-8fTqTxRDWE03T7ClaWlCfbwuSae//01XMNVy2a9g5QgaelQh7ZZyU3ZIJiV8gIj8v6ZM0NGn9Bz1liI/vmNmcw==} engines: {node: '>=14.0.0'} @@ -1675,27 +1457,6 @@ packages: '@smithy/signature-v4': 2.0.5 '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true - - /@aws-sdk/signature-v4@3.310.0: - resolution: {integrity: sha512-1M60P1ZBNAjCFv9sYW29OF6okktaeibWyW3lMXqzoHF70lHBZh+838iUchznXUA5FLabfn4jBFWMRxlAXJUY2Q==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/is-array-buffer': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/util-hex-encoding': 3.310.0 - '@aws-sdk/util-middleware': 3.310.0 - '@aws-sdk/util-uri-escape': 3.310.0 - '@aws-sdk/util-utf8': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/smithy-client@3.310.0: - resolution: {integrity: sha512-UHMFvhoB2RLzsTb0mQe1ofvBUg/+/JEu1uptavxf/hEpEKZnRAaHH5FNkTG+mbFd/olay/QFjqNcMD6t8LcsNQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/middleware-stack': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 /@aws-sdk/smithy-client@3.374.0: resolution: {integrity: sha512-YQBdO/Nv5EXBg/qfMF4GgYYLNN3Y/06MyuVBYILC1TKAnMoLy2FV0VOYyediagepAcWPdJqyUq4MCNNBy0CPRg==} @@ -1706,18 +1467,6 @@ packages: tslib: 2.6.2 dev: true - /@aws-sdk/token-providers@3.310.0: - resolution: {integrity: sha512-G1JvB+2v8k900VJFkKVQXgLGF50ShOEIPxfK1gSQLkSU85vPwGIAANs1KvnlW08FsNbWp3+sKca4kfYKsooXMw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/client-sso-oidc': 3.310.0 - '@aws-sdk/property-provider': 3.310.0 - '@aws-sdk/shared-ini-file-loader': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - /@aws-sdk/token-providers@3.398.0: resolution: {integrity: sha512-nrYgjzavGCKJL/48Vt0EL+OlIc5UZLfNGpgyUW9cv3XZwl+kXV0QB+HH0rHZZLfpbBgZ2RBIJR9uD5ieu/6hpQ==} engines: {node: '>=14.0.0'} @@ -1759,13 +1508,6 @@ packages: tslib: 2.6.2 transitivePeerDependencies: - aws-crt - dev: true - - /@aws-sdk/types@3.310.0: - resolution: {integrity: sha512-j8eamQJ7YcIhw7fneUfs8LYl3t01k4uHi4ZDmNRgtbmbmTTG3FZc2MotStZnp3nZB6vLiPF1o5aoJxWVvkzS6A==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 /@aws-sdk/types@3.398.0: resolution: {integrity: sha512-r44fkS+vsEgKCuEuTV+TIk0t0m5ZlXHNjSDYEUvzLStbbfUFiNus/YG4UCa0wOk9R7VuQI67badsvvPeVPCGDQ==} @@ -1773,14 +1515,6 @@ packages: dependencies: '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true - - /@aws-sdk/url-parser@3.310.0: - resolution: {integrity: sha512-mCLnCaSB9rQvAgx33u0DujLvr4d5yEm/W5r789GblwwQnlNXedVu50QRizMLTpltYWyAUoXjJgQnJHmJMaKXhw==} - dependencies: - '@aws-sdk/querystring-parser': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 /@aws-sdk/util-arn-parser@3.310.0: resolution: {integrity: sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA==} @@ -1788,77 +1522,12 @@ packages: dependencies: tslib: 2.6.2 - /@aws-sdk/util-base64@3.310.0: - resolution: {integrity: sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/util-buffer-from': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/util-body-length-browser@3.310.0: - resolution: {integrity: sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g==} - dependencies: - tslib: 2.6.2 - - /@aws-sdk/util-body-length-node@3.310.0: - resolution: {integrity: sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - - /@aws-sdk/util-buffer-from@3.310.0: - resolution: {integrity: sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/is-array-buffer': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/util-config-provider@3.310.0: - resolution: {integrity: sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - - /@aws-sdk/util-defaults-mode-browser@3.310.0: - resolution: {integrity: sha512-Mr2AoQsjAYNM5oAS2YJlYJqhiCvkFV/hu48slOZgbY4G7ueW4cM0DPkR16wqjcRCGqZ4JmAZB8Q5R0DMrLjhOQ==} - engines: {node: '>= 10.0.0'} - dependencies: - '@aws-sdk/property-provider': 3.310.0 - '@aws-sdk/types': 3.310.0 - bowser: 2.11.0 - tslib: 2.6.2 - - /@aws-sdk/util-defaults-mode-node@3.310.0: - resolution: {integrity: sha512-JyBlvhQGR8w8NpFRZZXRVTDesafFKTu/gTWjcoxP7twa+fYHSIgPPFGnlcJ/iHaucjamSaWi5EQ+YQmnSZ8yHA==} - engines: {node: '>= 10.0.0'} - dependencies: - '@aws-sdk/config-resolver': 3.310.0 - '@aws-sdk/credential-provider-imds': 3.310.0 - '@aws-sdk/node-config-provider': 3.310.0 - '@aws-sdk/property-provider': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/util-endpoints@3.310.0: - resolution: {integrity: sha512-zG+/d/O5KPmAaeOMPd6bW1abifdT0H03f42keLjYEoRZzYtHPC5DuPE0UayiWGckI6BCDgy0sRKXCYS49UNFaQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - /@aws-sdk/util-endpoints@3.398.0: resolution: {integrity: sha512-Fy0gLYAei/Rd6BrXG4baspCnWTUSd0NdokU1pZh4KlfEAEN1i8SPPgfiO5hLk7+2inqtCmqxVJlfqbMVe9k4bw==} engines: {node: '>=14.0.0'} dependencies: '@aws-sdk/types': 3.398.0 tslib: 2.6.2 - dev: true - - /@aws-sdk/util-hex-encoding@3.310.0: - resolution: {integrity: sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 /@aws-sdk/util-locate-window@3.310.0: resolution: {integrity: sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==} @@ -1866,51 +1535,6 @@ packages: dependencies: tslib: 2.6.2 - /@aws-sdk/util-middleware@3.310.0: - resolution: {integrity: sha512-FTSUKL/eRb9X6uEZClrTe27QFXUNNp7fxYrPndZwk1hlaOP5ix+MIHBcI7pIiiY/JPfOUmPyZOu+HetlFXjWog==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - - /@aws-sdk/util-retry@3.310.0: - resolution: {integrity: sha512-FwWGhCBLfoivTMUHu1LIn4NjrN9JLJ/aX5aZmbcPIOhZVFJj638j0qDgZXyfvVqBuBZh7M8kGq0Oahy3dp69OA==} - engines: {node: '>= 14.0.0'} - dependencies: - '@aws-sdk/service-error-classification': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/util-stream-browser@3.310.0: - resolution: {integrity: sha512-bysXZHwFwvbqOTCScCdCnoLk1K3GCo0HRIYEZuL7O7MHrQmfaYRXcaft/p22+GUv9VeFXS/eJJZ5r4u32az94w==} - dependencies: - '@aws-sdk/fetch-http-handler': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/util-base64': 3.310.0 - '@aws-sdk/util-hex-encoding': 3.310.0 - '@aws-sdk/util-utf8': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/util-stream-node@3.310.0: - resolution: {integrity: sha512-hueAXFK0GVvnfYFgqbF7587xZfMZff5jlIFZOHqx7XVU7bl7qrRUCnphHk8H6yZ7RoQbDPcfmHJgtEoAJg1T1Q==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/node-http-handler': 3.310.0 - '@aws-sdk/types': 3.310.0 - '@aws-sdk/util-buffer-from': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/util-uri-escape@3.310.0: - resolution: {integrity: sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - - /@aws-sdk/util-user-agent-browser@3.310.0: - resolution: {integrity: sha512-yU/4QnHHuQ5z3vsUqMQVfYLbZGYwpYblPiuZx4Zo9+x0PBkNjYMqctdDcrpoH9Z2xZiDN16AmQGK1tix117ZKw==} - dependencies: - '@aws-sdk/types': 3.310.0 - bowser: 2.11.0 - tslib: 2.6.2 - /@aws-sdk/util-user-agent-browser@3.398.0: resolution: {integrity: sha512-A3Tzx1tkDHlBT+IgxmsMCHbV8LM7SwwCozq2ZjJRx0nqw3MCrrcxQFXldHeX/gdUMO+0Oocb7HGSnVODTq+0EA==} dependencies: @@ -1918,20 +1542,6 @@ packages: '@smithy/types': 2.2.2 bowser: 2.11.0 tslib: 2.6.2 - dev: true - - /@aws-sdk/util-user-agent-node@3.310.0: - resolution: {integrity: sha512-Ra3pEl+Gn2BpeE7KiDGpi4zj7WJXZA5GXnGo3mjbi9+Y3zrbuhJAbdZO3mO/o7xDgMC6ph4xCTbaSGzU6b6EDg==} - engines: {node: '>=14.0.0'} - peerDependencies: - aws-crt: '>=1.0.0' - peerDependenciesMeta: - aws-crt: - optional: true - dependencies: - '@aws-sdk/node-config-provider': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 /@aws-sdk/util-user-agent-node@3.398.0: resolution: {integrity: sha512-RTVQofdj961ej4//fEkppFf4KXqKGMTCqJYghx3G0C/MYXbg7MGl7LjfNGtJcboRE8pfHHQ/TUWBDA7RIAPPlQ==} @@ -1946,28 +1556,12 @@ packages: '@smithy/node-config-provider': 2.0.5 '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true /@aws-sdk/util-utf8-browser@3.259.0: resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} dependencies: tslib: 2.6.2 - /@aws-sdk/util-utf8@3.310.0: - resolution: {integrity: sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/util-buffer-from': 3.310.0 - tslib: 2.6.2 - - /@aws-sdk/util-waiter@3.310.0: - resolution: {integrity: sha512-AV5j3guH/Y4REu+Qh3eXQU9igljHuU4XjX2sADAgf54C0kkhcCCkkiuzk3IsX089nyJCqIcj5idbjdvpnH88Vw==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/abort-controller': 3.310.0 - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 - /@aws-sdk/xml-builder@3.310.0: resolution: {integrity: sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw==} engines: {node: '>=14.0.0'} @@ -2126,11 +1720,11 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/runtime@7.21.5: - resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==} + /@babel/runtime@7.22.11: + resolution: {integrity: sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.13.11 + regenerator-runtime: 0.14.0 /@babel/template@7.22.5: resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} @@ -2169,11 +1763,15 @@ packages: resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} dev: true - /@changesets/apply-release-plan@6.1.3: - resolution: {integrity: sha512-ECDNeoc3nfeAe1jqJb5aFQX7CqzQhD2klXRez2JDb/aVpGUbX673HgKrnrgJRuQR/9f2TtLoYIzrGB9qwD77mg==} + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + dev: true + + /@changesets/apply-release-plan@6.1.4: + resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==} dependencies: - '@babel/runtime': 7.21.5 - '@changesets/config': 2.3.0 + '@babel/runtime': 7.22.11 + '@changesets/config': 2.3.1 '@changesets/get-version-range-type': 0.3.2 '@changesets/git': 2.0.0 '@changesets/types': 5.2.1 @@ -2182,20 +1780,20 @@ packages: fs-extra: 7.0.1 lodash.startcase: 4.4.0 outdent: 0.5.0 - prettier: 2.8.4 + prettier: 2.8.8 resolve-from: 5.0.0 - semver: 5.7.1 + semver: 7.5.4 dev: true - /@changesets/assemble-release-plan@5.2.3: - resolution: {integrity: sha512-g7EVZCmnWz3zMBAdrcKhid4hkHT+Ft1n0mLussFMcB1dE2zCuwcvGoy9ec3yOgPGF4hoMtgHaMIk3T3TBdvU9g==} + /@changesets/assemble-release-plan@5.2.4: + resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==} dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.11 '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.5 + '@changesets/get-dependents-graph': 1.3.6 '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 - semver: 5.7.1 + semver: 7.5.4 dev: true /@changesets/changelog-git@0.1.14: @@ -2204,8 +1802,8 @@ packages: '@changesets/types': 5.2.1 dev: true - /@changesets/changelog-github@0.4.4: - resolution: {integrity: sha512-htSILqCkyYtTB5/LoVKwx7GCJQGxAiBcYbfUKWiz/QoDARuM01owYtMXhV6/iytJZq/Dqqz3PjMZUNB4MphpbQ==} + /@changesets/changelog-github@0.4.8: + resolution: {integrity: sha512-jR1DHibkMAb5v/8ym77E4AMNWZKB5NPzw5a5Wtqm1JepAuIF+hrKp2u04NKM14oBZhHglkCfrla9uq8ORnK/dw==} dependencies: '@changesets/get-github-info': 0.5.2 '@changesets/types': 5.2.1 @@ -2214,29 +1812,30 @@ packages: - encoding dev: true - /@changesets/cli@2.22.0: - resolution: {integrity: sha512-4bA3YoBkd5cm5WUxmrR2N9WYE7EeQcM+R3bVYMUj2NvffkQVpU3ckAI+z8UICoojq+HRl2OEwtz+S5UBmYY4zw==} + /@changesets/cli@2.26.2: + resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==} hasBin: true dependencies: - '@babel/runtime': 7.21.5 - '@changesets/apply-release-plan': 6.1.3 - '@changesets/assemble-release-plan': 5.2.3 + '@babel/runtime': 7.22.11 + '@changesets/apply-release-plan': 6.1.4 + '@changesets/assemble-release-plan': 5.2.4 '@changesets/changelog-git': 0.1.14 - '@changesets/config': 2.3.0 + '@changesets/config': 2.3.1 '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.5 - '@changesets/get-release-plan': 3.0.16 - '@changesets/git': 1.5.0 + '@changesets/get-dependents-graph': 1.3.6 + '@changesets/get-release-plan': 3.0.17 + '@changesets/git': 2.0.0 '@changesets/logger': 0.0.5 '@changesets/pre': 1.0.14 '@changesets/read': 0.5.9 '@changesets/types': 5.2.1 - '@changesets/write': 0.1.9 + '@changesets/write': 0.2.3 '@manypkg/get-packages': 1.1.3 '@types/is-ci': 3.0.0 - '@types/semver': 6.2.3 + '@types/semver': 7.5.1 + ansi-colors: 4.1.3 chalk: 2.4.2 - enquirer: 2.3.6 + enquirer: 2.4.1 external-editor: 3.1.0 fs-extra: 7.0.1 human-id: 1.0.2 @@ -2246,17 +1845,17 @@ packages: p-limit: 2.3.0 preferred-pm: 3.0.3 resolve-from: 5.0.0 - semver: 5.7.1 + semver: 7.5.4 spawndamnit: 2.0.0 term-size: 2.2.1 - tty-table: 2.8.13 + tty-table: 4.2.1 dev: true - /@changesets/config@2.3.0: - resolution: {integrity: sha512-EgP/px6mhCx8QeaMAvWtRrgyxW08k/Bx2tpGT+M84jEdX37v3VKfh4Cz1BkwrYKuMV2HZKeHOh8sHvja/HcXfQ==} + /@changesets/config@2.3.1: + resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==} dependencies: '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.5 + '@changesets/get-dependents-graph': 1.3.6 '@changesets/logger': 0.0.5 '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 @@ -2270,31 +1869,31 @@ packages: extendable-error: 0.1.7 dev: true - /@changesets/get-dependents-graph@1.3.5: - resolution: {integrity: sha512-w1eEvnWlbVDIY8mWXqWuYE9oKhvIaBhzqzo4ITSJY9hgoqQ3RoBqwlcAzg11qHxv/b8ReDWnMrpjpKrW6m1ZTA==} + /@changesets/get-dependents-graph@1.3.6: + resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==} dependencies: '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 chalk: 2.4.2 fs-extra: 7.0.1 - semver: 5.7.1 + semver: 7.5.4 dev: true /@changesets/get-github-info@0.5.2: resolution: {integrity: sha512-JppheLu7S114aEs157fOZDjFqUDpm7eHdq5E8SSR0gUBTEK0cNSHsrSR5a66xs0z3RWuo46QvA3vawp8BxDHvg==} dependencies: dataloader: 1.4.0 - node-fetch: 2.6.11 + node-fetch: 2.7.0 transitivePeerDependencies: - encoding dev: true - /@changesets/get-release-plan@3.0.16: - resolution: {integrity: sha512-OpP9QILpBp1bY2YNIKFzwigKh7Qe9KizRsZomzLe6pK8IUo8onkAAVUD8+JRKSr8R7d4+JRuQrfSSNlEwKyPYg==} + /@changesets/get-release-plan@3.0.17: + resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==} dependencies: - '@babel/runtime': 7.21.5 - '@changesets/assemble-release-plan': 5.2.3 - '@changesets/config': 2.3.0 + '@babel/runtime': 7.22.11 + '@changesets/assemble-release-plan': 5.2.4 + '@changesets/config': 2.3.1 '@changesets/pre': 1.0.14 '@changesets/read': 0.5.9 '@changesets/types': 5.2.1 @@ -2305,21 +1904,10 @@ packages: resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} dev: true - /@changesets/git@1.5.0: - resolution: {integrity: sha512-Xo8AT2G7rQJSwV87c8PwMm6BAc98BnufRMsML7m7Iw8Or18WFvFmxqG5aOL5PBvhgq9KrKvaeIBNIymracSuHg==} - dependencies: - '@babel/runtime': 7.21.5 - '@changesets/errors': 0.1.4 - '@changesets/types': 5.2.1 - '@manypkg/get-packages': 1.1.3 - is-subdir: 1.2.0 - spawndamnit: 2.0.0 - dev: true - /@changesets/git@2.0.0: resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.11 '@changesets/errors': 0.1.4 '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 @@ -2344,7 +1932,7 @@ packages: /@changesets/pre@1.0.14: resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.11 '@changesets/errors': 0.1.4 '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 @@ -2354,7 +1942,7 @@ packages: /@changesets/read@0.5.9: resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.11 '@changesets/git': 2.0.0 '@changesets/logger': 0.0.5 '@changesets/parse': 0.3.16 @@ -2372,14 +1960,21 @@ packages: resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} dev: true - /@changesets/write@0.1.9: - resolution: {integrity: sha512-E90ZrsrfJVOOQaP3Mm5Xd7uDwBAqq3z5paVEavTHKA8wxi7NAL8CmjgbGxSFuiP7ubnJA2BuHlrdE4z86voGOg==} + /@changesets/write@0.2.3: + resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.11 '@changesets/types': 5.2.1 fs-extra: 7.0.1 human-id: 1.0.2 - prettier: 1.19.1 + prettier: 2.8.8 + dev: true + + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/trace-mapping': 0.3.9 dev: true /@envelop/core@3.0.6: @@ -2408,161 +2003,305 @@ packages: tslib: 2.6.2 dev: true - /@esbuild/android-arm64@0.16.13: - resolution: {integrity: sha512-r4xetsd1ez1NF9/9R2f9Q6AlxqiZLwUqo7ICOcvEVwopVkXUcspIjEbJk0EVTgT6Cp5+ymzGPT6YNV0ievx4yA==} + /@esbuild/android-arm64@0.18.13: + resolution: {integrity: sha512-j7NhycJUoUAG5kAzGf4fPWfd17N6SM3o1X6MlXVqfHvs2buFraCJzos9vbeWjLxOyBKHyPOnuCuipbhvbYtTAg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.15.18: + resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/android-arm@0.18.13: + resolution: {integrity: sha512-KwqFhxRFMKZINHzCqf8eKxE0XqWlAVPRxwy6rc7CbVFxzUWB2sA/s3hbMZeemPdhN3fKBkqOaFhTbS8xJXYIWQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.18.13: + resolution: {integrity: sha512-M2eZkRxR6WnWfVELHmv6MUoHbOqnzoTVSIxgtsyhm/NsgmL+uTmag/VVzdXvmahak1I6sOb1K/2movco5ikDJg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.18.13: + resolution: {integrity: sha512-f5goG30YgR1GU+fxtaBRdSW3SBG9pZW834Mmhxa6terzcboz7P2R0k4lDxlkP7NYRIIdBbWp+VgwQbmMH4yV7w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.18.13: + resolution: {integrity: sha512-RIrxoKH5Eo+yE5BtaAIMZaiKutPhZjw+j0OCh8WdvKEKJQteacq0myZvBDLU+hOzQOZWJeDnuQ2xgSScKf1Ovw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.18.13: + resolution: {integrity: sha512-AfRPhHWmj9jGyLgW/2FkYERKmYR+IjYxf2rtSLmhOrPGFh0KCETFzSjx/JX/HJnvIqHt/DRQD/KAaVsUKoI3Xg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.18.13: + resolution: {integrity: sha512-pGzWWZJBInhIgdEwzn8VHUBang8UvFKsvjDkeJ2oyY5gZtAM6BaxK0QLCuZY+qoj/nx/lIaItH425rm/hloETA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.18.13: + resolution: {integrity: sha512-hCzZbVJEHV7QM77fHPv2qgBcWxgglGFGCxk6KfQx6PsVIdi1u09X7IvgE9QKqm38OpkzaAkPnnPqwRsltvLkIQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} engines: {node: '>=12'} cpu: [arm64] - os: [android] + os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/android-arm@0.15.18: - resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} + /@esbuild/linux-arm@0.18.13: + resolution: {integrity: sha512-4iMxLRMCxGyk7lEvkkvrxw4aJeC93YIIrfbBlUJ062kilUUnAiMb81eEkVvCVoh3ON283ans7+OQkuy1uHW+Hw==} engines: {node: '>=12'} cpu: [arm] - os: [android] + os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /@esbuild/android-arm@0.16.13: - resolution: {integrity: sha512-JmtqThupn9Yf+FzANE+GG73ASUkssnPwOsndUElhp23685QzRK+MO1UompOlBaXV9D5FTuYcPnw7p4mCq2YbZQ==} + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} engines: {node: '>=12'} cpu: [arm] - os: [android] + os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/android-x64@0.16.13: - resolution: {integrity: sha512-hKt1bFht/Vtp0xJ0ZVzFMnPy1y1ycmM3KNnp3zsyZfQmw7nhs2WLO4vxdR5YG+6RsHKCb2zbZ3VwlC0Tij0qyA==} + /@esbuild/linux-ia32@0.18.13: + resolution: {integrity: sha512-I3OKGbynl3AAIO6onXNrup/ttToE6Rv2XYfFgLK/wnr2J+1g+7k4asLrE+n7VMhaqX+BUnyWkCu27rl+62Adug==} engines: {node: '>=12'} - cpu: [x64] - os: [android] + cpu: [ia32] + os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/darwin-arm64@0.16.13: - resolution: {integrity: sha512-ogrVuNi2URocrr3Ps20f075EMm9V7IeenOi9FRj4qdbT6mQlwLuP4l90PW2iBrKERx0oRkcZprEUNsz/3xd7ww==} + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] + cpu: [ia32] + os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/darwin-x64@0.16.13: - resolution: {integrity: sha512-Agajik9SBGiKD7FPXE+ExW6x3MgA/dUdpZnXa9y1tyfE4lKQx+eQiknSdrBnWPeqa9wL0AOvkhghmYhpVkyqkA==} + /@esbuild/linux-loong64@0.15.18: + resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} engines: {node: '>=12'} - cpu: [x64] - os: [darwin] + cpu: [loong64] + os: [linux] requiresBuild: true - dev: true + dev: false optional: true - /@esbuild/freebsd-arm64@0.16.13: - resolution: {integrity: sha512-KxMO3/XihBcHM+xQUM6nQZO1SgQuOsd1DCnKF1a4SIf/i5VD45vrqN3k8ePgFrEbMi7m5JeGmvNqwJXinF0a4Q==} + /@esbuild/linux-loong64@0.18.13: + resolution: {integrity: sha512-8pcKDApAsKc6WW51ZEVidSGwGbebYw2qKnO1VyD8xd6JN0RN6EUXfhXmDk9Vc4/U3Y4AoFTexQewQDJGsBXBpg==} engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] + cpu: [loong64] + os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/freebsd-x64@0.16.13: - resolution: {integrity: sha512-Ez15oqV1vwvZ30cVLeBW14BsWq/fdWNQGMOxxqaSJVQVLqHhvgfQ7gxGDiN9tpJdeQhqJO+Q0r02/Tce5+USNg==} + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] + cpu: [loong64] + os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-arm64@0.16.13: - resolution: {integrity: sha512-qi5n7KwcGViyJeZeQnu8fB6dC3Mlm5PGaqSv2HhQDDx/MPvVfQGNMcv7zcBL4qk3FkuWhGVwXkjQ76x7R0PWlA==} + /@esbuild/linux-mips64el@0.18.13: + resolution: {integrity: sha512-6GU+J1PLiVqWx8yoCK4Z0GnfKyCGIH5L2KQipxOtbNPBs+qNDcMJr9euxnyJ6FkRPyMwaSkjejzPSISD9hb+gg==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [mips64el] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-arm@0.16.13: - resolution: {integrity: sha512-18dLd2L3mda+iFj6sswyBMSh2UwniamD9M4DwPv8VM+9apRFlQ5IGKxBdumnTuOI4NvwwAernmUseWhYQ9k+rg==} + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} - cpu: [arm] + cpu: [mips64el] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-ia32@0.16.13: - resolution: {integrity: sha512-2489Xad9sr+6GD7nB913fUqpCsSwVwgskkQTq4Or2mZntSPYPebyJm8l1YruHo7oqYMTGV6RiwGE4gRo3H+EPQ==} + /@esbuild/linux-ppc64@0.18.13: + resolution: {integrity: sha512-pfn/OGZ8tyR8YCV7MlLl5hAit2cmS+j/ZZg9DdH0uxdCoJpV7+5DbuXrR+es4ayRVKIcfS9TTMCs60vqQDmh+w==} engines: {node: '>=12'} - cpu: [ia32] + cpu: [ppc64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-loong64@0.15.18: - resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} - cpu: [loong64] + cpu: [ppc64] os: [linux] requiresBuild: true - dev: false + dev: true optional: true - /@esbuild/linux-loong64@0.16.13: - resolution: {integrity: sha512-x8KplRu9Y43Px8I9YS+sPBwQ+fw44Mvp2BPVADopKDWz+h3fcj1BvRU58kxb89WObmwKX9sWdtYzepL4Fmx03A==} + /@esbuild/linux-riscv64@0.18.13: + resolution: {integrity: sha512-aIbhU3LPg0lOSCfVeGHbmGYIqOtW6+yzO+Nfv57YblEK01oj0mFMtvDJlOaeAZ6z0FZ9D13oahi5aIl9JFphGg==} engines: {node: '>=12'} - cpu: [loong64] + cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-mips64el@0.16.13: - resolution: {integrity: sha512-qhhdWph9FLwD9rVVC/nUf7k2U4NZIA6/mGx0B7+O6PFV0GjmPA2E3zDQ4NUjq9P26E0DeAZy9akH9dYcUBRU7A==} + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} - cpu: [mips64el] + cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-ppc64@0.16.13: - resolution: {integrity: sha512-cVWAPKsrRVxI1jCeJHnYSbE3BrEU+pZTZK2gfao9HRxuc+3m4+RLfs3EVEpGLmMKEcWfVCB9wZ3yNxnknutGKQ==} + /@esbuild/linux-s390x@0.18.13: + resolution: {integrity: sha512-Pct1QwF2sp+5LVi4Iu5Y+6JsGaV2Z2vm4O9Dd7XZ5tKYxEHjFtb140fiMcl5HM1iuv6xXO8O1Vrb1iJxHlv8UA==} engines: {node: '>=12'} - cpu: [ppc64] + cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-riscv64@0.16.13: - resolution: {integrity: sha512-Agb7dbRyZWnmPn5Vvf0eyqaEUqSsaIUwwyInu2EoFTaIDRp093QU2M5alUyOooMLkRbD1WvqQNwx08Z/g+SAcQ==} + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} - cpu: [riscv64] + cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-s390x@0.16.13: - resolution: {integrity: sha512-AqRBIrc/+kl08ahliNG+EyU+j41wIzQfwBTKpi80cCDiYvYFPuXjvzZsD9muiu58Isj0RVni9VgC4xK/AnSW4g==} + /@esbuild/linux-x64@0.18.13: + resolution: {integrity: sha512-zTrIP0KzYP7O0+3ZnmzvUKgGtUvf4+piY8PIO3V8/GfmVd3ZyHJGz7Ht0np3P1wz+I8qJ4rjwJKqqEAbIEPngA==} engines: {node: '>=12'} - cpu: [s390x] + cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-x64@0.16.13: - resolution: {integrity: sha512-S4wn2BimuhPcoArRtVrdHUKIymCCZcYAXQE47kUiX4yrUrEX2/ifn5eKNbZ5c1jJKUlh1gC2ESIN+iw3wQax3g==} + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -2570,8 +2309,17 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.16.13: - resolution: {integrity: sha512-2c8JWgfUMlQHTdaR5X3xNMwqOyad8kgeCupuVkdm3QkUOzGREjlTETQsK6oHifocYzDCo9FeKcUwsK356SdR+g==} + /@esbuild/netbsd-x64@0.18.13: + resolution: {integrity: sha512-I6zs10TZeaHDYoGxENuksxE1sxqZpCp+agYeW039yqFwh3MgVvdmXL5NMveImOC6AtpLvE4xG5ujVic4NWFIDQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -2579,8 +2327,17 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.16.13: - resolution: {integrity: sha512-Bwh+PmKD/LK+xBjqIpnYnKYj0fIyQJ0YpRxsn0F+WfzvQ2OA+GKDlf8AHosiCns26Q4Dje388jQVwfOBZ1GaFw==} + /@esbuild/openbsd-x64@0.18.13: + resolution: {integrity: sha512-W5C5nczhrt1y1xPG5bV+0M12p2vetOGlvs43LH8SopQ3z2AseIROu09VgRqydx5qFN7y9qCbpgHLx0kb0TcW7g==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -2588,8 +2345,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.16.13: - resolution: {integrity: sha512-8wwk6f9XGnhrF94/DBdFM4Xm1JeCyGTCj67r516VS9yvBVQf3Rar54L+XPVDs/oZOokwH+XsktrgkuTMAmjntg==} + /@esbuild/sunos-x64@0.18.13: + resolution: {integrity: sha512-X/xzuw4Hzpo/yq3YsfBbIsipNgmsm8mE/QeWbdGdTTeZ77fjxI2K0KP3AlhZ6gU3zKTw1bKoZTuKLnqcJ537qw==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -2597,8 +2354,26 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.16.13: - resolution: {integrity: sha512-Jmwbp/5ArLCiRAHC33ODfcrlIcbP/exXkOEUVkADNJC4e/so2jm+i8IQFvVX/lA2GWvK3GdgcN0VFfp9YITAbg==} + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.18.13: + resolution: {integrity: sha512-4CGYdRQT/ILd+yLLE5i4VApMPfGE0RPc/wFQhlluDQCK09+b4JDbxzzjpgQqTPrdnP7r5KUtGVGZYclYiPuHrw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -2606,8 +2381,17 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.16.13: - resolution: {integrity: sha512-AX6WjntGjhJHzrPSVvjMD7grxt41koHfAOx6lxLorrpDwwIKKPaGDASPZgvFIZHTbwhOtILW6vAXxYPDsKpDJA==} + /@esbuild/win32-ia32@0.18.13: + resolution: {integrity: sha512-D+wKZaRhQI+MUGMH+DbEr4owC2D7XnF+uyGiZk38QbgzLcofFqIOwFs7ELmIeU45CQgfHNy9Q+LKW3cE8g37Kg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -2615,8 +2399,17 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.16.13: - resolution: {integrity: sha512-A+U4gM6OOkPS03UgVU08GTpAAAxPsP/8Z4FmneGo4TaVSD99bK9gVJXlqUEPMO/htFXEAht2O6pX4ErtLY5tVg==} + /@esbuild/win32-x64@0.18.13: + resolution: {integrity: sha512-iVl6lehAfJS+VmpF3exKpNQ8b0eucf5VWfzR8S7xFve64NBNz2jPUgx1X93/kfnkfgP737O+i1k54SVQS7uVZA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -2624,13 +2417,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.47.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.48.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: 8.48.0 eslint-visitor-keys: 3.4.3 dev: true @@ -2736,6 +2529,16 @@ packages: tslib: 2.6.2 dev: true + /@hapi/hoek@9.3.0: + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + dev: true + + /@hapi/topo@5.1.0: + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: true + /@httptoolkit/websocket-stream@6.0.1: resolution: {integrity: sha512-A0NOZI+Glp3Xgcz6Na7i7o09+/+xm2m0UCU8gdtM2nIv6/cjLmhMZMqehSpTlgbx9omtLmV8LVqOskPEyWnmZQ==} dependencies: @@ -2751,8 +2554,8 @@ packages: - bufferutil - utf-8-validate - /@humanwhocodes/config-array@0.11.10: - resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} + /@humanwhocodes/config-array@0.11.11: + resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -2771,6 +2574,37 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jest/expect-utils@29.6.4: + resolution: {integrity: sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.6.3 + dev: true + + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.27.8 + dev: true + + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 18.17.12 + '@types/yargs': 17.0.24 + chalk: 4.1.2 + dev: true + /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} @@ -2803,10 +2637,22 @@ packages: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@lukeed/ms@2.0.1: + resolution: {integrity: sha512-Xs/4RZltsAL7pkvaNStUQt7netTkyxrS0K+RILcVr3TRMS/ToOg4I6uNfhB9SlGsnWBym4U+EaXq0f0cEMNkHA==} + engines: {node: '>=8'} + dev: true + /@manypkg/find-root@1.1.0: resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.11 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 @@ -2815,7 +2661,7 @@ packages: /@manypkg/get-packages@1.1.3: resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.11 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -2825,7 +2671,6 @@ packages: /@next/env@13.4.12: resolution: {integrity: sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ==} - dev: false /@next/eslint-plugin-next@13.4.19: resolution: {integrity: sha512-N/O+zGb6wZQdwu6atMZHbR7T9Np5SUFUjZqCbj0sXm+MwQO35M8TazVB4otm87GkXYs2l6OPwARd3/PUWhZBVQ==} @@ -2833,13 +2678,16 @@ packages: glob: 7.1.7 dev: true + /@next/font@13.4.16: + resolution: {integrity: sha512-1UciFHgwieMfDygileymqeYPEmIeZWIfgrsa2POZlRW+yAsDt0qy0InfFAYvXhNgALTI6ix3JU2XhcuzonhQLA==} + dev: false + /@next/swc-darwin-arm64@13.4.12: resolution: {integrity: sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] requiresBuild: true - dev: false optional: true /@next/swc-darwin-x64@13.4.12: @@ -2848,7 +2696,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: false optional: true /@next/swc-linux-arm64-gnu@13.4.12: @@ -2857,7 +2704,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: false optional: true /@next/swc-linux-arm64-musl@13.4.12: @@ -2866,7 +2712,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: false optional: true /@next/swc-linux-x64-gnu@13.4.12: @@ -2875,7 +2720,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: false optional: true /@next/swc-linux-x64-musl@13.4.12: @@ -2884,7 +2728,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: false optional: true /@next/swc-win32-arm64-msvc@13.4.12: @@ -2893,7 +2736,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: false optional: true /@next/swc-win32-ia32-msvc@13.4.12: @@ -2902,7 +2744,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: false optional: true /@next/swc-win32-x64-msvc@13.4.12: @@ -2911,7 +2752,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: false optional: true /@node-minify/core@8.0.6: @@ -2944,12 +2784,10 @@ packages: dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - dev: true /@nodelib/fs.stat@2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - dev: true /@nodelib/fs.walk@1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} @@ -2957,7 +2795,6 @@ packages: dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - dev: true /@panva/hkdf@1.1.1: resolution: {integrity: sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==} @@ -3001,6 +2838,17 @@ packages: tslib: 2.6.2 dev: true + /@playwright/test@1.37.0: + resolution: {integrity: sha512-181WBLk4SRUyH1Q96VZl7BP6HcK0b7lbdeKisn3N/vnjitk+9HbdlFz/L5fey05vxaAhldIDnzo8KUoy8S3mmQ==} + engines: {node: '>=16'} + hasBin: true + dependencies: + '@types/node': 18.17.12 + playwright-core: 1.37.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /@repeaterjs/repeater@3.0.4: resolution: {integrity: sha512-AW8PKd6iX3vAZ0vA43nOUOnbq/X5ihgU+mSXXqunMkeQADGiqw/PY0JNeYtD5sr0PAy51YPgAPbDoeapv9r8WA==} dev: true @@ -3009,7 +2857,25 @@ packages: resolution: {integrity: sha512-0xd7qez0AQ+MbHatZTlI1gu5vkG8r7MYRUJAHPAHJBmGLs16zpkrpAVLvjQKQOqaXPDUBwOiJzNc00znHSCVBw==} dev: true - /@sladg/eslint-config-base@1.4.1(eslint@8.47.0)(prettier@3.0.2)(typescript@4.9.3): + /@sideway/address@4.1.4: + resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} + dependencies: + '@hapi/hoek': 9.3.0 + dev: true + + /@sideway/formula@3.0.1: + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + dev: true + + /@sideway/pinpoint@2.0.0: + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + dev: true + + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + + /@sladg/eslint-config-base@1.4.1(eslint@8.48.0)(prettier@3.0.3)(typescript@4.9.3): resolution: {integrity: sha512-PRTN5LGAuQ7dMuovHLrA8Hl5KTUOWjouAI7u99Mr7J52XH6bZX199grD3Q4/ZpcT60jEH+F8ateiXTg8NMR1WA==} peerDependencies: eslint: 8.x @@ -3017,18 +2883,18 @@ packages: typescript: 4.x || 5.x dependencies: '@next/eslint-plugin-next': 13.4.19 - '@typescript-eslint/eslint-plugin': 6.4.1(@typescript-eslint/parser@6.4.1)(eslint@8.47.0)(typescript@4.9.3) - '@typescript-eslint/parser': 6.4.1(eslint@8.47.0)(typescript@4.9.3) - eslint: 8.47.0 - eslint-config-next: 13.4.19(eslint@8.47.0)(typescript@4.9.3) - eslint-config-prettier: 9.0.0(eslint@8.47.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.4.1)(eslint-import-resolver-typescript@3.6.0)(eslint@8.47.0) - eslint-plugin-prettier: 5.0.0(eslint-config-prettier@9.0.0)(eslint@8.47.0)(prettier@3.0.2) - eslint-plugin-react-hooks: 4.6.0(eslint@8.47.0) - eslint-plugin-simple-import-sort: 10.0.0(eslint@8.47.0) - eslint-plugin-sonarjs: 0.20.0(eslint@8.47.0) - eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.4.1)(eslint@8.47.0) - prettier: 3.0.2 + '@typescript-eslint/eslint-plugin': 6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.48.0)(typescript@4.9.3) + '@typescript-eslint/parser': 6.5.0(eslint@8.48.0)(typescript@4.9.3) + eslint: 8.48.0 + eslint-config-next: 13.4.19(eslint@8.48.0)(typescript@4.9.3) + eslint-config-prettier: 9.0.0(eslint@8.48.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0) + eslint-plugin-prettier: 5.0.0(eslint-config-prettier@9.0.0)(eslint@8.48.0)(prettier@3.0.3) + eslint-plugin-react-hooks: 4.6.0(eslint@8.48.0) + eslint-plugin-simple-import-sort: 10.0.0(eslint@8.48.0) + eslint-plugin-sonarjs: 0.20.0(eslint@8.48.0) + eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.5.0)(eslint@8.48.0) + prettier: 3.0.3 typescript: 4.9.3 transitivePeerDependencies: - '@types/eslint' @@ -3051,7 +2917,17 @@ packages: dependencies: '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true + + /@smithy/chunked-blob-reader-native@2.0.0: + resolution: {integrity: sha512-HM8V2Rp1y8+1343tkZUKZllFhEQPNmpNdgFAncbTsxkZ18/gqjk23XXv3qGyXWp412f3o43ZZ1UZHVcHrpRnCQ==} + dependencies: + '@smithy/util-base64': 2.0.0 + tslib: 2.6.2 + + /@smithy/chunked-blob-reader@2.0.0: + resolution: {integrity: sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg==} + dependencies: + tslib: 2.6.2 /@smithy/config-resolver@1.1.0: resolution: {integrity: sha512-7WD9eZHp46BxAjNGHJLmxhhyeiNWkBdVStd7SUJPUZqQGeIO/REtIrcIfKUfdiHTQ9jyu2SYoqvzqqaFc6987w==} @@ -3071,7 +2947,6 @@ packages: '@smithy/util-config-provider': 2.0.0 '@smithy/util-middleware': 2.0.0 tslib: 2.6.2 - dev: true /@smithy/credential-provider-imds@2.0.5: resolution: {integrity: sha512-KFcf/e0meFkQNyteJ65f1G19sgUEY1e5zL7hyAEUPz2SEfBmC9B37WyRq87G3MEEsvmAWwCRu7nFFYUKtR3svQ==} @@ -3082,7 +2957,6 @@ packages: '@smithy/types': 2.2.2 '@smithy/url-parser': 2.0.5 tslib: 2.6.2 - dev: true /@smithy/eventstream-codec@2.0.5: resolution: {integrity: sha512-iqR6OuOV3zbQK8uVs9o+9AxhVk8kW9NAxA71nugwUB+kTY9C35pUd0A5/m4PRT0Y0oIW7W4kgnSR3fdYXQjECw==} @@ -3092,6 +2966,37 @@ packages: '@smithy/util-hex-encoding': 2.0.0 tslib: 2.6.2 + /@smithy/eventstream-serde-browser@2.0.5: + resolution: {integrity: sha512-8NU51y94qFJbxL6SmvgWDfITHO/svvbAigkLYk2pckX17TGCSf4EXuGpGLliJp5Ljh5+vASC7mUH2jYX7MWBxA==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/eventstream-serde-universal': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.6.2 + + /@smithy/eventstream-serde-config-resolver@2.0.5: + resolution: {integrity: sha512-u3gvukRaTH4X6tsryuZ4T1WGIEP34fPaTTzphFDJe8GJz/k11oBW1MPnkcaucBMxLnObK9swCF85j5cp1Kj1oA==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.2.2 + tslib: 2.6.2 + + /@smithy/eventstream-serde-node@2.0.5: + resolution: {integrity: sha512-/C8jb+k/vKUBIe80D30vzjvRXlJf76kG2AJY7/NwiqWuD2usRuuDFCDaswXdVsSh9P1+FeaxZ48chsK10yDryQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/eventstream-serde-universal': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.6.2 + + /@smithy/eventstream-serde-universal@2.0.5: + resolution: {integrity: sha512-+vHvbQtlSVYTQ/20tNpVaKi0EpTR7E8GoEUHJypRZIRgiT03b3h2MAWk+SNaqMrCJrYG9vKLkJFzDylRlUvDWg==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/eventstream-codec': 2.0.5 + '@smithy/types': 2.2.2 + tslib: 2.6.2 + /@smithy/fetch-http-handler@1.1.0: resolution: {integrity: sha512-N22C9R44u5WGlcY+Wuv8EXmCAq62wWwriRAuoczMEwAIjPbvHSthyPSLqI4S7kAST1j6niWg8kwpeJ3ReAv3xg==} dependencies: @@ -3110,7 +3015,14 @@ packages: '@smithy/types': 2.2.2 '@smithy/util-base64': 2.0.0 tslib: 2.6.2 - dev: true + + /@smithy/hash-blob-browser@2.0.5: + resolution: {integrity: sha512-ZVAUBtJXGf9bEko4/RwWcTK6d3b/ZmQMxJMrxOOcQhVDiqny9zI0mzgstO4Oxz3135R7S3V/bbGw3w3woCYpQg==} + dependencies: + '@smithy/chunked-blob-reader': 2.0.0 + '@smithy/chunked-blob-reader-native': 2.0.0 + '@smithy/types': 2.2.2 + tslib: 2.6.2 /@smithy/hash-node@2.0.5: resolution: {integrity: sha512-mk551hIywBITT+kXruRNXk7f8Fy7DTzBjZJSr/V6nolYKmUHIG3w5QU6nO9qPYEQGKc/yEPtkpdS28ndeG93lA==} @@ -3120,14 +3032,20 @@ packages: '@smithy/util-buffer-from': 2.0.0 '@smithy/util-utf8': 2.0.0 tslib: 2.6.2 - dev: true + + /@smithy/hash-stream-node@2.0.5: + resolution: {integrity: sha512-XiR4Aoux5kXy8OWPLQisKy3GPmm0l6deHepvPvr4MUzIwa5XWazG3JdbZXy+mk93CvEZrOwKPHU5Kul6QybJiQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@smithy/types': 2.2.2 + '@smithy/util-utf8': 2.0.0 + tslib: 2.6.2 /@smithy/invalid-dependency@2.0.5: resolution: {integrity: sha512-0wEi+JT0hM+UUwrJVYbqjuGFhy5agY/zXyiN7BNAJ1XoCDjU5uaNSj8ekPWsXd/d4yM6NSe8UbPd8cOc1+3oBQ==} dependencies: '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true /@smithy/is-array-buffer@1.1.0: resolution: {integrity: sha512-twpQ/n+3OWZJ7Z+xu43MJErmhB/WO/mMTnqR6PwWQShvSJ/emx5d1N59LQZk6ZpTAeuRWrc+eHhkzTp9NFjNRQ==} @@ -3142,6 +3060,13 @@ packages: dependencies: tslib: 2.6.2 + /@smithy/md5-js@2.0.5: + resolution: {integrity: sha512-k5EOte/Ye2r7XBVaXv2rhiehk6l3T4uRiPF+pnxKEc+G9Fwd1xAXBDZrtOq1syFPBKBmVfNszG4nevngST7NKg==} + dependencies: + '@smithy/types': 2.2.2 + '@smithy/util-utf8': 2.0.0 + tslib: 2.6.2 + /@smithy/middleware-content-length@2.0.5: resolution: {integrity: sha512-E7VwV5H02fgZIUGRli4GevBCAPvkyEI/fgl9SU47nPPi3DAAX3nEtUb8xfGbXjOcJ5BdSUoWWZn42tEd/blOqA==} engines: {node: '>=14.0.0'} @@ -3149,7 +3074,6 @@ packages: '@smithy/protocol-http': 2.0.5 '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true /@smithy/middleware-endpoint@2.0.5: resolution: {integrity: sha512-tyzDuoNTbsMQCq5Xkc4QOt6e2GACUllQIV8SQ5fc59FtOIV9/vbf58/GxVjZm2o8+MMbdDBANjTDZe/ijZKfyA==} @@ -3160,7 +3084,6 @@ packages: '@smithy/url-parser': 2.0.5 '@smithy/util-middleware': 2.0.0 tslib: 2.6.2 - dev: true /@smithy/middleware-retry@1.1.0: resolution: {integrity: sha512-lINKYxIvT+W20YFOtHBKeGm7npuJg0/YCoShttU7fVpsmU+a2rdb9zrJn1MHqWfUL6DhTAWGa0tH2O7l4XrDcw==} @@ -3186,7 +3109,6 @@ packages: '@smithy/util-retry': 2.0.0 tslib: 2.6.2 uuid: 8.3.2 - dev: true /@smithy/middleware-serde@2.0.5: resolution: {integrity: sha512-in0AA5sous74dOfTGU9rMJBXJ0bDVNxwdXtEt5lh3FVd2sEyjhI+rqpLLRF1E4ixbw3RSEf80hfRpcPdjg4vvQ==} @@ -3194,7 +3116,6 @@ packages: dependencies: '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true /@smithy/middleware-stack@1.1.0: resolution: {integrity: sha512-XynYiIvXNea2BbLcppvpNK0zu8o2woJqgnmxqYTn4FWagH/Hr2QIk8LOsUz7BIJ4tooFhmx8urHKCdlPbbPDCA==} @@ -3208,7 +3129,6 @@ packages: engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 - dev: true /@smithy/node-config-provider@2.0.5: resolution: {integrity: sha512-LRtjV9WkhONe2lVy+ipB/l1GX60ybzBmFyeRUoLUXWKdnZ3o81jsnbKzMK8hKq8eFSWPk+Lmyx6ZzCQabGeLxg==} @@ -3218,7 +3138,6 @@ packages: '@smithy/shared-ini-file-loader': 2.0.5 '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true /@smithy/node-http-handler@1.1.0: resolution: {integrity: sha512-d3kRriEgaIiGXLziAM8bjnaLn1fthCJeTLZIwEIpzQqe6yPX0a+yQoLCTyjb2fvdLwkMoG4p7THIIB5cj5lkbg==} @@ -3240,7 +3159,6 @@ packages: '@smithy/querystring-builder': 2.0.5 '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true /@smithy/property-provider@2.0.5: resolution: {integrity: sha512-cAFSUhX6aiHcmpWfrCLKvwBtgN1F6A0N8qY/8yeSi0LRLmhGqsY1/YTxFE185MCVzYbqBGXVr9TBv4RUcIV4rA==} @@ -3248,7 +3166,6 @@ packages: dependencies: '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true /@smithy/protocol-http@1.2.0: resolution: {integrity: sha512-GfGfruksi3nXdFok5RhgtOnWe5f6BndzYfmEXISD+5gAGdayFGpjWu5pIqIweTudMtse20bGbc+7MFZXT1Tb8Q==} @@ -3264,7 +3181,6 @@ packages: dependencies: '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true /@smithy/querystring-builder@1.1.0: resolution: {integrity: sha512-gDEi4LxIGLbdfjrjiY45QNbuDmpkwh9DX4xzrR2AzjjXpxwGyfSpbJaYhXARw9p17VH0h9UewnNQXNwaQyYMDA==} @@ -3282,7 +3198,6 @@ packages: '@smithy/types': 2.2.2 '@smithy/util-uri-escape': 2.0.0 tslib: 2.6.2 - dev: true /@smithy/querystring-parser@2.0.5: resolution: {integrity: sha512-C2stCULH0r54KBksv3AWcN8CLS3u9+WsEW8nBrvctrJ5rQTNa1waHkffpVaiKvcW2nP0aIMBPCobD/kYf/q9mA==} @@ -3299,7 +3214,6 @@ packages: /@smithy/service-error-classification@2.0.0: resolution: {integrity: sha512-2z5Nafy1O0cTf69wKyNjGW/sNVMiqDnb4jgwfMG8ye8KnFJ5qmJpDccwIbJNhXIfbsxTg9SEec2oe1cexhMJvw==} engines: {node: '>=14.0.0'} - dev: true /@smithy/shared-ini-file-loader@2.0.5: resolution: {integrity: sha512-Mvtk6FwMtfbKRC4YuSsIqRYp9WTxsSUJVVo2djgyhcacKGMqicHDWSAmgy3sDrKv+G/G6xTZCPwm6pJARtdxVg==} @@ -3307,7 +3221,6 @@ packages: dependencies: '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true /@smithy/signature-v4@2.0.5: resolution: {integrity: sha512-ABIzXmUDXK4n2c9cXjQLELgH2RdtABpYKT+U131e2I6RbCypFZmxIHmIBufJzU2kdMCQ3+thBGDWorAITFW04A==} @@ -3340,7 +3253,6 @@ packages: '@smithy/types': 2.2.2 '@smithy/util-stream': 2.0.5 tslib: 2.6.2 - dev: true /@smithy/types@1.2.0: resolution: {integrity: sha512-z1r00TvBqF3dh4aHhya7nz1HhvCg4TRmw51fjMrh5do3h+ngSstt/yKlNbHeb9QxJmFbmN8KEVSWgb1bRvfEoA==} @@ -3361,7 +3273,6 @@ packages: '@smithy/querystring-parser': 2.0.5 '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true /@smithy/util-base64@1.1.0: resolution: {integrity: sha512-FpYmDmVbOXAxqvoVCwqehUN0zXS+lN8V7VS9O7I8MKeVHdSTsZzlwiMEvGoyTNOXWn8luF4CTDYgNHnZViR30g==} @@ -3377,20 +3288,17 @@ packages: dependencies: '@smithy/util-buffer-from': 2.0.0 tslib: 2.6.2 - dev: true /@smithy/util-body-length-browser@2.0.0: resolution: {integrity: sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==} dependencies: tslib: 2.6.2 - dev: true /@smithy/util-body-length-node@2.1.0: resolution: {integrity: sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==} engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 - dev: true /@smithy/util-buffer-from@1.1.0: resolution: {integrity: sha512-9m6NXE0ww+ra5HKHCHig20T+FAwxBAm7DIdwc/767uGWbRcY720ybgPacQNB96JMOI7xVr/CDa3oMzKmW4a+kw==} @@ -3419,7 +3327,6 @@ packages: engines: {node: '>=14.0.0'} dependencies: tslib: 2.6.2 - dev: true /@smithy/util-defaults-mode-browser@2.0.5: resolution: {integrity: sha512-yciP6TPttLsj731aHTvekgyuCGXQrEAJibEwEWAh3kzaDsfGAVCuZSBlyvC2Dl3TZmHKCOQwHV8mIE7KQCTPuQ==} @@ -3429,7 +3336,6 @@ packages: '@smithy/types': 2.2.2 bowser: 2.11.0 tslib: 2.6.2 - dev: true /@smithy/util-defaults-mode-node@2.0.5: resolution: {integrity: sha512-M07t99rWasXt+IaDZDyP3BkcoEm/mgIE1RIMASrE49LKSNxaVN7PVcgGc77+4uu2kzBAyqJKy79pgtezuknyjQ==} @@ -3441,7 +3347,6 @@ packages: '@smithy/property-provider': 2.0.5 '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true /@smithy/util-hex-encoding@1.1.0: resolution: {integrity: sha512-7UtIE9eH0u41zpB60Jzr0oNCQ3hMJUabMcKRUVjmyHTXiWDE4vjSqN6qlih7rCNeKGbioS7f/y2Jgym4QZcKFg==} @@ -3483,7 +3388,6 @@ packages: dependencies: '@smithy/service-error-classification': 2.0.0 tslib: 2.6.2 - dev: true /@smithy/util-stream@1.1.0: resolution: {integrity: sha512-w3lsdGsntaLQIrwDWJkIFKrFscgZXwU/oxsse09aSTNv5TckPhDeYea3LhsDrU5MGAG3vprhVZAKr33S45coVA==} @@ -3511,7 +3415,6 @@ packages: '@smithy/util-hex-encoding': 2.0.0 '@smithy/util-utf8': 2.0.0 tslib: 2.6.2 - dev: true /@smithy/util-uri-escape@1.1.0: resolution: {integrity: sha512-/jL/V1xdVRt5XppwiaEU8Etp5WHZj609n0xMTuehmCqdoOFbId1M+aEeDWZsQ+8JbEB/BJ6ynY2SlYmOaKtt8w==} @@ -3548,13 +3451,16 @@ packages: '@smithy/abort-controller': 2.0.5 '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true /@swc/helpers@0.5.1: resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} dependencies: tslib: 2.6.2 - dev: false + + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + dev: true /@trpc/server@9.16.0: resolution: {integrity: sha512-IENsJs41ZR4oeFUJhsNNTSgEOtuRN0m9u7ec4u3eG/qOc7bIoo1nDoYtx4bl6OJJSQYEytG9tlcVz9G8OAaHbg==} @@ -3562,18 +3468,67 @@ packages: tslib: 2.6.2 dev: true - /@tsconfig/node18@1.0.1: - resolution: {integrity: sha512-sNFeK6X2ATlhlvzyH4kKYQlfHXE2f2/wxtB9ClvYXevWpmwkUT7VaSrjIN9E76Qebz8qP5JOJJ9jD3QoD/Z9TA==} - dev: false + /@tsconfig/node10@1.0.9: + resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + dev: true + + /@tsconfig/node12@1.0.11: + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + dev: true + + /@tsconfig/node14@1.0.3: + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + dev: true + + /@tsconfig/node16@1.0.4: + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + dev: true + + /@tsconfig/node18@1.0.3: + resolution: {integrity: sha512-RbwvSJQsuN9TB04AQbGULYfOGE/RnSFk/FLQ5b0NmDf5Kx2q/lABZbHQPKCO1vZ6Fiwkplu+yb9pGdLy1iGseQ==} + dev: false + + /@types/aws-lambda@8.10.119: + resolution: {integrity: sha512-Vqm22aZrCvCd6I5g1SvpW151jfqwTzEZ7XJ3yZ6xaZG31nUEOEyzzVImjRcsN8Wi/QyPxId/x8GTtgIbsy8kEw==} + dev: true + + /@types/chai-subset@1.3.3: + resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} + dependencies: + '@types/chai': 4.3.5 + dev: true + + /@types/chai@4.3.5: + resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} + dev: true + + /@types/is-ci@3.0.0: + resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} + dependencies: + ci-info: 3.8.0 + dev: true + + /@types/istanbul-lib-coverage@2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + dev: true + + /@types/istanbul-lib-report@3.0.0: + resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} + dependencies: + '@types/istanbul-lib-coverage': 2.0.4 + dev: true - /@types/aws-lambda@8.10.109: - resolution: {integrity: sha512-/ME92FneNyXQzrAfcnQQlW1XkCZGPDlpi2ao1MJwecN+6SbeonKeggU8eybv1DfKli90FAVT1MlIZVXfwVuCyg==} + /@types/istanbul-reports@3.0.1: + resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} + dependencies: + '@types/istanbul-lib-report': 3.0.0 dev: true - /@types/is-ci@3.0.0: - resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} + /@types/jest@29.5.4: + resolution: {integrity: sha512-PhglGmhWeD46FYOVLt3X7TiWjzwuVGW9wG/4qocPevXMjCmrIc5b6db9WjeGE4QYVpUAWMDv3v0IiBwObY289A==} dependencies: - ci-info: 3.8.0 + expect: 29.6.4 + pretty-format: 29.6.3 dev: true /@types/json-schema@7.0.12: @@ -3598,27 +3553,34 @@ packages: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true - /@types/node@18.11.17: - resolution: {integrity: sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==} - /@types/node@18.11.9: resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} dev: false + /@types/node@18.17.12: + resolution: {integrity: sha512-d6xjC9fJ/nSnfDeU0AMDsaJyb1iHsqCSOdi84w4u+SlN/UgQdY5tRhpMzaFYsI4mnpvgTivEaQd0yOUhAtOnEQ==} + + /@types/node@20.5.0: + resolution: {integrity: sha512-Mgq7eCtoTjT89FqNoTzzXg2XvCi5VMhRV6+I2aYanc6kQCBImeNaAYRs/DyoVqk1YEUJK5gN9VO7HRIdz4Wo3Q==} + /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - dev: false /@types/react-dom@18.0.9: resolution: {integrity: sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==} dependencies: - '@types/react': 18.0.25 + '@types/react': 18.2.20 dev: false + /@types/react-dom@18.2.7: + resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} + dependencies: + '@types/react': 18.2.20 + /@types/react@18.0.25: resolution: {integrity: sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==} dependencies: @@ -3627,16 +3589,28 @@ packages: csstype: 3.1.2 dev: false + /@types/react@18.2.20: + resolution: {integrity: sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.3 + csstype: 3.1.2 + /@types/scheduler@0.16.3: resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} - dev: false - /@types/semver@6.2.3: - resolution: {integrity: sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A==} + /@types/semver@7.5.1: + resolution: {integrity: sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==} dev: true - /@types/semver@7.5.0: - resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} + /@types/stack-utils@2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} + dev: true + + /@types/testing-library__jest-dom@5.14.9: + resolution: {integrity: sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==} + dependencies: + '@types/jest': 29.5.4 dev: true /@types/unist@2.0.7: @@ -3646,10 +3620,20 @@ packages: /@types/ws@8.5.5: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 18.11.17 + '@types/node': 18.17.12 + + /@types/yargs-parser@21.0.0: + resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} + dev: true + + /@types/yargs@17.0.24: + resolution: {integrity: sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==} + dependencies: + '@types/yargs-parser': 21.0.0 + dev: true - /@typescript-eslint/eslint-plugin@6.4.1(@typescript-eslint/parser@6.4.1)(eslint@8.47.0)(typescript@4.9.3): - resolution: {integrity: sha512-3F5PtBzUW0dYlq77Lcqo13fv+58KDwUib3BddilE8ajPJT+faGgxmI9Sw+I8ZS22BYwoir9ZhNXcLi+S+I2bkw==} + /@typescript-eslint/eslint-plugin@6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.48.0)(typescript@4.9.3): + resolution: {integrity: sha512-2pktILyjvMaScU6iK3925uvGU87E+N9rh372uGZgiMYwafaw9SXq86U04XPq3UH6tzRvNgBsub6x2DacHc33lw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -3660,13 +3644,13 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.8.0 - '@typescript-eslint/parser': 6.4.1(eslint@8.47.0)(typescript@4.9.3) - '@typescript-eslint/scope-manager': 6.4.1 - '@typescript-eslint/type-utils': 6.4.1(eslint@8.47.0)(typescript@4.9.3) - '@typescript-eslint/utils': 6.4.1(eslint@8.47.0)(typescript@4.9.3) - '@typescript-eslint/visitor-keys': 6.4.1 + '@typescript-eslint/parser': 6.5.0(eslint@8.48.0)(typescript@4.9.3) + '@typescript-eslint/scope-manager': 6.5.0 + '@typescript-eslint/type-utils': 6.5.0(eslint@8.48.0)(typescript@4.9.3) + '@typescript-eslint/utils': 6.5.0(eslint@8.48.0)(typescript@4.9.3) + '@typescript-eslint/visitor-keys': 6.5.0 debug: 4.3.4 - eslint: 8.47.0 + eslint: 8.48.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 @@ -3677,8 +3661,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.4.1(eslint@8.47.0)(typescript@4.9.3): - resolution: {integrity: sha512-610G6KHymg9V7EqOaNBMtD1GgpAmGROsmfHJPXNLCU9bfIuLrkdOygltK784F6Crboyd5tBFayPB7Sf0McrQwg==} + /@typescript-eslint/parser@6.5.0(eslint@8.48.0)(typescript@4.9.3): + resolution: {integrity: sha512-LMAVtR5GN8nY0G0BadkG0XIe4AcNMeyEy3DyhKGAh9k4pLSMBO7rF29JvDBpZGCmp5Pgz5RLHP6eCpSYZJQDuQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -3687,27 +3671,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.4.1 - '@typescript-eslint/types': 6.4.1 - '@typescript-eslint/typescript-estree': 6.4.1(typescript@4.9.3) - '@typescript-eslint/visitor-keys': 6.4.1 + '@typescript-eslint/scope-manager': 6.5.0 + '@typescript-eslint/types': 6.5.0 + '@typescript-eslint/typescript-estree': 6.5.0(typescript@4.9.3) + '@typescript-eslint/visitor-keys': 6.5.0 debug: 4.3.4 - eslint: 8.47.0 + eslint: 8.48.0 typescript: 4.9.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.4.1: - resolution: {integrity: sha512-p/OavqOQfm4/Hdrr7kvacOSFjwQ2rrDVJRPxt/o0TOWdFnjJptnjnZ+sYDR7fi4OimvIuKp+2LCkc+rt9fIW+A==} + /@typescript-eslint/scope-manager@6.5.0: + resolution: {integrity: sha512-A8hZ7OlxURricpycp5kdPTH3XnjG85UpJS6Fn4VzeoH4T388gQJ/PGP4ole5NfKt4WDVhmLaQ/dBLNDC4Xl/Kw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.4.1 - '@typescript-eslint/visitor-keys': 6.4.1 + '@typescript-eslint/types': 6.5.0 + '@typescript-eslint/visitor-keys': 6.5.0 dev: true - /@typescript-eslint/type-utils@6.4.1(eslint@8.47.0)(typescript@4.9.3): - resolution: {integrity: sha512-7ON8M8NXh73SGZ5XvIqWHjgX2f+vvaOarNliGhjrJnv1vdjG0LVIz+ToYfPirOoBi56jxAKLfsLm40+RvxVVXA==} + /@typescript-eslint/type-utils@6.5.0(eslint@8.48.0)(typescript@4.9.3): + resolution: {integrity: sha512-f7OcZOkRivtujIBQ4yrJNIuwyCQO1OjocVqntl9dgSIZAdKqicj3xFDqDOzHDlGCZX990LqhLQXWRnQvsapq8A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -3716,23 +3700,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.4.1(typescript@4.9.3) - '@typescript-eslint/utils': 6.4.1(eslint@8.47.0)(typescript@4.9.3) + '@typescript-eslint/typescript-estree': 6.5.0(typescript@4.9.3) + '@typescript-eslint/utils': 6.5.0(eslint@8.48.0)(typescript@4.9.3) debug: 4.3.4 - eslint: 8.47.0 + eslint: 8.48.0 ts-api-utils: 1.0.2(typescript@4.9.3) typescript: 4.9.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.4.1: - resolution: {integrity: sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg==} + /@typescript-eslint/types@6.5.0: + resolution: {integrity: sha512-eqLLOEF5/lU8jW3Bw+8auf4lZSbbljHR2saKnYqON12G/WsJrGeeDHWuQePoEf9ro22+JkbPfWQwKEC5WwLQ3w==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.4.1(typescript@4.9.3): - resolution: {integrity: sha512-xF6Y7SatVE/OyV93h1xGgfOkHr2iXuo8ip0gbfzaKeGGuKiAnzS+HtVhSPx8Www243bwlW8IF7X0/B62SzFftg==} + /@typescript-eslint/typescript-estree@6.5.0(typescript@4.9.3): + resolution: {integrity: sha512-q0rGwSe9e5Kk/XzliB9h2LBc9tmXX25G0833r7kffbl5437FPWb2tbpIV9wAATebC/018pGa9fwPDuvGN+LxWQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -3740,8 +3724,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.4.1 - '@typescript-eslint/visitor-keys': 6.4.1 + '@typescript-eslint/types': 6.5.0 + '@typescript-eslint/visitor-keys': 6.5.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -3752,33 +3736,92 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.4.1(eslint@8.47.0)(typescript@4.9.3): - resolution: {integrity: sha512-F/6r2RieNeorU0zhqZNv89s9bDZSovv3bZQpUNOmmQK1L80/cV4KEu95YUJWi75u5PhboFoKUJBnZ4FQcoqhDw==} + /@typescript-eslint/utils@6.5.0(eslint@8.48.0)(typescript@4.9.3): + resolution: {integrity: sha512-9nqtjkNykFzeVtt9Pj6lyR9WEdd8npPhhIPM992FWVkZuS6tmxHfGVnlUcjpUP2hv8r4w35nT33mlxd+Be1ACQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) '@types/json-schema': 7.0.12 - '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.4.1 - '@typescript-eslint/types': 6.4.1 - '@typescript-eslint/typescript-estree': 6.4.1(typescript@4.9.3) - eslint: 8.47.0 + '@types/semver': 7.5.1 + '@typescript-eslint/scope-manager': 6.5.0 + '@typescript-eslint/types': 6.5.0 + '@typescript-eslint/typescript-estree': 6.5.0(typescript@4.9.3) + eslint: 8.48.0 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.4.1: - resolution: {integrity: sha512-y/TyRJsbZPkJIZQXrHfdnxVnxyKegnpEvnRGNam7s3TRR2ykGefEWOhaef00/UUN3IZxizS7BTO3svd3lCOJRQ==} + /@typescript-eslint/visitor-keys@6.5.0: + resolution: {integrity: sha512-yCB/2wkbv3hPsh02ZS8dFQnij9VVQXJMN/gbQsaaY+zxALkZnxa/wagvLEFsAWMPv7d7lxQmNsIzGU1w/T/WyA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.4.1 + '@typescript-eslint/types': 6.5.0 eslint-visitor-keys: 3.4.3 dev: true + /@vitest/coverage-v8@0.34.3(vitest@0.34.3): + resolution: {integrity: sha512-bNjP0RHe8UxdklCigZlk6FVCNbOiqVjWnpZJ1zKixpvb7YHSaZiN/w+mzpvXIoqyxyePzKC+L+G1oj7SB20PJw==} + peerDependencies: + vitest: '>=0.32.0 <1' + dependencies: + '@ampproject/remapping': 2.2.1 + '@bcoe/v8-coverage': 0.2.3 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.6 + magic-string: 0.30.3 + picocolors: 1.0.0 + std-env: 3.4.3 + test-exclude: 6.0.0 + v8-to-istanbul: 9.1.0 + vitest: 0.34.3(jsdom@22.1.0) + transitivePeerDependencies: + - supports-color + dev: true + + /@vitest/expect@0.34.3: + resolution: {integrity: sha512-F8MTXZUYRBVsYL1uoIft1HHWhwDbSzwAU9Zgh8S6WFC3YgVb4AnFV2GXO3P5Em8FjEYaZtTnQYoNwwBrlOMXgg==} + dependencies: + '@vitest/spy': 0.34.3 + '@vitest/utils': 0.34.3 + chai: 4.3.8 + dev: true + + /@vitest/runner@0.34.3: + resolution: {integrity: sha512-lYNq7N3vR57VMKMPLVvmJoiN4bqwzZ1euTW+XXYH5kzr3W/+xQG3b41xJn9ChJ3AhYOSoweu974S1V3qDcFESA==} + dependencies: + '@vitest/utils': 0.34.3 + p-limit: 4.0.0 + pathe: 1.1.1 + dev: true + + /@vitest/snapshot@0.34.3: + resolution: {integrity: sha512-QyPaE15DQwbnIBp/yNJ8lbvXTZxS00kRly0kfFgAD5EYmCbYcA+1EEyRalc93M0gosL/xHeg3lKAClIXYpmUiQ==} + dependencies: + magic-string: 0.30.3 + pathe: 1.1.1 + pretty-format: 29.6.3 + dev: true + + /@vitest/spy@0.34.3: + resolution: {integrity: sha512-N1V0RFQ6AI7CPgzBq9kzjRdPIgThC340DGjdKdPSE8r86aUSmeliTUgkTqLSgtEwWWsGfBQ+UetZWhK0BgJmkQ==} + dependencies: + tinyspy: 2.1.1 + dev: true + + /@vitest/utils@0.34.3: + resolution: {integrity: sha512-kiSnzLG6m/tiT0XEl4U2H8JDBjFtwVlaE8I3QfGiMFR0QvnRDfYfdP3YvTBWM/6iJDAyaPY6yVQiCTUc7ZzTHA==} + dependencies: + diff-sequences: 29.6.3 + loupe: 2.3.6 + pretty-format: 29.6.3 + dev: true + /@whatwg-node/events@0.0.2: resolution: {integrity: sha512-WKj/lI4QjnLuPrim0cfO7i+HsDSXHxNv1y0CrJhdntuO3hxWZmnXCwNDnwOvry11OjRin6cgWNF+j/9Pn8TN4w==} dev: true @@ -3814,6 +3857,10 @@ packages: tslib: 2.6.2 dev: true + /abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + dev: true + /accepts@1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -3830,6 +3877,11 @@ packages: acorn: 8.10.0 dev: true + /acorn-walk@8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} @@ -3840,6 +3892,15 @@ packages: engines: {node: '>=6.0'} dev: true + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + /ajv-formats@2.1.1(ajv@8.12.0): resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -3904,18 +3965,25 @@ packages: color-convert: 2.0.1 dev: true + /ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} dev: true + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: true /archiver-utils@2.1.0: resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} @@ -3946,6 +4014,13 @@ packages: zip-stream: 4.1.0 dev: true + /arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + dev: true + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: @@ -4064,6 +4139,10 @@ packages: tslib: 2.6.2 dev: true + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + /ast-types-flow@0.0.7: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} dev: true @@ -4087,6 +4166,10 @@ packages: has-symbols: 1.0.3 dev: true + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: true + /at-least-node@1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} @@ -4102,13 +4185,28 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true + /autoprefixer@10.4.15(postcss@8.4.27): + 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.30001524 + fraction.js: 4.2.1 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.27 + postcss-value-parser: 4.2.0 + /available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} dev: true - /aws-cdk-lib@2.84.0(constructs@10.1.156): - resolution: {integrity: sha512-4zLtCLCIs5Ia4WRGqiXRwxSkpGaNy3NxMexO9qYHSuIYpqf4sHObzZ0tDHZCFL5Wkui3sCu3OLQWrRHrr93HvA==} + /aws-cdk-lib@2.91.0(constructs@10.2.69): + resolution: {integrity: sha512-sxXVUlb9OOjwakEssppty7QMTcMX9F6/cNA980JMmQpKeVALXvT60jWdCeAeKeZcGz1Y4whLoXLdU2/bJzh07w==} engines: {node: '>= 14.15.0'} peerDependencies: constructs: ^10.0.0 @@ -4118,7 +4216,7 @@ packages: '@aws-cdk/asset-node-proxy-agent-v5': 2.0.166 '@balena/dockerignore': 1.0.2 case: 1.6.3 - constructs: 10.1.156 + constructs: 10.2.69 fs-extra: 11.1.1 ignore: 5.2.4 jsonschema: 1.4.1 @@ -4195,9 +4293,18 @@ packages: /axios@0.24.0: resolution: {integrity: sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==} dependencies: - follow-redirects: 1.15.2 + follow-redirects: 1.15.2(debug@4.3.4) + transitivePeerDependencies: + - debug + + /axios@0.27.2(debug@4.3.4): + resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} + dependencies: + follow-redirects: 1.15.2(debug@4.3.4) + form-data: 4.0.0 transitivePeerDependencies: - debug + dev: true /axobject-query@3.2.1: resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} @@ -4230,7 +4337,6 @@ packages: /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - dev: true /bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -4247,6 +4353,10 @@ packages: readable-stream: 3.6.2 dev: true + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + /bn.js@4.12.0: resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} dev: true @@ -4297,10 +4407,9 @@ packages: engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - dev: true - /breakword@1.0.5: - resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} + /breakword@1.0.6: + resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==} dependencies: wcwidth: 1.0.1 dev: true @@ -4326,7 +4435,7 @@ packages: resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} dependencies: base64-js: 1.5.1 - ieee754: 1.1.13 + ieee754: 1.2.1 isarray: 1.0.0 dev: true @@ -4354,6 +4463,16 @@ packages: run-applescript: 5.0.0 dev: true + /bundle-require@4.0.1(esbuild@0.18.20): + resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.17' + dependencies: + esbuild: 0.18.20 + load-tsconfig: 0.2.5 + dev: true + /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -4365,6 +4484,11 @@ packages: engines: {node: '>= 0.8'} dev: true + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + /call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: @@ -4377,6 +4501,10 @@ packages: engines: {node: '>=6'} dev: true + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + /camelcase-keys@6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} engines: {node: '>=8'} @@ -4403,13 +4531,13 @@ packages: resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} dev: false - /cdk-assets@2.84.0: - resolution: {integrity: sha512-7yMZX1v1q+F3EKQ21ida78jscSFTQ7Ikj7knZ/D1KPED6ef+at/xdXjxcz3hLEPaFhDQj9JaBxmWsOzDlp4bmw==} + /cdk-assets@2.91.0: + resolution: {integrity: sha512-/dc6K/a2Gfl+3SX8SU6FyoLY3jGcCuwu/Gs1SCsbom4v22ZbAXIL8enhffSNiVKry/yfHbS/VRHRwiPpbYqVMQ==} engines: {node: '>= 14.15.0'} hasBin: true dependencies: - '@aws-cdk/cloud-assembly-schema': 2.84.0 - '@aws-cdk/cx-api': 2.84.0(@aws-cdk/cloud-assembly-schema@2.84.0) + '@aws-cdk/cloud-assembly-schema': 2.91.0 + '@aws-cdk/cx-api': 2.91.0(@aws-cdk/cloud-assembly-schema@2.91.0) archiver: 5.3.2 aws-sdk: 2.1446.0 glob: 7.2.3 @@ -4417,6 +4545,19 @@ packages: yargs: 16.2.0 dev: true + /chai@4.3.8: + resolution: {integrity: sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.2 + deep-eql: 4.1.3 + get-func-name: 2.0.0 + loupe: 2.3.6 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -4425,14 +4566,6 @@ packages: escape-string-regexp: 1.0.5 supports-color: 5.5.0 - /chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -4470,6 +4603,15 @@ packages: resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} dev: true + /check-error@1.0.2: + resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + dev: true + + /check-more-types@2.24.0: + resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==} + engines: {node: '>= 0.8.0'} + dev: true + /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -4483,7 +4625,6 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 - dev: true /ci-info@3.8.0: resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} @@ -4517,7 +4658,6 @@ packages: /client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - dev: false /cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} @@ -4579,6 +4719,13 @@ packages: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: true + /comma-separated-tokens@1.0.8: resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} dev: false @@ -4587,6 +4734,10 @@ packages: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} dev: false + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + /commist@1.1.0: resolution: {integrity: sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==} dependencies: @@ -4631,9 +4782,9 @@ packages: semver: 7.5.4 dev: true - /constructs@10.1.156: - resolution: {integrity: sha512-BTZ3Kyt++/YFlph/ioqbDhzSKVMqHRHvc99FxU4b705ZP6s2IkDxMLCMinC70USMTJWFbO1p02Egux7sk4q07A==} - engines: {node: '>= 14.17.0'} + /constructs@10.2.69: + resolution: {integrity: sha512-0AiM/uQe5Uk6JVe/62oolmSN2MjbFQkOlYrM3fFGZLKuT+g7xlAI10EebFhyCcZwI2JAcWuWCmmCAyCothxjuw==} + engines: {node: '>= 16.14.0'} dev: true /content-disposition@0.5.4: @@ -4681,6 +4832,10 @@ packages: readable-stream: 3.6.2 dev: true + /create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + dev: true + /cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} dependencies: @@ -4709,9 +4864,20 @@ packages: /crypto-js@4.1.1: resolution: {integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==} + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + /cssstyle@3.0.0: + resolution: {integrity: sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==} + engines: {node: '>=14'} + dependencies: + rrweb-cssom: 0.6.0 + dev: true + /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - dev: false /csv-generate@3.4.3: resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} @@ -4739,6 +4905,15 @@ packages: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} dev: true + /data-urls@4.0.0: + resolution: {integrity: sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==} + engines: {node: '>=14'} + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 12.0.1 + dev: true + /dataloader@1.4.0: resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} dev: true @@ -4800,6 +4975,17 @@ packages: engines: {node: '>=0.10.0'} dev: true + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: true + + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true @@ -4841,6 +5027,11 @@ packages: object-keys: 1.1.1 dev: true + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: true + /dendriform-immer-patch-optimiser@2.1.3(immer@9.0.21): resolution: {integrity: sha512-QG2IegUCdlhycVwsBOJ7SNd18PgzyWPxBivTzuF0E1KFxaU47fHy/frud74A9E66a4WXyFFp9FLLC2XQDkVj7g==} engines: {node: '>=10'} @@ -4855,11 +5046,6 @@ packages: engines: {node: '>= 0.8'} dev: true - /dequal@2.0.2: - resolution: {integrity: sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==} - engines: {node: '>=6'} - dev: false - /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -4875,6 +5061,19 @@ packages: engines: {node: '>=8'} dev: true + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + dev: true + /diff@5.1.0: resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} engines: {node: '>=0.3.1'} @@ -4887,6 +5086,9 @@ packages: path-type: 4.0.0 dev: true + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + /doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -4901,6 +5103,13 @@ packages: esutils: 2.0.3 dev: true + /domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + dependencies: + webidl-conversions: 7.0.0 + dev: true + /dot-prop@6.0.1: resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} engines: {node: '>=10'} @@ -4925,7 +5134,6 @@ packages: /duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: false /duplexify@3.7.1: resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} @@ -4986,11 +5194,17 @@ packages: tapable: 2.2.1 dev: true - /enquirer@2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + /enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} dependencies: ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} dev: true /env-paths@2.2.1: @@ -5014,7 +5228,7 @@ packages: call-bind: 1.0.2 es-set-tostringtag: 2.0.1 es-to-primitive: 1.2.1 - function.prototype.name: 1.1.5 + function.prototype.name: 1.1.6 get-intrinsic: 1.2.1 get-symbol-description: 1.0.0 globalthis: 1.0.3 @@ -5302,34 +5516,64 @@ packages: esbuild-windows-arm64: 0.15.18 dev: false - /esbuild@0.16.13: - resolution: {integrity: sha512-oYwFdSEIoKM1oYzyem1osgKJAvg5447XF+05ava21fOtilyb2HeQQh26/74K4WeAk5dZmj/Mx10zUqUnI14jhA==} + /esbuild@0.18.13: + resolution: {integrity: sha512-vhg/WR/Oiu4oUIkVhmfcc23G6/zWuEQKFS+yiosSHe4aN6+DQRXIfeloYGibIfVhkr4wyfuVsGNLr+sQU1rWWw==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.16.13 - '@esbuild/android-arm64': 0.16.13 - '@esbuild/android-x64': 0.16.13 - '@esbuild/darwin-arm64': 0.16.13 - '@esbuild/darwin-x64': 0.16.13 - '@esbuild/freebsd-arm64': 0.16.13 - '@esbuild/freebsd-x64': 0.16.13 - '@esbuild/linux-arm': 0.16.13 - '@esbuild/linux-arm64': 0.16.13 - '@esbuild/linux-ia32': 0.16.13 - '@esbuild/linux-loong64': 0.16.13 - '@esbuild/linux-mips64el': 0.16.13 - '@esbuild/linux-ppc64': 0.16.13 - '@esbuild/linux-riscv64': 0.16.13 - '@esbuild/linux-s390x': 0.16.13 - '@esbuild/linux-x64': 0.16.13 - '@esbuild/netbsd-x64': 0.16.13 - '@esbuild/openbsd-x64': 0.16.13 - '@esbuild/sunos-x64': 0.16.13 - '@esbuild/win32-arm64': 0.16.13 - '@esbuild/win32-ia32': 0.16.13 - '@esbuild/win32-x64': 0.16.13 + '@esbuild/android-arm': 0.18.13 + '@esbuild/android-arm64': 0.18.13 + '@esbuild/android-x64': 0.18.13 + '@esbuild/darwin-arm64': 0.18.13 + '@esbuild/darwin-x64': 0.18.13 + '@esbuild/freebsd-arm64': 0.18.13 + '@esbuild/freebsd-x64': 0.18.13 + '@esbuild/linux-arm': 0.18.13 + '@esbuild/linux-arm64': 0.18.13 + '@esbuild/linux-ia32': 0.18.13 + '@esbuild/linux-loong64': 0.18.13 + '@esbuild/linux-mips64el': 0.18.13 + '@esbuild/linux-ppc64': 0.18.13 + '@esbuild/linux-riscv64': 0.18.13 + '@esbuild/linux-s390x': 0.18.13 + '@esbuild/linux-x64': 0.18.13 + '@esbuild/netbsd-x64': 0.18.13 + '@esbuild/openbsd-x64': 0.18.13 + '@esbuild/sunos-x64': 0.18.13 + '@esbuild/win32-arm64': 0.18.13 + '@esbuild/win32-ia32': 0.18.13 + '@esbuild/win32-x64': 0.18.13 + dev: true + + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 dev: true /escalade@3.1.1: @@ -5354,7 +5598,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-next@13.4.19(eslint@8.47.0)(typescript@4.9.3): + /eslint-config-next@13.4.19(eslint@8.48.0)(typescript@4.9.3): resolution: {integrity: sha512-WE8367sqMnjhWHvR5OivmfwENRQ1ixfNE9hZwQqNCsd+iM3KnuMc1V8Pt6ytgjxjf23D+xbesADv9x3xaKfT3g==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 @@ -5365,27 +5609,27 @@ packages: dependencies: '@next/eslint-plugin-next': 13.4.19 '@rushstack/eslint-patch': 1.3.3 - '@typescript-eslint/parser': 6.4.1(eslint@8.47.0)(typescript@4.9.3) - eslint: 8.47.0 + '@typescript-eslint/parser': 6.5.0(eslint@8.48.0)(typescript@4.9.3) + eslint: 8.48.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.4.1)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.47.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.4.1)(eslint-import-resolver-typescript@3.6.0)(eslint@8.47.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.47.0) - eslint-plugin-react: 7.33.2(eslint@8.47.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.47.0) + eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.48.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.48.0) + eslint-plugin-react: 7.33.2(eslint@8.48.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.48.0) typescript: 4.9.3 transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color dev: true - /eslint-config-prettier@9.0.0(eslint@8.47.0): + /eslint-config-prettier@9.0.0(eslint@8.48.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.47.0 + eslint: 8.48.0 dev: true /eslint-import-resolver-node@0.3.9: @@ -5398,7 +5642,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.4.1)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.47.0): + /eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.48.0): resolution: {integrity: sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5407,12 +5651,12 @@ packages: dependencies: debug: 4.3.4 enhanced-resolve: 5.15.0 - eslint: 8.47.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.4.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.47.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.4.1)(eslint-import-resolver-typescript@3.6.0)(eslint@8.47.0) + eslint: 8.48.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0) fast-glob: 3.3.1 get-tsconfig: 4.7.0 - is-core-module: 2.12.1 + is-core-module: 2.13.0 is-glob: 4.0.3 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -5421,7 +5665,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.4.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.47.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -5442,16 +5686,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.4.1(eslint@8.47.0)(typescript@4.9.3) + '@typescript-eslint/parser': 6.5.0(eslint@8.48.0)(typescript@4.9.3) debug: 3.2.7 - eslint: 8.47.0 + eslint: 8.48.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.4.1)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.47.0) + eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.48.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.4.1)(eslint-import-resolver-typescript@3.6.0)(eslint@8.47.0): + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0): resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: @@ -5461,23 +5705,23 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.4.1(eslint@8.47.0)(typescript@4.9.3) + '@typescript-eslint/parser': 6.5.0(eslint@8.48.0)(typescript@4.9.3) array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 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: 8.48.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.4.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.47.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.5.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0) has: 1.0.3 is-core-module: 2.13.0 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.6 - object.groupby: 1.0.0 - object.values: 1.1.6 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: @@ -5486,13 +5730,13 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.47.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.48.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.21.5 + '@babel/runtime': 7.22.11 aria-query: 5.3.0 array-includes: 3.1.6 array.prototype.flatmap: 1.3.1 @@ -5501,17 +5745,17 @@ packages: axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.47.0 + eslint: 8.48.0 has: 1.0.3 jsx-ast-utils: 3.3.5 language-tags: 1.0.5 minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 + object.entries: 1.1.7 + object.fromentries: 2.0.7 semver: 6.3.1 dev: true - /eslint-plugin-prettier@5.0.0(eslint-config-prettier@9.0.0)(eslint@8.47.0)(prettier@3.0.2): + /eslint-plugin-prettier@5.0.0(eslint-config-prettier@9.0.0)(eslint@8.48.0)(prettier@3.0.3): resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5525,23 +5769,23 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.47.0 - eslint-config-prettier: 9.0.0(eslint@8.47.0) - prettier: 3.0.2 + eslint: 8.48.0 + eslint-config-prettier: 9.0.0(eslint@8.48.0) + prettier: 3.0.3 prettier-linter-helpers: 1.0.0 synckit: 0.8.5 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.47.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.48.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} 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 + eslint: 8.48.0 dev: true - /eslint-plugin-react@7.33.2(eslint@8.47.0): + /eslint-plugin-react@7.33.2(eslint@8.48.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} engines: {node: '>=4'} peerDependencies: @@ -5552,38 +5796,38 @@ packages: array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 es-iterator-helpers: 1.0.14 - eslint: 8.47.0 + eslint: 8.48.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - object.hasown: 1.1.2 - object.values: 1.1.6 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 prop-types: 15.8.1 resolve: 2.0.0-next.4 semver: 6.3.1 - string.prototype.matchall: 4.0.8 + string.prototype.matchall: 4.0.9 dev: true - /eslint-plugin-simple-import-sort@10.0.0(eslint@8.47.0): + /eslint-plugin-simple-import-sort@10.0.0(eslint@8.48.0): resolution: {integrity: sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==} peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: 8.47.0 + eslint: 8.48.0 dev: true - /eslint-plugin-sonarjs@0.20.0(eslint@8.47.0): + /eslint-plugin-sonarjs@0.20.0(eslint@8.48.0): resolution: {integrity: sha512-BRhZ7BY/oTr6DDaxvx58ReTg7R+J8T+Y2ZVGgShgpml25IHBTIG7EudUtHuJD1zhtMgUEt59x3VNvUQRo2LV6w==} engines: {node: '>=14'} peerDependencies: eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.47.0 + eslint: 8.48.0 dev: true - /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.4.1)(eslint@8.47.0): + /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.5.0)(eslint@8.48.0): resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -5593,8 +5837,8 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.4.1(@typescript-eslint/parser@6.4.1)(eslint@8.47.0)(typescript@4.9.3) - eslint: 8.47.0 + '@typescript-eslint/eslint-plugin': 6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.48.0)(typescript@4.9.3) + eslint: 8.48.0 eslint-rule-composer: 0.3.0 dev: true @@ -5616,16 +5860,16 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.47.0: - resolution: {integrity: sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==} + /eslint@8.48.0: + resolution: {integrity: sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==} 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/eslint-utils': 4.4.0(eslint@8.48.0) '@eslint-community/regexpp': 4.8.0 '@eslint/eslintrc': 2.1.2 '@eslint/js': 8.48.0 - '@humanwhocodes/config-array': 0.11.10 + '@humanwhocodes/config-array': 0.11.11 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 @@ -5705,6 +5949,18 @@ packages: engines: {node: '>= 0.6'} dev: true + /event-stream@3.3.4: + resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} + dependencies: + duplexer: 0.1.2 + from: 0.1.7 + map-stream: 0.1.0 + pause-stream: 0.0.11 + split: 0.3.3 + stream-combiner: 0.0.4 + through: 2.3.8 + dev: true + /events@1.1.1: resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==} engines: {node: '>=0.4.x'} @@ -5740,6 +5996,17 @@ packages: strip-final-newline: 3.0.0 dev: true + /expect@29.6.4: + resolution: {integrity: sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.6.4 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.6.4 + jest-message-util: 29.6.3 + jest-util: 29.6.3 + dev: true + /express@4.18.2: resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} @@ -5815,17 +6082,6 @@ packages: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} dev: true - /fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - /fast-glob@3.3.1: resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} @@ -5835,16 +6091,16 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 - dev: true /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - /fast-jwt@1.7.2: - resolution: {integrity: sha512-OEInypGXJhtURzq9GbFM5KaALUu9+4IV3kJEbWPuqOBN5JBe7A51Tx0CaQYHGC9GNfZnr5npA0lCIMaWiZmz/A==} - engines: {node: '>=14 <20'} + /fast-jwt@3.2.0: + resolution: {integrity: sha512-RELkgZpWwu5BsUgylCjuu9RBwg3mofXd1bVzqD3V3aH4uew2bF2A+nYp1sZbmvPGf/k7sLBnKuzpQA00CM+gnA==} + engines: {node: '>=14 <22'} dependencies: + '@lukeed/ms': 2.0.1 asn1.js: 5.4.1 ecdsa-sig-formatter: 1.0.11 mnemonist: 0.39.5 @@ -5863,27 +6119,19 @@ packages: /fast-url-parser@1.1.3: resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} dependencies: - punycode: 1.3.2 + punycode: 1.4.1 dev: true - /fast-xml-parser@4.1.2: - resolution: {integrity: sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg==} - hasBin: true - dependencies: - strnum: 1.0.5 - /fast-xml-parser@4.2.5: resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} hasBin: true dependencies: strnum: 1.0.5 - dev: true /fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 - dev: true /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} @@ -5897,7 +6145,6 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - dev: true /finalhandler@1.2.0: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} @@ -5957,7 +6204,7 @@ packages: resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} dev: true - /follow-redirects@1.15.2: + /follow-redirects@1.15.2(debug@4.3.4): resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} peerDependencies: @@ -5965,6 +6212,8 @@ packages: peerDependenciesMeta: debug: optional: true + dependencies: + debug: 4.3.4 /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -5972,16 +6221,32 @@ packages: is-callable: 1.2.7 dev: true + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + /forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} dev: true + /fraction.js@4.2.1: + resolution: {integrity: sha512-/KxoyCnPM0GwYI4NN0Iag38Tqt+od3/mLuguepLgCAKPn0ZhC544nssAW0tG2/00zXEYl9W+7hwAIpLHo6Oc7Q==} + /fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} dev: true + /from@0.1.7: + resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} + dev: true + /fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} dev: true @@ -6039,15 +6304,13 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true - /function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -6069,6 +6332,10 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true + /get-func-name@2.0.0: + resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + dev: true + /get-intrinsic@1.2.1: resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} dependencies: @@ -6107,18 +6374,25 @@ packages: engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - dev: true /glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 - dev: true /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - dev: false + + /glob@7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 /glob@7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} @@ -6186,7 +6460,7 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.12 + fast-glob: 3.3.1 ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 @@ -6297,7 +6571,6 @@ packages: engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 - dev: true /hash-it@6.0.0: resolution: {integrity: sha512-KHzmSFx1KwyMPw0kXeeUD752q/Kfbzhy6dAZrjXV9kAIXGqzGvv8vhkUqj+2MGZldTo0IBpw6v7iWE7uxsvH0w==} @@ -6342,6 +6615,17 @@ packages: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true + /html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + dependencies: + whatwg-encoding: 2.0.0 + dev: true + + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + /html-void-elements@1.0.5: resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} dev: false @@ -6357,6 +6641,27 @@ packages: toidentifier: 1.0.1 dev: true + /http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + /human-id@1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} dev: true @@ -6378,6 +6683,13 @@ packages: safer-buffer: 2.1.2 dev: true + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + /ieee754@1.1.13: resolution: {integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==} dev: true @@ -6545,7 +6857,6 @@ packages: engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 - dev: true /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} @@ -6573,20 +6884,13 @@ packages: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true dependencies: - ci-info: 3.8.0 - dev: true - - /is-core-module@2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} - dependencies: - has: 1.0.3 + ci-info: 3.8.0 dev: true /is-core-module@2.13.0: resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} dependencies: has: 1.0.3 - dev: true /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} @@ -6619,7 +6923,6 @@ packages: /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - dev: true /is-finalizationregistry@1.0.2: resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} @@ -6649,7 +6952,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - dev: true /is-hexadecimal@1.0.4: resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} @@ -6693,7 +6995,6 @@ packages: /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - dev: true /is-obj@2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} @@ -6715,6 +7016,10 @@ packages: engines: {node: '>=8'} dev: false + /is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: true + /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -6829,6 +7134,39 @@ packages: dependencies: ws: 8.13.0 + /istanbul-lib-coverage@3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + dependencies: + istanbul-lib-coverage: 3.2.0 + make-dir: 4.0.0 + supports-color: 7.2.0 + dev: true + + /istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + dependencies: + debug: 4.3.4 + istanbul-lib-coverage: 3.2.0 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports@3.1.6: + resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + dev: true + /iterator.prototype@1.1.0: resolution: {integrity: sha512-rjuhAk1AJ1fssphHD0IFV6TWL40CwRZ53FrztKx43yk2v6rguBYsY4Bj1VU4HmoMmKwZUlx7mfnhDf9cOp4YTw==} dependencies: @@ -6839,14 +7177,85 @@ packages: reflect.getprototypeof: 1.0.3 dev: true + /jest-diff@29.6.4: + resolution: {integrity: sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.6.3 + dev: true + + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-matcher-utils@29.6.4: + resolution: {integrity: sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.6.4 + jest-get-type: 29.6.3 + pretty-format: 29.6.3 + dev: true + + /jest-message-util@29.6.3: + resolution: {integrity: sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': 7.22.13 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.5 + pretty-format: 29.6.3 + slash: 3.0.0 + stack-utils: 2.0.6 + dev: true + + /jest-util@29.6.3: + resolution: {integrity: sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 18.17.12 + chalk: 4.1.2 + ci-info: 3.8.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + dev: true + + /jiti@1.19.3: + resolution: {integrity: sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==} + hasBin: true + /jmespath@0.16.0: resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==} engines: {node: '>= 0.6.0'} dev: true + /joi@17.10.0: + resolution: {integrity: sha512-hrazgRSlhzacZ69LdcKfhi3Vu13z2yFfoAzmEov3yFIJlatTdVGUW6vle1zjH8qkzdCn/qGw8rapjqsObbYXAg==} + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.4 + '@sideway/formula': 3.0.1 + '@sideway/pinpoint': 2.0.0 + dev: true + /jose@4.14.4: resolution: {integrity: sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==} + /joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + dev: true + /js-sdsl@4.3.0: resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} @@ -6867,6 +7276,44 @@ packages: argparse: 2.0.1 dev: true + /jsdom@22.1.0: + resolution: {integrity: sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==} + engines: {node: '>=16'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + dependencies: + abab: 2.0.6 + cssstyle: 3.0.0 + data-urls: 4.0.0 + decimal.js: 10.4.3 + domexception: 4.0.0 + form-data: 4.0.0 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.7 + parse5: 7.1.2 + rrweb-cssom: 0.6.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.3 + w3c-xmlserializer: 4.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 12.0.1 + ws: 8.13.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + dev: true + /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} @@ -6908,6 +7355,10 @@ packages: engines: {node: '>=6'} hasBin: true + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} + dev: true + /jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: @@ -6933,7 +7384,7 @@ packages: array-includes: 3.1.6 array.prototype.flat: 1.3.1 object.assign: 4.1.4 - object.values: 1.1.6 + object.values: 1.1.7 dev: true /keyv@4.5.3: @@ -6946,7 +7397,12 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - /kysely-codegen@0.10.1(kysely@0.23.5): + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: true + + /kysely-codegen@0.10.1(kysely@0.25.0): resolution: {integrity: sha512-8Bslh952gN5gtucRv4jTZDFD18RBioS6M50zHfe5kwb5iSyEAunU4ZYMdHzkHraa4zxjg5/183XlOryBCXLRIw==} hasBin: true peerDependencies: @@ -6964,23 +7420,23 @@ packages: dependencies: chalk: 4.1.2 dotenv: 16.3.1 - kysely: 0.23.5 + kysely: 0.25.0 micromatch: 4.0.5 minimist: 1.2.8 dev: true - /kysely-data-api@0.2.1(@aws-sdk/client-rds-data@3.398.0)(kysely@0.23.5): + /kysely-data-api@0.2.1(@aws-sdk/client-rds-data@3.398.0)(kysely@0.25.0): resolution: {integrity: sha512-KmASvF1gmjVqyU9WOUXhCQlv29ofR+xc2DhjaIomz1+Bjd/VtR2/3g4ZuXwG1L4lWGKxMuo5iOvK3XyPbB4LdQ==} peerDependencies: '@aws-sdk/client-rds-data': 3.x kysely: 0.x dependencies: '@aws-sdk/client-rds-data': 3.398.0 - kysely: 0.23.5 + kysely: 0.25.0 dev: true - /kysely@0.23.5: - resolution: {integrity: sha512-TH+b56pVXQq0tsyooYLeNfV11j6ih7D50dyN8tkM0e7ndiUH28Nziojiog3qRFlmEj9XePYdZUrNJ2079Qjdow==} + /kysely@0.25.0: + resolution: {integrity: sha512-srn0efIMu5IoEBk0tBmtGnoUss4uwvxtbFQWG/U2MosfqIace1l43IFP1PmEpHRDp+Z79xIcKEqmHH3dAvQdQA==} engines: {node: '>=14.0.0'} dev: true @@ -6994,6 +7450,11 @@ packages: language-subtag-registry: 0.3.22 dev: true + /lazy-ass@1.6.0: + resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==} + engines: {node: '> 0.8'} + dev: true + /lazystream@1.0.1: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} @@ -7013,8 +7474,16 @@ packages: type-check: 0.4.0 dev: true + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + /load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true /load-yaml-file@0.2.0: @@ -7027,6 +7496,11 @@ packages: strip-bom: 3.0.0 dev: true + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + dev: true + /locate-path@3.0.0: resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} engines: {node: '>=6'} @@ -7069,6 +7543,10 @@ packages: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true + /lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + dev: true + /lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} dev: true @@ -7103,6 +7581,12 @@ packages: dependencies: js-tokens: 4.0.0 + /loupe@2.3.6: + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + dependencies: + get-func-name: 2.0.0 + dev: true + /lru-cache@10.0.1: resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} engines: {node: 14 || >=16.14} @@ -7131,6 +7615,24 @@ packages: engines: {node: '>=12'} dev: true + /magic-string@0.30.3: + resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + dependencies: + semver: 7.5.4 + dev: true + + /make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + dev: true + /map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} @@ -7141,6 +7643,10 @@ packages: engines: {node: '>=8'} dev: true + /map-stream@0.1.0: + resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} + dev: true + /md5@2.3.0: resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} dependencies: @@ -7232,7 +7738,6 @@ packages: /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - dev: true /methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} @@ -7254,7 +7759,6 @@ packages: dependencies: braces: 3.0.2 picomatch: 2.3.1 - dev: true /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} @@ -7367,6 +7871,15 @@ packages: hasBin: true dev: false + /mlly@1.4.1: + resolution: {integrity: sha512-SCDs78Q2o09jiZiE2WziwVBEqXQ02XkGdUy45cbJf+BpYRIjArXRJ1Wbowxkb+NaM9DWvS3UC9GiO/6eqvQ/pg==} + dependencies: + acorn: 8.10.0 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.3.0 + dev: true + /mnemonist@0.39.5: resolution: {integrity: sha512-FPUtkhtJ0efmEFGpU14x7jGbTB+s18LrzRL2KgoWz9YvcY3cPomz8tih01GbHwnGk/OmkOKfqd/RAQoc8Lm7DQ==} dependencies: @@ -7449,11 +7962,17 @@ packages: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} dev: true + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: false /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -7464,8 +7983,8 @@ packages: engines: {node: '>= 0.6'} dev: true - /next-auth@4.22.1(next@13.4.12)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-NTR3f6W7/AWXKw8GSsgSyQcDW6jkslZLH8AiZa5PQ09w1kR8uHtR9rez/E9gAq/o17+p0JYHE8QjF3RoniiObA==} + /next-auth@4.23.1(next@13.4.12)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-mL083z8KgRtlrIV6CDca2H1kduWJuK/3pTS0Fe2og15KOm4v2kkLGdSDfc2g+019aEBrJUT0pPW2Xx42ImN1WA==} peerDependencies: next: ^12.2.5 || ^13 nodemailer: ^6.6.5 @@ -7475,7 +7994,7 @@ packages: nodemailer: optional: true dependencies: - '@babel/runtime': 7.21.5 + '@babel/runtime': 7.22.11 '@panva/hkdf': 1.1.1 cookie: 0.5.0 jose: 4.14.4 @@ -7530,10 +8049,9 @@ packages: transitivePeerDependencies: - '@babel/core' - babel-plugin-macros - dev: false - /node-fetch@2.6.11: - resolution: {integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==} + /node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 @@ -7551,15 +8069,18 @@ packages: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.2 - semver: 5.7.1 + resolve: 1.22.4 + semver: 5.7.2 validate-npm-package-license: 3.0.4 dev: true /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - dev: true + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} /npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} @@ -7583,6 +8104,10 @@ packages: transitivePeerDependencies: - supports-color + /nwsapi@2.2.7: + resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} + dev: true + /oauth@0.9.15: resolution: {integrity: sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==} dev: false @@ -7590,12 +8115,15 @@ packages: /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - dev: true /object-hash@2.2.0: resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} engines: {node: '>= 6'} + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + /object-inspect@1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} dev: true @@ -7615,8 +8143,8 @@ packages: object-keys: 1.1.1 dev: true - /object.entries@1.1.6: - resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -7624,8 +8152,8 @@ packages: es-abstract: 1.22.1 dev: true - /object.fromentries@2.0.6: - resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -7633,8 +8161,8 @@ packages: es-abstract: 1.22.1 dev: true - /object.groupby@1.0.0: - resolution: {integrity: sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==} + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -7642,15 +8170,15 @@ packages: get-intrinsic: 1.2.1 dev: true - /object.hasown@1.1.2: - resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} dependencies: define-properties: 1.2.0 es-abstract: 1.22.1 dev: true - /object.values@1.1.6: - resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -7767,6 +8295,13 @@ packages: yocto-queue: 0.1.0 dev: true + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.0.0 + dev: true + /p-locate@3.0.0: resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} engines: {node: '>=6'} @@ -7826,6 +8361,12 @@ packages: lines-and-columns: 1.2.4 dev: true + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + dev: true + /parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -7862,7 +8403,6 @@ packages: /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true /path-scurry@1.10.1: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} @@ -7881,19 +8421,40 @@ packages: engines: {node: '>=8'} dev: true + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + dev: true + + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + + /pause-stream@0.0.11: + resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} + dependencies: + through: 2.3.8 + dev: true + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - dev: true + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} /pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} dev: true + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + /pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -7901,6 +8462,14 @@ packages: find-up: 4.1.0 dev: true + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.4.1 + pathe: 1.1.1 + dev: true + /pkg-up@3.1.0: resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} engines: {node: '>=8'} @@ -7908,6 +8477,67 @@ packages: find-up: 3.0.0 dev: true + /playwright-core@1.37.0: + resolution: {integrity: sha512-1c46jhTH/myQw6sesrcuHVtLoSNfJv8Pfy9t3rs6subY7kARv0HRw5PpyfPYPpPtQvBOmgbE6K+qgYUpj81LAA==} + engines: {node: '>=16'} + hasBin: true + dev: true + + /postcss-import@15.1.0(postcss@8.4.27): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.27 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.4 + + /postcss-js@4.0.1(postcss@8.4.27): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.27 + + /postcss-load-config@4.0.1(postcss@8.4.27): + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.1.0 + postcss: 8.4.27 + yaml: 2.3.2 + + /postcss-nested@6.0.1(postcss@8.4.27): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.27 + postcss-selector-parser: 6.0.13 + + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + /postcss@8.4.14: resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} engines: {node: ^10 || ^12 || >=14} @@ -7915,7 +8545,14 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: false + + /postcss@8.4.27: + resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 /preact-render-to-string@5.2.6(preact@10.17.1): resolution: {integrity: sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==} @@ -7952,24 +8589,27 @@ packages: fast-diff: 1.3.0 dev: true - /prettier@1.19.1: - resolution: {integrity: sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /prettier@2.8.4: - resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==} + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true dev: true - /prettier@3.0.2: - resolution: {integrity: sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==} + /prettier@3.0.3: + resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} engines: {node: '>=14'} hasBin: true dev: true + /pretty-format@29.6.3: + resolution: {integrity: sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + /pretty-format@3.8.0: resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} dev: false @@ -8014,10 +8654,22 @@ packages: ipaddr.js: 1.9.1 dev: true + /ps-tree@1.2.0: + resolution: {integrity: sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==} + engines: {node: '>= 0.10'} + hasBin: true + dependencies: + event-stream: 3.3.4 + dev: true + /pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} dev: true + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + dev: true + /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: @@ -8028,6 +8680,10 @@ packages: resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==} dev: true + /punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + dev: true + /punycode@2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} engines: {node: '>=6'} @@ -8057,9 +8713,12 @@ packages: deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. dev: true + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true /quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} @@ -8089,12 +8748,15 @@ packages: loose-envify: 1.4.0 react: 18.2.0 scheduler: 0.23.0 - dev: false /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + /react-reconciler@0.29.0(react@18.2.0): resolution: {integrity: sha512-wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==} engines: {node: '>=0.10.0'} @@ -8112,6 +8774,11 @@ packages: dependencies: loose-envify: 1.4.0 + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + /read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -8178,7 +8845,6 @@ packages: engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - dev: true /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} @@ -8200,8 +8866,8 @@ packages: which-builtin-type: 1.1.3 dev: true - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} /regexp.prototype.flags@1.5.0: resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} @@ -8270,6 +8936,10 @@ packages: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} dev: true + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -8284,15 +8954,6 @@ packages: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} dev: true - /resolve@1.22.2: - resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} - hasBin: true - dependencies: - is-core-module: 2.12.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - /resolve@1.22.4: resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} hasBin: true @@ -8300,13 +8961,12 @@ packages: is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true /resolve@2.0.0-next.4: resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} hasBin: true dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -8322,7 +8982,6 @@ packages: /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true /rfdc@1.3.0: resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} @@ -8334,6 +8993,18 @@ packages: glob: 7.2.3 dev: true + /rollup@3.28.1: + resolution: {integrity: sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /rrweb-cssom@0.6.0: + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + dev: true + /run-applescript@5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} engines: {node: '>=12'} @@ -8345,6 +9016,11 @@ packages: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 + + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + dependencies: + tslib: 2.6.2 dev: true /safe-array-concat@1.0.0: @@ -8379,6 +9055,13 @@ packages: resolution: {integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==} dev: true + /saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + dependencies: + xmlchars: 2.2.0 + dev: true + /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: @@ -8392,8 +9075,8 @@ packages: kind-of: 6.0.3 dev: false - /semver@5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true dev: true @@ -8482,6 +9165,10 @@ packages: object-inspect: 1.12.3 dev: true + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true @@ -8516,12 +9203,13 @@ packages: is-fullwidth-code-point: 4.0.0 dev: true - /smartwrap@1.2.5: - resolution: {integrity: sha512-bzWRwHwu0RnWjwU7dFy7tF68pDAx/zMSu3g7xr9Nx5J0iSImYInglwEVExyHLxXljy6PWMjkSAbwF7t2mPnRmg==} - deprecated: Backported compatibility to node > 6 + /smartwrap@2.0.2: + resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} + engines: {node: '>=6'} hasBin: true dependencies: - breakword: 1.0.5 + array.prototype.flat: 1.3.1 + breakword: 1.0.6 grapheme-splitter: 1.0.4 strip-ansi: 6.0.1 wcwidth: 1.0.1 @@ -8531,7 +9219,6 @@ packages: /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - dev: false /source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -8543,7 +9230,13 @@ packages: /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - dev: false + + /source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + dependencies: + whatwg-url: 7.1.0 + dev: true /space-separated-tokens@1.1.5: resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} @@ -8583,11 +9276,17 @@ packages: dependencies: readable-stream: 3.6.2 + /split@0.3.3: + resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} + dependencies: + through: 2.3.8 + dev: true + /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - /sst-aws-cdk@2.84.0: - resolution: {integrity: sha512-gSgfDPqxhkBcEbx+gNFLZ+3DVwZ/ps4m+/Nwk7gKq7Pr/KKEFUbnHGmeuUbD7/jYh9cGbJqpup6gUHqJX4GtHg==} + /sst-aws-cdk@2.91.0: + resolution: {integrity: sha512-vQFs52ANjfEmVqwqcmfCwZVjWsFwQVwbdfLD8stJm/Cl7sZE+DngXX5LfGgF8M1o0F/qbj6d0N00vpVk1q6tSQ==} engines: {node: '>= 14.15.0'} hasBin: true dependencies: @@ -8599,8 +9298,8 @@ packages: fsevents: 2.3.2 dev: true - /sst@2.16.3: - resolution: {integrity: sha512-SdowHylIh0CfaYmTvhSWF4DE0d6f9Lt+Ny8X9A2G4wPEKf+3dTgxz0AqJdI6I5WHccQHIJ1iAinRtTn/W9hBxA==} + /sst@2.24.20: + resolution: {integrity: sha512-o+FkY8DierOY3+/zvL4PbeCI/0CEK6e2m0amEMPVoYlq37ajPwjXDjRCC5ZZlV9PKmUHwHHyXF99PJ1wruah/A==} hasBin: true peerDependencies: '@sls-next/lambda-at-edge': ^3.7.0 @@ -8608,20 +9307,22 @@ packages: '@sls-next/lambda-at-edge': optional: true dependencies: - '@aws-cdk/aws-apigatewayv2-alpha': 2.84.0-alpha.0(aws-cdk-lib@2.84.0)(constructs@10.1.156) - '@aws-cdk/aws-apigatewayv2-authorizers-alpha': 2.84.0-alpha.0(@aws-cdk/aws-apigatewayv2-alpha@2.84.0-alpha.0)(aws-cdk-lib@2.84.0)(constructs@10.1.156) - '@aws-cdk/aws-apigatewayv2-integrations-alpha': 2.84.0-alpha.0(@aws-cdk/aws-apigatewayv2-alpha@2.84.0-alpha.0)(aws-cdk-lib@2.84.0)(constructs@10.1.156) - '@aws-cdk/cloud-assembly-schema': 2.84.0 - '@aws-cdk/cloudformation-diff': 2.84.0 - '@aws-cdk/cx-api': 2.84.0(@aws-cdk/cloud-assembly-schema@2.84.0) + '@aws-cdk/aws-apigatewayv2-alpha': 2.91.0-alpha.0(aws-cdk-lib@2.91.0)(constructs@10.2.69) + '@aws-cdk/aws-apigatewayv2-authorizers-alpha': 2.91.0-alpha.0(@aws-cdk/aws-apigatewayv2-alpha@2.91.0-alpha.0)(aws-cdk-lib@2.91.0)(constructs@10.2.69) + '@aws-cdk/aws-apigatewayv2-integrations-alpha': 2.91.0-alpha.0(@aws-cdk/aws-apigatewayv2-alpha@2.91.0-alpha.0)(aws-cdk-lib@2.91.0)(constructs@10.2.69) + '@aws-cdk/cloud-assembly-schema': 2.91.0 + '@aws-cdk/cloudformation-diff': 2.91.0 + '@aws-cdk/cx-api': 2.91.0(@aws-cdk/cloud-assembly-schema@2.91.0) + '@aws-crypto/sha256-js': 5.0.0 '@aws-sdk/client-cloudformation': 3.398.0 + '@aws-sdk/client-ecs': 3.398.0 '@aws-sdk/client-eventbridge': 3.398.0(@aws-sdk/signature-v4-crt@3.398.0) '@aws-sdk/client-iam': 3.398.0 '@aws-sdk/client-iot': 3.398.0 '@aws-sdk/client-iot-data-plane': 3.398.0 - '@aws-sdk/client-lambda': 3.312.0 + '@aws-sdk/client-lambda': 3.398.0 '@aws-sdk/client-rds-data': 3.398.0 - '@aws-sdk/client-s3': 3.312.0(@aws-sdk/signature-v4-crt@3.398.0) + '@aws-sdk/client-s3': 3.400.0(@aws-sdk/signature-v4-crt@3.398.0) '@aws-sdk/client-ssm': 3.398.0 '@aws-sdk/client-sts': 3.398.0 '@aws-sdk/config-resolver': 3.374.0 @@ -8633,25 +9334,26 @@ packages: '@babel/core': 7.22.11 '@babel/generator': 7.22.10 '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.11) + '@smithy/signature-v4': 2.0.5 '@trpc/server': 9.16.0 adm-zip: 0.5.10 - aws-cdk-lib: 2.84.0(constructs@10.1.156) + aws-cdk-lib: 2.91.0(constructs@10.2.69) aws-iot-device-sdk: 2.2.12 aws-sdk: 2.1446.0 builtin-modules: 3.2.0 - cdk-assets: 2.84.0 + cdk-assets: 2.91.0 chalk: 5.3.0 chokidar: 3.5.3 ci-info: 3.8.0 colorette: 2.0.20 conf: 10.2.0 - constructs: 10.1.156 + constructs: 10.2.69 cross-spawn: 7.0.3 dendriform-immer-patch-optimiser: 2.1.3(immer@9.0.21) dotenv: 16.3.1 - esbuild: 0.16.13 + esbuild: 0.18.13 express: 4.18.2 - fast-jwt: 1.7.2 + fast-jwt: 3.2.0 get-port: 6.1.2 glob: 8.1.0 graphql: 16.8.0 @@ -8659,15 +9361,15 @@ packages: immer: 9.0.21 ink: 4.3.1(react@18.2.0) ink-spinner: 5.0.0(ink@4.3.1)(react@18.2.0) - kysely: 0.23.5 - kysely-codegen: 0.10.1(kysely@0.23.5) - kysely-data-api: 0.2.1(@aws-sdk/client-rds-data@3.398.0)(kysely@0.23.5) + kysely: 0.25.0 + kysely-codegen: 0.10.1(kysely@0.25.0) + kysely-data-api: 0.2.1(@aws-sdk/client-rds-data@3.398.0)(kysely@0.25.0) minimatch: 6.2.0 openid-client: 5.4.3 ora: 6.3.1 react: 18.2.0 remeda: 1.25.2 - sst-aws-cdk: 2.84.0 + sst-aws-cdk: 2.91.0 tree-kill: 1.2.2 undici: 5.23.0 uuid: 9.0.0 @@ -8694,11 +9396,36 @@ packages: escape-string-regexp: 2.0.0 dev: true + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true + + /start-server-and-test@2.0.0: + resolution: {integrity: sha512-UqKLw0mJbfrsG1jcRLTUlvuRi9sjNuUiDOLI42r7R5fA9dsFoywAy9DoLXNYys9B886E4RCKb+qM1Gzu96h7DQ==} + engines: {node: '>=6'} + hasBin: true + dependencies: + arg: 5.0.2 + bluebird: 3.7.2 + check-more-types: 2.24.0 + debug: 4.3.4 + execa: 5.1.1 + lazy-ass: 1.6.0 + ps-tree: 1.2.0 + wait-on: 7.0.1(debug@4.3.4) + transitivePeerDependencies: + - supports-color + dev: true + /statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} dev: true + /std-env@3.4.3: + resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} + dev: true + /stdin-discarder@0.1.0: resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -8706,6 +9433,12 @@ packages: bl: 5.1.0 dev: true + /stream-combiner@0.0.4: + resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} + dependencies: + duplexer: 0.1.2 + dev: true + /stream-shift@1.0.1: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} @@ -8737,8 +9470,8 @@ packages: strip-ansi: 7.1.0 dev: true - /string.prototype.matchall@4.0.8: - resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} + /string.prototype.matchall@4.0.9: + resolution: {integrity: sha512-6i5hL3MqG/K2G43mWXWgP+qizFW/QH/7kCNN13JrJS5q48FN5IKksLDscexKP3dnmB6cdm9jlNgAsWNLpSykmA==} dependencies: call-bind: 1.0.2 define-properties: 1.2.0 @@ -8839,6 +9572,12 @@ packages: engines: {node: '>=8'} dev: true + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + dependencies: + acorn: 8.10.0 + dev: true + /strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} @@ -8858,7 +9597,19 @@ packages: '@babel/core': 7.22.11 client-only: 0.0.1 react: 18.2.0 - dev: false + + /sucrase@3.34.0: + resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -8876,17 +9627,19 @@ packages: /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - dev: true - /swr@1.0.1(react@18.2.0): - resolution: {integrity: sha512-EPQAxSjoD4IaM49rpRHK0q+/NzcwoT8c0/Ylu/u3/6mFj/CWnQVjNJ0MV2Iuw/U+EJSd2TX5czdAwKPYZIG0YA==} + /swr@1.3.0(react@18.2.0): + resolution: {integrity: sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw==} peerDependencies: - react: ^16.11.0 || ^17.0.0 + react: ^16.11.0 || ^17.0.0 || ^18.0.0 dependencies: - dequal: 2.0.2 react: 18.2.0 dev: false + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true + /synckit@0.8.5: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} engines: {node: ^14.18.0 || >=16.0.0} @@ -8906,6 +9659,36 @@ packages: strip-ansi: 6.0.1 dev: true + /tailwindcss@3.3.3: + resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.5.3 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.1 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.19.3 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.27 + postcss-import: 15.1.0(postcss@8.4.27) + postcss-js: 4.0.1(postcss@8.4.27) + postcss-load-config: 4.0.1(postcss@8.4.27) + postcss-nested: 6.0.1(postcss@8.4.27) + postcss-selector-parser: 6.0.13 + resolve: 1.22.4 + sucrase: 3.34.0 + transitivePeerDependencies: + - ts-node + /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -8938,10 +9721,48 @@ packages: source-map-support: 0.5.21 dev: false + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /tinybench@2.5.0: + resolution: {integrity: sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==} + dev: true + + /tinypool@0.7.0: + resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy@2.1.1: + resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==} + engines: {node: '>=14.0.0'} + dev: true + /titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} engines: {node: '>=12'} @@ -8963,17 +9784,39 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - dev: true /toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} dev: true + /tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} + engines: {node: '>=6'} + dependencies: + psl: 1.9.0 + punycode: 2.3.0 + universalify: 0.2.0 + url-parse: 1.5.10 + dev: true + /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true + /tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + dependencies: + punycode: 2.3.0 + dev: true + + /tr46@4.1.1: + resolution: {integrity: sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==} + engines: {node: '>=14'} + dependencies: + punycode: 2.3.0 + dev: true + /tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -8997,6 +9840,40 @@ packages: typescript: 4.9.3 dev: true + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + /ts-node@10.9.1(@types/node@18.17.12)(typescript@4.9.3): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.9 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 18.17.12 + acorn: 8.10.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.9.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + /tsconfig-paths@3.14.2: resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} dependencies: @@ -9012,17 +9889,115 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tty-table@2.8.13: - resolution: {integrity: sha512-eVV/+kB6fIIdx+iUImhXrO22gl7f6VmmYh0Zbu6C196fe1elcHXd7U6LcLXu0YoVPc2kNesWiukYcdK8ZmJ6aQ==} - engines: {node: '>=8.16.0'} + /tsup@7.2.0(typescript@4.9.3): + resolution: {integrity: sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ==} + engines: {node: '>=16.14'} + hasBin: true + peerDependencies: + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.1.0' + peerDependenciesMeta: + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + dependencies: + bundle-require: 4.0.1(esbuild@0.18.20) + cac: 6.7.14 + chokidar: 3.5.3 + debug: 4.3.4 + esbuild: 0.18.20 + execa: 5.1.1 + globby: 11.1.0 + joycon: 3.1.1 + postcss-load-config: 4.0.1(postcss@8.4.27) + resolve-from: 5.0.0 + rollup: 3.28.1 + source-map: 0.8.0-beta.0 + sucrase: 3.34.0 + tree-kill: 1.2.2 + typescript: 4.9.3 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + + /tty-table@4.2.1: + resolution: {integrity: sha512-xz0uKo+KakCQ+Dxj1D/tKn2FSyreSYWzdkL/BYhgN6oMW808g8QRMuh1atAV9fjTPbWBjfbkKQpI/5rEcnAc7g==} + engines: {node: '>=8.0.0'} hasBin: true dependencies: - chalk: 3.0.0 + chalk: 4.1.2 csv: 5.5.3 - smartwrap: 1.2.5 + kleur: 4.1.5 + smartwrap: 2.0.2 strip-ansi: 6.0.1 wcwidth: 1.0.1 - yargs: 15.4.1 + yargs: 17.7.2 + dev: true + + /turbo-darwin-64@1.10.12: + resolution: {integrity: sha512-vmDfGVPl5/aFenAbOj3eOx3ePNcWVUyZwYr7taRl0ZBbmv2TzjRiFotO4vrKCiTVnbqjQqAFQWY2ugbqCI1kOQ==} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /turbo-darwin-arm64@1.10.12: + resolution: {integrity: sha512-3JliEESLNX2s7g54SOBqqkqJ7UhcOGkS0ywMr5SNuvF6kWVTbuUq7uBU/sVbGq8RwvK1ONlhPvJne5MUqBCTCQ==} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-64@1.10.12: + resolution: {integrity: sha512-siYhgeX0DidIfHSgCR95b8xPee9enKSOjCzx7EjTLmPqPaCiVebRYvbOIYdQWRqiaKh9yfhUtFmtMOMScUf1gg==} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-linux-arm64@1.10.12: + resolution: {integrity: sha512-K/ZhvD9l4SslclaMkTiIrnfcACgos79YcAo4kwc8bnMQaKuUeRpM15sxLpZp3xDjDg8EY93vsKyjaOhdFG2UbA==} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /turbo-windows-64@1.10.12: + resolution: {integrity: sha512-7FSgSwvktWDNOqV65l9AbZwcoueAILeE4L7JvjauNASAjjbuzXGCEq5uN8AQU3U5BOFj4TdXrVmO2dX+lLu8Zg==} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /turbo-windows-arm64@1.10.12: + resolution: {integrity: sha512-gCNXF52dwom1HLY9ry/cneBPOKTBHhzpqhMylcyvJP0vp9zeMQQkt6yjYv+6QdnmELC92CtKNp2FsNZo+z0pyw==} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /turbo@1.10.12: + resolution: {integrity: sha512-WM3+jTfQWnB9W208pmP4oeehZcC6JQNlydb/ZHMRrhmQa+htGhWLCzd6Q9rLe0MwZLPpSPFV2/bN5egCLyoKjQ==} + hasBin: true + requiresBuild: true + optionalDependencies: + turbo-darwin-64: 1.10.12 + turbo-darwin-arm64: 1.10.12 + turbo-linux-64: 1.10.12 + turbo-linux-arm64: 1.10.12 + turbo-windows-64: 1.10.12 + turbo-windows-arm64: 1.10.12 dev: true /type-check@0.4.0: @@ -9032,6 +10007,11 @@ packages: prelude-ls: 1.2.1 dev: true + /type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + /type-fest@0.12.0: resolution: {integrity: sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==} engines: {node: '>=10'} @@ -9116,6 +10096,10 @@ packages: engines: {node: '>=4.2.0'} hasBin: true + /ufo@1.3.0: + resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} + dev: true + /ultron@1.1.1: resolution: {integrity: sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==} dev: true @@ -9190,6 +10174,11 @@ packages: engines: {node: '>= 4.0.0'} dev: true + /universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + dev: true + /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} @@ -9221,6 +10210,13 @@ packages: punycode: 2.3.0 dev: true + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: true + /url@0.10.3: resolution: {integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==} dependencies: @@ -9264,6 +10260,19 @@ packages: hasBin: true dev: true + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + dev: true + + /v8-to-istanbul@9.1.0: + resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.19 + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.9.0 + dev: true + /validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: @@ -9297,13 +10306,157 @@ packages: vfile-message: 2.0.4 dev: false + /vite-node@0.34.3(@types/node@18.17.12): + resolution: {integrity: sha512-+0TzJf1g0tYXj6tR2vEyiA42OPq68QkRZCu/ERSo2PtsDJfBpDyEfuKbRvLmZqi/CgC7SCBtyC+WjTGNMRIaig==} + engines: {node: '>=v14.18.0'} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + mlly: 1.4.1 + pathe: 1.1.1 + picocolors: 1.0.0 + vite: 4.4.9(@types/node@18.17.12) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /vite@4.4.9(@types/node@18.17.12): + resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.17.12 + esbuild: 0.18.20 + postcss: 8.4.27 + rollup: 3.28.1 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vitest@0.34.3(jsdom@22.1.0): + resolution: {integrity: sha512-7+VA5Iw4S3USYk+qwPxHl8plCMhA5rtfwMjgoQXMT7rO5ldWcdsdo3U1QD289JgglGK4WeOzgoLTsGFu6VISyQ==} + engines: {node: '>=v14.18.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + dependencies: + '@types/chai': 4.3.5 + '@types/chai-subset': 1.3.3 + '@types/node': 18.17.12 + '@vitest/expect': 0.34.3 + '@vitest/runner': 0.34.3 + '@vitest/snapshot': 0.34.3 + '@vitest/spy': 0.34.3 + '@vitest/utils': 0.34.3 + acorn: 8.10.0 + acorn-walk: 8.2.0 + cac: 6.7.14 + chai: 4.3.8 + debug: 4.3.4 + jsdom: 22.1.0 + local-pkg: 0.4.3 + magic-string: 0.30.3 + pathe: 1.1.1 + picocolors: 1.0.0 + std-env: 3.4.3 + strip-literal: 1.3.0 + tinybench: 2.5.0 + tinypool: 0.7.0 + vite: 4.4.9(@types/node@18.17.12) + vite-node: 0.34.3(@types/node@18.17.12) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + + /w3c-xmlserializer@4.0.0: + resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} + engines: {node: '>=14'} + dependencies: + xml-name-validator: 4.0.0 + dev: true + + /wait-on@7.0.1(debug@4.3.4): + resolution: {integrity: sha512-9AnJE9qTjRQOlTZIldAaf/da2eW0eSRSgcqq85mXQja/DW3MriHxkpODDSUEg+Gri/rKEcXUZHe+cevvYItaog==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + axios: 0.27.2(debug@4.3.4) + joi: 17.10.0 + lodash: 4.17.21 + minimist: 1.2.8 + rxjs: 7.8.1 + transitivePeerDependencies: + - debug + dev: true + /watchpack@2.4.0: resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} engines: {node: '>=10.13.0'} dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - dev: false /wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -9330,6 +10483,15 @@ packages: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true + /webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + + /webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + dev: true + /websocket-stream@5.5.2: resolution: {integrity: sha512-8z49MKIHbGk3C4HtuHWDtYX8mYej1wWabjthC/RupM9ngeukU4IWoM46dgth1UOS/T4/IqgEdCDJuMe2039OQQ==} dependencies: @@ -9344,6 +10506,26 @@ packages: - utf-8-validate dev: true + /whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + dependencies: + iconv-lite: 0.6.3 + dev: true + + /whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + dev: true + + /whatwg-url@12.0.1: + resolution: {integrity: sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==} + engines: {node: '>=14'} + dependencies: + tr46: 4.1.1 + webidl-conversions: 7.0.0 + dev: true + /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: @@ -9351,6 +10533,14 @@ packages: webidl-conversions: 3.0.1 dev: true + /whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -9365,7 +10555,7 @@ packages: resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} engines: {node: '>= 0.4'} dependencies: - function.prototype.name: 1.1.5 + function.prototype.name: 1.1.6 has-tostringtag: 1.0.0 is-async-function: 2.0.0 is-date-object: 1.0.5 @@ -9426,6 +10616,15 @@ packages: isexe: 2.0.0 dev: true + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + /widest-line@4.0.1: resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} engines: {node: '>=12'} @@ -9503,6 +10702,11 @@ packages: utf-8-validate: optional: true + /xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + dev: true + /xml2js@0.5.0: resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} engines: {node: '>=4.0.0'} @@ -9516,6 +10720,10 @@ packages: engines: {node: '>=4.0'} dev: true + /xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + dev: true + /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -9544,6 +10752,10 @@ packages: engines: {node: '>= 6'} dev: true + /yaml@2.3.2: + resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} + engines: {node: '>= 14'} + /yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} engines: {node: '>=6'} @@ -9605,11 +10817,21 @@ packages: yargs-parser: 21.1.1 dev: true + /yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + dev: true + /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true + /yoga-wasm-web@0.3.3: resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==} dev: true @@ -9625,7 +10847,6 @@ packages: /zod@3.21.4: resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} - dev: false /zod@3.22.2: resolution: {integrity: sha512-wvWkphh5WQsJbVk1tbx1l1Ly4yg+XecD+Mq280uBGt9wa5BKSWf4Mhp6GmrkPixhMxmabYY7RbzlwVP32pbGCg==} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index fcffca6b..c86f7b3a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,6 @@ packages: - 'packages/*' - 'example' + - 'example_sst' - 'docs' + - 'examples/*' diff --git a/turbo.json b/turbo.json new file mode 100644 index 00000000..a2182ff7 --- /dev/null +++ b/turbo.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://turbo.build/schema.json", + "globalEnv": [ + "APP_ROUTER_URL", + "PAGES_ROUTER_URL", + "APP_PAGES_ROUTER_URL" + ], + "pipeline": { + "build": { + "dependsOn": [ + "^build" + ], + "outputs": [ + "dist/**" + ] + }, + "e2e:test": { + "dependsOn": [ + "^build" + ] + }, + "test": { + "dependsOn": ["^build"], + "cache": false + }, + "lint": { + "outputs": [] + }, + "dev": { + "cache": false + }, + "clean": { + "cache": false + } + } +} \ No newline at end of file