From d98bbdc9d2222984c814f97fb9ecbe5e6de29307 Mon Sep 17 00:00:00 2001 From: Khue Nguyen Date: Mon, 14 Aug 2023 12:46:34 -0700 Subject: [PATCH 01/26] Feat: Add unit and e2e testing --- .github/workflows/e2e.yml | 94 + .gitignore | 9 +- .npmrc | 1 + .vscode/settings.json | 10 + example/package.json | 3 +- example/stacks/AppDirOnly.ts | 16 + example/stacks/Example.ts | 18 + example/stacks/PagesOnly.ts | 16 + package.json | 7 +- packages/app-dir/.gitignore | 35 + packages/app-dir/README.md | 34 + .../albums/@modal/(.)[album]/[song]/page.tsx | 26 + .../app/albums/@modal/(.)[album]/page.tsx | 11 + .../app-dir/app/albums/@modal/default.tsx | 3 + .../app/albums/[album]/[song]/page.tsx | 20 + packages/app-dir/app/albums/[album]/page.tsx | 3 + packages/app-dir/app/albums/layout.tsx | 8 + packages/app-dir/app/albums/page.tsx | 9 + packages/app-dir/app/api/client/route.ts | 6 + packages/app-dir/app/api/page.tsx | 34 + packages/app-dir/app/globals.css | 27 + packages/app-dir/app/isr/page.tsx | 9 + packages/app-dir/app/layout.tsx | 22 + packages/app-dir/app/page.tsx | 36 + .../app-dir/app/redirect-destination/page.tsx | 3 + .../app-dir/app/rewrite-destination/page.tsx | 3 + .../app-dir/app/server-actions/client.tsx | 23 + packages/app-dir/app/server-actions/page.tsx | 7 + packages/app-dir/app/ssr/loading.tsx | 3 + packages/app-dir/app/ssr/page.tsx | 10 + packages/app-dir/middleware.ts | 33 + packages/app-dir/next.config.js | 11 + packages/app-dir/package.json | 29 + packages/app-dir/postcss.config.js | 6 + packages/app-dir/public/favicon.ico | Bin 0 -> 4286 bytes packages/app-dir/public/static/frank.webp | Bin 0 -> 8830 bytes packages/app-dir/sst-env.d.ts | 1 + packages/app-dir/tailwind.config.ts | 20 + packages/app-dir/tsconfig.json | 28 + packages/core/api/index.ts | 37 + packages/core/api/songs.json | 36 + packages/core/components/Album/Album.tsx | 13 + packages/core/components/Album/Song.tsx | 17 + packages/core/components/Album/index.tsx | 17 + packages/core/components/Modal/index.tsx | 49 + packages/core/components/Nav/index.tsx | 24 + packages/core/package.json | 11 + packages/core/tsconfig.json | 38 + .../open-next/src/adapters/server-adapter.ts | 12 +- packages/open-next/src/build.ts | 4 +- packages/pages-only/.gitignore | 36 + packages/pages-only/next.config.js | 7 + packages/pages-only/package.json | 26 + packages/pages-only/postcss.config.js | 8 + packages/pages-only/public/favicon.ico | Bin 0 -> 4286 bytes packages/pages-only/public/static/frank.webp | Bin 0 -> 8830 bytes packages/pages-only/src/pages/_app.tsx | 6 + packages/pages-only/src/pages/_document.tsx | 13 + packages/pages-only/src/pages/api/hello.ts | 10 + packages/pages-only/src/pages/index.tsx | 27 + packages/pages-only/src/pages/isr/index.tsx | 15 + packages/pages-only/src/pages/ssr/index.tsx | 15 + packages/pages-only/src/styles/globals.css | 111 + packages/pages-only/sst-env.d.ts | 1 + packages/pages-only/tsconfig.json | 24 + packages/tests-e2e/README.md | 31 + packages/tests-e2e/package.json | 18 + packages/tests-e2e/playwright.config.js | 29 + .../tests-e2e/tests/appDirOnly/api.test.ts | 29 + .../tests-e2e/tests/appDirOnly/isr.test.ts | 39 + .../appDirOnly/middleware.redirect.test.ts | 17 + .../appDirOnly/middleware.rewrite.test.ts | 16 + .../tests-e2e/tests/appDirOnly/modals.test.ts | 22 + .../tests/appDirOnly/serverActions.test.ts | 22 + .../tests-e2e/tests/appDirOnly/ssr.test.ts | 38 + .../tests-e2e/tests/pagesOnly/isr.test.ts | 40 + .../tests-e2e/tests/pagesOnly/ssr.test.ts | 31 + packages/tests-e2e/tsconfig.json | 33 + packages/tests-unit/package.json | 22 + packages/tests-unit/setup.ts | 4 + packages/tests-unit/tests/binary.test.ts | 107 + packages/tests-unit/tests/example.test.ts | 6 + packages/tests-unit/tsconfig.json | 33 + packages/tests-unit/vite.config.ts | 16 + packages/utils/package.json | 29 + packages/utils/src/binary.ts | 64 + packages/utils/src/index.ts | 16 + packages/utils/src/logger.ts | 21 + packages/utils/tsconfig.json | 14 + pnpm-lock.yaml | 3972 +++++++++++------ turbo.json | 36 + 91 files changed, 4491 insertions(+), 1405 deletions(-) create mode 100644 .github/workflows/e2e.yml create mode 100644 .vscode/settings.json create mode 100644 example/stacks/AppDirOnly.ts create mode 100644 example/stacks/Example.ts create mode 100644 example/stacks/PagesOnly.ts create mode 100644 packages/app-dir/.gitignore create mode 100644 packages/app-dir/README.md create mode 100644 packages/app-dir/app/albums/@modal/(.)[album]/[song]/page.tsx create mode 100644 packages/app-dir/app/albums/@modal/(.)[album]/page.tsx create mode 100644 packages/app-dir/app/albums/@modal/default.tsx create mode 100644 packages/app-dir/app/albums/[album]/[song]/page.tsx create mode 100644 packages/app-dir/app/albums/[album]/page.tsx create mode 100644 packages/app-dir/app/albums/layout.tsx create mode 100644 packages/app-dir/app/albums/page.tsx create mode 100644 packages/app-dir/app/api/client/route.ts create mode 100644 packages/app-dir/app/api/page.tsx create mode 100644 packages/app-dir/app/globals.css create mode 100644 packages/app-dir/app/isr/page.tsx create mode 100644 packages/app-dir/app/layout.tsx create mode 100644 packages/app-dir/app/page.tsx create mode 100644 packages/app-dir/app/redirect-destination/page.tsx create mode 100644 packages/app-dir/app/rewrite-destination/page.tsx create mode 100644 packages/app-dir/app/server-actions/client.tsx create mode 100644 packages/app-dir/app/server-actions/page.tsx create mode 100644 packages/app-dir/app/ssr/loading.tsx create mode 100644 packages/app-dir/app/ssr/page.tsx create mode 100644 packages/app-dir/middleware.ts create mode 100644 packages/app-dir/next.config.js create mode 100644 packages/app-dir/package.json create mode 100644 packages/app-dir/postcss.config.js create mode 100644 packages/app-dir/public/favicon.ico create mode 100644 packages/app-dir/public/static/frank.webp create mode 100644 packages/app-dir/sst-env.d.ts create mode 100644 packages/app-dir/tailwind.config.ts create mode 100644 packages/app-dir/tsconfig.json create mode 100644 packages/core/api/index.ts create mode 100644 packages/core/api/songs.json create mode 100644 packages/core/components/Album/Album.tsx create mode 100644 packages/core/components/Album/Song.tsx create mode 100644 packages/core/components/Album/index.tsx create mode 100644 packages/core/components/Modal/index.tsx create mode 100644 packages/core/components/Nav/index.tsx create mode 100644 packages/core/package.json create mode 100644 packages/core/tsconfig.json create mode 100644 packages/pages-only/.gitignore create mode 100644 packages/pages-only/next.config.js create mode 100644 packages/pages-only/package.json create mode 100644 packages/pages-only/postcss.config.js create mode 100644 packages/pages-only/public/favicon.ico create mode 100644 packages/pages-only/public/static/frank.webp create mode 100644 packages/pages-only/src/pages/_app.tsx create mode 100644 packages/pages-only/src/pages/_document.tsx create mode 100644 packages/pages-only/src/pages/api/hello.ts create mode 100644 packages/pages-only/src/pages/index.tsx create mode 100644 packages/pages-only/src/pages/isr/index.tsx create mode 100644 packages/pages-only/src/pages/ssr/index.tsx create mode 100644 packages/pages-only/src/styles/globals.css create mode 100644 packages/pages-only/sst-env.d.ts create mode 100644 packages/pages-only/tsconfig.json create mode 100644 packages/tests-e2e/README.md create mode 100644 packages/tests-e2e/package.json create mode 100644 packages/tests-e2e/playwright.config.js create mode 100644 packages/tests-e2e/tests/appDirOnly/api.test.ts create mode 100644 packages/tests-e2e/tests/appDirOnly/isr.test.ts create mode 100644 packages/tests-e2e/tests/appDirOnly/middleware.redirect.test.ts create mode 100644 packages/tests-e2e/tests/appDirOnly/middleware.rewrite.test.ts create mode 100644 packages/tests-e2e/tests/appDirOnly/modals.test.ts create mode 100644 packages/tests-e2e/tests/appDirOnly/serverActions.test.ts create mode 100644 packages/tests-e2e/tests/appDirOnly/ssr.test.ts create mode 100644 packages/tests-e2e/tests/pagesOnly/isr.test.ts create mode 100644 packages/tests-e2e/tests/pagesOnly/ssr.test.ts create mode 100644 packages/tests-e2e/tsconfig.json create mode 100644 packages/tests-unit/package.json create mode 100644 packages/tests-unit/setup.ts create mode 100644 packages/tests-unit/tests/binary.test.ts create mode 100644 packages/tests-unit/tests/example.test.ts create mode 100644 packages/tests-unit/tsconfig.json create mode 100644 packages/tests-unit/vite.config.ts create mode 100644 packages/utils/package.json create mode 100644 packages/utils/src/binary.ts create mode 100644 packages/utils/src/index.ts create mode 100644 packages/utils/src/logger.ts create mode 100644 packages/utils/tsconfig.json create mode 100644 turbo.json diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml new file mode 100644 index 00000000..ecb740e2 --- /dev/null +++ b/.github/workflows/e2e.yml @@ -0,0 +1,94 @@ +name: E2E Tests + +on: + pull_request: + types: [opened, synchronize] + +env: + PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 + PLAYWRIGHT_BROWSERS_PATH: 0 + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + +jobs: + e2e: + runs-on: ubuntu-latest + environment: + name: ci + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 8.6.5 + + - 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 + cwd: example + run: npx sst deploy --stage e2e + env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_DEFAULT_REGION: "us-east-1" + + # Load app urls from .sst/output.json file + - name: Set environments + run: | + APP_DIR_ONLY_URL=$(jq -r '.["e2e-example-AppDirOnly"].url' .sst/outputs.json) + echo "APP_DIR_ONLY_URL=$APP_DIR_ONLY_URL" >> $GITHUB_ENV + PAGES_ONLY_URL=$(jq -r '.["e2e-example-PagesOnly"].url' .sst/outputs.json) + echo "PAGES_ONLY_URL=$PAGES_ONLY_URL" >> $GITHUB_ENV + APP_DIR_AND_PAGES_URL=$(jq -r '.["e2e-example-AppDirAndPages"].url' .sst/outputs.json) + echo "APP_DIR_AND_PAGES_URL=$APP_DIR_AND_PAGES_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/ diff --git a/.gitignore b/.gitignore index 0e3845a6..db2e0253 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,11 @@ 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 + +.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/example/package.json b/example/package.json index f1914ff3..435e6342 100644 --- a/example/package.json +++ b/example/package.json @@ -2,6 +2,7 @@ "name": "open-next-benchmark", "version": "0.1.0", "private": true, + "type": "module", "scripts": { "dev": "sst bind next dev", "build": "next build", @@ -22,6 +23,6 @@ "devDependencies": { "aws-cdk-lib": "2.84.0", "constructs": "10.1.156", - "sst": "2.16.3" + "sst": "2.24.2" } } diff --git a/example/stacks/AppDirOnly.ts b/example/stacks/AppDirOnly.ts new file mode 100644 index 00000000..e18a7298 --- /dev/null +++ b/example/stacks/AppDirOnly.ts @@ -0,0 +1,16 @@ +import { NextjsSite } from "sst/constructs"; + +export function AppDirOnly({ stack }) { + const site = new NextjsSite(stack, "appdironly",{ + path: '../packages/app-dir', + buildCommand: 'npm run openbuild', + bind: [ + ], + environment: { + } + }); + + stack.addOutputs({ + url: site.url, + }); +} \ No newline at end of file diff --git a/example/stacks/Example.ts b/example/stacks/Example.ts new file mode 100644 index 00000000..74d5bd2b --- /dev/null +++ b/example/stacks/Example.ts @@ -0,0 +1,18 @@ +import { Config, NextjsSite } from "sst/constructs"; + +export function Example({ stack }) { + const site = new NextjsSite(stack, "site",{ + bind: [ + new Config.Secret(stack, "GITHUB_CLIENT_ID"), + new Config.Secret(stack, "GITHUB_CLIENT_SECRET"), + new Config.Secret(stack, "NEXTAUTH_SECRET"), + ], + environment: { + NEXTAUTH_URL: "https://d1gwt3w78t4dm3.cloudfront.net", + } + }); + + stack.addOutputs({ + SiteUrl: site.url, + }); +} \ No newline at end of file diff --git a/example/stacks/PagesOnly.ts b/example/stacks/PagesOnly.ts new file mode 100644 index 00000000..8e2c3ff1 --- /dev/null +++ b/example/stacks/PagesOnly.ts @@ -0,0 +1,16 @@ +import { NextjsSite } from "sst/constructs"; + +export function PagesOnly({ stack }) { + const site = new NextjsSite(stack, "pagesonly",{ + path: '../packages/pages-only', + buildCommand: 'npm run openbuild', + bind: [ + ], + environment: { + } + }); + + stack.addOutputs({ + url: site.url, + }); +} \ No newline at end of file diff --git a/package.json b/package.json index 447b9ec3..5c67b238 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,9 @@ "packages/*" ], "scripts": { - "build": "pnpm -r build", + "dev": "turbo run dev", + "build": "turbo run build", + "clean": "turbo run clean", "lint": "eslint --ext .js,.ts,.tsx .", "lint:fix": "eslint --fix --ext .js,.ts,.tsx .", "version": "./.changeset/version", @@ -19,7 +21,8 @@ "@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/app-dir/.gitignore b/packages/app-dir/.gitignore new file mode 100644 index 00000000..8f322f0d --- /dev/null +++ b/packages/app-dir/.gitignore @@ -0,0 +1,35 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/packages/app-dir/README.md b/packages/app-dir/README.md new file mode 100644 index 00000000..f4da3c4c --- /dev/null +++ b/packages/app-dir/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/packages/app-dir/app/albums/@modal/(.)[album]/[song]/page.tsx b/packages/app-dir/app/albums/@modal/(.)[album]/[song]/page.tsx new file mode 100644 index 00000000..46cb5aea --- /dev/null +++ b/packages/app-dir/app/albums/@modal/(.)[album]/[song]/page.tsx @@ -0,0 +1,26 @@ + +import Modal from '@open-next/core/components/Modal' + +import { getSong } from '@open-next/core/api' +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)} +
+ + {/*
+
+} \ No newline at end of file diff --git a/packages/app-dir/app/albums/@modal/(.)[album]/page.tsx b/packages/app-dir/app/albums/@modal/(.)[album]/page.tsx new file mode 100644 index 00000000..2b272d1d --- /dev/null +++ b/packages/app-dir/app/albums/@modal/(.)[album]/page.tsx @@ -0,0 +1,11 @@ + +import Modal from '@open-next/core/components/Modal' +type Props = { + params: { + artist: string + } +} +export default function ArtistPage({ params }: Props) { + + return Artists {params.artist} +} \ No newline at end of file diff --git a/packages/app-dir/app/albums/@modal/default.tsx b/packages/app-dir/app/albums/@modal/default.tsx new file mode 100644 index 00000000..827ef624 --- /dev/null +++ b/packages/app-dir/app/albums/@modal/default.tsx @@ -0,0 +1,3 @@ +export default function Default() { + return null +} \ No newline at end of file diff --git a/packages/app-dir/app/albums/[album]/[song]/page.tsx b/packages/app-dir/app/albums/[album]/[song]/page.tsx new file mode 100644 index 00000000..01bde142 --- /dev/null +++ b/packages/app-dir/app/albums/[album]/[song]/page.tsx @@ -0,0 +1,20 @@ + +import { getSong } from "@open-next/core/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)} + +
+} \ No newline at end of file diff --git a/packages/app-dir/app/albums/[album]/page.tsx b/packages/app-dir/app/albums/[album]/page.tsx new file mode 100644 index 00000000..0bf14c1b --- /dev/null +++ b/packages/app-dir/app/albums/[album]/page.tsx @@ -0,0 +1,3 @@ +export default function ArtistPage() { + return
Artist
+} \ No newline at end of file diff --git a/packages/app-dir/app/albums/layout.tsx b/packages/app-dir/app/albums/layout.tsx new file mode 100644 index 00000000..5b9388b3 --- /dev/null +++ b/packages/app-dir/app/albums/layout.tsx @@ -0,0 +1,8 @@ +import { ReactNode } from "react"; + +export default function Layout({ children, modal }: { children: ReactNode, modal: ReactNode }) { + return
+ {children} + {modal} +
+} \ No newline at end of file diff --git a/packages/app-dir/app/albums/page.tsx b/packages/app-dir/app/albums/page.tsx new file mode 100644 index 00000000..7e7c6a1c --- /dev/null +++ b/packages/app-dir/app/albums/page.tsx @@ -0,0 +1,9 @@ +import { getAlbums } from '@open-next/core/api' +import Album from '@open-next/core/components/Album' +import Link from 'next/link' +export default async function AlbumPage() { + const albums = await getAlbums() + return
+ {albums.map(album => )} +
+} \ No newline at end of file diff --git a/packages/app-dir/app/api/client/route.ts b/packages/app-dir/app/api/client/route.ts new file mode 100644 index 00000000..24e8993d --- /dev/null +++ b/packages/app-dir/app/api/client/route.ts @@ -0,0 +1,6 @@ +import { NextResponse } from "next/server"; +export async function GET(request: Request) { + return NextResponse.json({ + hello: "client", + }); +} diff --git a/packages/app-dir/app/api/page.tsx b/packages/app-dir/app/api/page.tsx new file mode 100644 index 00000000..8b58f86a --- /dev/null +++ b/packages/app-dir/app/api/page.tsx @@ -0,0 +1,34 @@ +'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'}
+ + + +
+} \ No newline at end of file diff --git a/packages/app-dir/app/globals.css b/packages/app-dir/app/globals.css new file mode 100644 index 00000000..fd81e885 --- /dev/null +++ b/packages/app-dir/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/packages/app-dir/app/isr/page.tsx b/packages/app-dir/app/isr/page.tsx new file mode 100644 index 00000000..e1e68247 --- /dev/null +++ b/packages/app-dir/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}
+} \ No newline at end of file diff --git a/packages/app-dir/app/layout.tsx b/packages/app-dir/app/layout.tsx new file mode 100644 index 00000000..6821b15e --- /dev/null +++ b/packages/app-dir/app/layout.tsx @@ -0,0 +1,22 @@ +import './globals.css' +import type { Metadata } from 'next' +import { Inter } from 'next/font/google' + +const inter = Inter({ subsets: ['latin'] }) + +export const metadata: Metadata = { + title: 'Nextjs AppDir Only', + description: 'Generated by create next app', +} + +export default function RootLayout({ + children, +}: { + children: React.ReactNode +}) { + return ( + + {children} + + ) +} diff --git a/packages/app-dir/app/page.tsx b/packages/app-dir/app/page.tsx new file mode 100644 index 00000000..d7e44c96 --- /dev/null +++ b/packages/app-dir/app/page.tsx @@ -0,0 +1,36 @@ +import Image from 'next/image' + +import Nav from '@open-next/core/components/Nav' + +export default function Home() { + return ( + <> +

Nextjs AppDir Only

+ +
+ + + + + + + + +
+ + ) +} diff --git a/packages/app-dir/app/redirect-destination/page.tsx b/packages/app-dir/app/redirect-destination/page.tsx new file mode 100644 index 00000000..638ae2e6 --- /dev/null +++ b/packages/app-dir/app/redirect-destination/page.tsx @@ -0,0 +1,3 @@ +export default function RedirectDestination() { + return
Redirect Destination
+} \ No newline at end of file diff --git a/packages/app-dir/app/rewrite-destination/page.tsx b/packages/app-dir/app/rewrite-destination/page.tsx new file mode 100644 index 00000000..9879fe31 --- /dev/null +++ b/packages/app-dir/app/rewrite-destination/page.tsx @@ -0,0 +1,3 @@ +export default function RewriteDestination() { + return
Rewritten Destination
+} \ No newline at end of file diff --git a/packages/app-dir/app/server-actions/client.tsx b/packages/app-dir/app/server-actions/client.tsx new file mode 100644 index 00000000..45f4d9cd --- /dev/null +++ b/packages/app-dir/app/server-actions/client.tsx @@ -0,0 +1,23 @@ +'use client' +import { getSong } from '@open-next/core/api' +import { useCallback, useState, useTransition } from 'react' +import Song from '@open-next/core/components/Album/Song' +import type { Song as SongType } from '@open-next/core/api' +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 && } +
+} \ No newline at end of file diff --git a/packages/app-dir/app/server-actions/page.tsx b/packages/app-dir/app/server-actions/page.tsx new file mode 100644 index 00000000..924cd00a --- /dev/null +++ b/packages/app-dir/app/server-actions/page.tsx @@ -0,0 +1,7 @@ +import Client from './client' +export default function Page() { + return
+

Server Actions

+ +
+} \ No newline at end of file diff --git a/packages/app-dir/app/ssr/loading.tsx b/packages/app-dir/app/ssr/loading.tsx new file mode 100644 index 00000000..37ba5d7d --- /dev/null +++ b/packages/app-dir/app/ssr/loading.tsx @@ -0,0 +1,3 @@ +export default function Loading() { + return
Loading...
+} \ No newline at end of file diff --git a/packages/app-dir/app/ssr/page.tsx b/packages/app-dir/app/ssr/page.tsx new file mode 100644 index 00000000..d6e414a9 --- /dev/null +++ b/packages/app-dir/app/ssr/page.tsx @@ -0,0 +1,10 @@ +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}

+
+} \ No newline at end of file diff --git a/packages/app-dir/middleware.ts b/packages/app-dir/middleware.ts new file mode 100644 index 00000000..1163f2dd --- /dev/null +++ b/packages/app-dir/middleware.ts @@ -0,0 +1,33 @@ +import { NextResponse, NextRequest } 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/packages/app-dir/next.config.js b/packages/app-dir/next.config.js new file mode 100644 index 00000000..fc6a2aed --- /dev/null +++ b/packages/app-dir/next.config.js @@ -0,0 +1,11 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + poweredByHeader: false, + output: "standalone", + transpilePackages: ["@open-next/core"], + experimental: { + serverActions: true, + }, +}; + +module.exports = nextConfig; diff --git a/packages/app-dir/package.json b/packages/app-dir/package.json new file mode 100644 index 00000000..29ca8abc --- /dev/null +++ b/packages/app-dir/package.json @@ -0,0 +1,29 @@ +{ + "name": "app-dir", + "version": "0.1.0", + "private": true, + "scripts": { + "openbuild": "node ../open-next/dist/index.js build", + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "open-next": "workspace:*", + "@open-next/core": "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/packages/app-dir/postcss.config.js b/packages/app-dir/postcss.config.js new file mode 100644 index 00000000..33ad091d --- /dev/null +++ b/packages/app-dir/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/packages/app-dir/public/favicon.ico b/packages/app-dir/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4ba005f2c893d9bdce751162e8be142627758eb4 GIT binary patch literal 4286 zcma);2UJwY8pp?%XRKfYMG>TfARQ^vmd>)Uz%H@{7TBdN3(|XCz|cV@ASj?9pn|9% zii(OpvBaRB7<_3a(bN}>C&lQ|oM-&MS#tC|Ocd{)|K9oLyLW!y%$;v$2$@BHT3ST$ zPxdb+WH}+kh>BJb29=_I>Y~2CyGHt3$u}1U$?fsO>^tWUJi2rKApUh=7kV43G0@hC z-sT#VrX-*ss}R{aC6I~5sLI-e+H4uhQ(}-F!ADAj08v~HctIhE3Xer^If(0;BX5*I@XTS_DW<4{O~-Ud)H5s`yY%gygM;c`0b^`KYTHM5GT4@ z(bu{K1MQ8dE-ZqypcN5?yTMDYfkd2uNDdnjoIpf`OCXXKL6BGuL3$k`vKztWL?Smf z61_DA*jt^C6FVv}-d%@_y$!g2s0CLKHlrq4^n$O5i^Q|AQop8B#?b!Lx zFAV;1yt@TMoh@kGx*aLojzU~D1YY4ja8jBO7*hm)aUKF?H4qeZAvC)c{Jb`Zig!bn zxfyju1?VWvM1Oq|&UV(~T7MJHbW~$(cMT>6nsIVx#WcPmhHt;v?ii%a7Z6o<8vN2BNa{{PAn%8NdK-il)UG`SVaYy3mF-2t z?jaoP?L}KjI)>gY!$f~0ZVa~IV$T*_-nWgGci{8UJ%8aVVo+Q^PF^7QZk+$e!_Oy- zC&y3LSG5oSBBs2Ut!I(YNL7Cl;qpFs#n!@ER04KdD@5-MLR@zOvDJfU={bgTXT~tp zT7|Q_s_^0A?YKF#1Cv9o^!vBr=Fy$FeWvG?{6C{0q-ppn=@`ASAiwiMpS=ClA00!Pn>a;`_@3GxEc`CkUwoX*hCYDne^h3;KF` z@cy||80%@o_?{YkI=Tzrzkle-Pd7&|J-9WV^6>U0!&-8N zH@_0D!6mSAje~(H8+xWJm~9AyomV^@yyM{=n1q7D3he9d!sTz%mpJz4o09H4(@4KXC;D> zMJP;c1@xPUu-;7q21^E^I16n%+wsZd1it;~(&@X`k8uC^=E~y7*AI}Vzx`(h>YwiT zq8=hG-AiO;`x8WItxwzn(qL+{5oUG~u-Xs@Tc>2$I3&Q-n#N$xg|0CZhUNj-K)-{3 zXbLJDT5;>sn>U_5{>9+YulHz|XPj;?;*znONLu{}NpCp5LMk7a*ci7JwysgoHS~lj z?W>6uA10PUm|2BG%fM%ft)=gVH3kegdPIZCO@TC{>bLPL*FrMOx06SY9=vG#O$ur0 zjU;``DU!MM6f3@L@G&R40WMyNu(B7ym6b>Pm;vhzv9Poar!o0pt$8ra?F3WfFMSi_v}eRQtt2e9ZeDubNN-ZbF@(mq!jD@DCyz~VVHO}%+KrI7 z4tR%@!Ht~_N6%zf*ooojmI$A~Eck|I!!NSv0VlrPnIkPDj?Ssm+JBwlDU2lkF?EC; zU*i`iA9#>ba|V*^gW$#PM3ArnKHO?>Vmc9>e;lESUGNIoO!;Z>VC5r#SB(Hc6G2#IY$kfaVl(Q-s*SM}BJ*fl#%UO$cTI>XgJme_gl z7T7Z5PsPXwk-FtF63WLAnRyVxq%QCi_aHKB5VEp!2us@!W_UfAiarZ!!I3n9Cu_q- z>2`2p-$7)?J7+UC*DsLfRlE*4&1dBrL97`O_V#{>cV(5w5nDC_esUKAA{yWom=CYu zVhCs)(&Cd4rgVc9UJc)nVt52(!JVB2Z(b4Dl3E1CRKPzn^CC+Suk6Q9n8tXO!3fHj za+x@U)VYP^BDro1Q8|6^6IQ^{I|)W6OgiWJG>!uBr8~h9*U_<0#Ri&lMrKT!lPtP6 zi{ZI3n~qB%oLJ&(HctM_9KCq2LQbo9Vnq^0phQK_(qqC`B!{f>G-3)4gCE}lrlODj zX<+y!(K()rKw&NXdF5buC&1Z50w=oeID5yz#Wxh z9)2>ovy$M+PJ<6813vs5Fe3_J>B{{{+t|ig+j#xoA*a>Z1qh~W0}H3B73v0bEf0q% zyB|?SBjCop3(ue|c(BvK3N1oVST(|AoevU8xTnh6voGJqRltMR);K?g@x;M(7#$7(`jaH2)5PziA(Mo4RQn zod}`1=O4Wdin(iO?v8o$l(9lX``_lyo-5ZmxRQAbOr|kkHf-J5#MzIhs%>cTo|4jX zsIRf0`+XUNIY%HWJdLR0F^G%LK&&X|pM*H~7^1QdAw0bg8|k{>AG00aq8fS@5 z8*}C^#BvSYqw5(=Witl`nKM`WW#lxQ!HJ!+jVzps7A;Z3+_{TjVCGG8sT%x@1Bjw) zod`KQhHmtvrEEn}@+o zXofvg3JrZ*%3gv+%FD1)L+?j@OGhhxa|be8?TwCG#Dkwm=FVSAjP2an>RKk>EnK(^ zb7s$@aV*9XRb6NsIm6607!F<%cm<`U*o-&$+!^cTiV6#{8CNiEyY1U!@6E6*Z`+s!^^gmMvAo;ze}6uGWR6o%8Q@&YthvIQx`X zI`}NNbnu=D^-6zSmYj4P8lB}47`D#Fnc1<{%;8sUJ!9w_tc8xQKD2c7p|Qr`*(%D_ z(Kms$gY#1cGw8TSpm42ssCX_jNJzY5(q7sAn>yHG$%Gf1H4mi`p|m4 z<5PDJ=A@@T_lk#K@b5kW!B1GhAz%4%!&9{#f@is~X5Mq|&;S(rh3YBQGb+fb&QaZ& wy1zy3MO3cz^je}2edf7b={qm(F7*ZqGnv{Is2{lqSkZccZS?#w^^3#Xi9Ca1;*AM841ztd1>QDD~_NOR|_ zb#lV_Ds5o!i7PHycUp}Em~%=8-T7MG`5L=gNB*_u%1LS?2`enUl{CK5&Yqj6?pbz5 z0;DFQz{Wo#-C1CMrf2+^RW@IF4wBYF1X$q{kJ620jtuY@A2{leeRf(6QVBqgy^S=M znzN5wclG-}_{qbUgVbU6-d`M|8B2Ed|LgL1ee$H$A@M}k_|lW4v2b&a-0+>BojFq^ zoMNk9nzMM%&hdx4k53v+Fyr%+*%{KTtFQBLNGyR~!pIYRe0xYF(dn1cJ&uo$@CP$Q z;)r4q-5GbZebjq)hlUZsqJB39?rfWw;@JX;qH-STjO-(w{k(INFp4E~WAKS?;|HKI z6!SZ1jP5qh^MZ)1ejA(NA%)?1IxA|tT+0&d^LSm{pW7K)kYLtzG*;Cf+oLGOMy>8uG5%mCq^RR*tZL?G zp(yGz%(eMiS%R}@wfRg@f*F5iu8WT@f)urW3%x4NmcyY1DHe`b#(4h*kfM&T%J{_b z5EOM#u8Z-W6-wJ}v@Y5Iq@}Ib;#Dzz27;0Wb8e$m#Myf+v?xGM9&@jU`OjB?6o#2! zWJNN+0zu(|dA;;nI0udrEpOw;X|>4wF$BfSj33qH+Y&(W{z=y37YZp(uzd@?8b5#_ zz^wl>SK}IJc~G20uf}IW2sUh?*W#-|+MNq*S_tGlxF{CIE`4)3D=g1b&Fp9TLxd+Sq6$D{L zX8)WP?xRR?pja^E9?Cho9W)SBf65%n_}H?LP}rf99x3zx5(|n&v{>IkLTHic|6&ex zVKgLsh!*NY;Z$}QrpIw#5Kb`nPFfh}$R^NWP<(+ojPdE^A@LSWxW{Q*RWzDl`gP1v zX#5(I1Vh3{Xklpl1X47?ijTR4aUa?N8Vm_%Fo&V>hM6kCL{@o>7KWJ@BL#!vILjW! zb3PO)m?*x;9EQe6mrK(m6hxN&H**+fUJ4*dBq-K8Bn}cby`L5*lYHWWHGw2ykg#nFEezc<`RvIn0!gDFVSYa?3`xu6BPXu`Bn^Uu z4|w)Kq-V0_!u0`F34w&~F^3{8liinZ1RzNSm9-wC#UeeEJ>OXXAZd9}%$sx%MtUZB z-A7jdG!=)0&(Ok=o=HA(!Ulk((xzeUK6*TomdXC_&qLvou>Nn&SxL(z|NiEZBmoCJ z%$j;8S&k?$^WsV7nvkBo9AM^t|09jnEk&^E7w#pqv#An}C26d2F|yB8b~cwx$A+V9 zE=j-|pLb_NNdi_szlGI);}Wpq@lTP~P)V@d@sE+&*+?qD`yL>(vEpxpC~(+c$ZV|o z8<2o`e?Du4ih00000B>-v6u|JIIq@xRz&p#4w!hv{GJpS7P3 zc?IZSCGQ{n)BPX!U++KiKg|FC`5o#r^1u8qa4*wO@&DBSyML|!A^-p8yVTF^kEoyO zU)KNB|AhC5|9$%1?qmC(?WedG@~`LKm!8KTx?aG4&HtzRWq;@YbMTw}d;HJ*kMWT{V%_- z_Pxh=$Nhig2f1IxzP|nQ`w#6m_y66GhQGW1SASLX2i(Wo{{R0++ynV{^&j$I zl0VtM_We`;AN?PSpO$+7e?k7i{yY3P_uuiK=>Plu41cHoll+hUPxv0-K9K*7{xA14 z{D1%dz;EQg&VRsvb^j~=Z~M>xANF2PKW}}HKT`gD(~bkk(eGhxc@6Cgx4h(a|^6XwEd zn`WuRf8hMJ%wZawI=-M-XS1)~jjbVi_61|X?m50?B3X>~`aO4|yX|1?3F(w##CQJD z-^8&R$S=yMcaC(vR{Ks9zgZGdH}}eVVhK{nJAnB>*Vt2}T|%d9+1x(d=H=^nkk*dt zyxMQOIs%hRxT{q12436bT8b)ZoVe<~o97E(>%nKJAPJ2xRJgUKsej>f6EKzQ7ioG% z?bJ#iw;gq-J#T*`X(-?CwwRe=8f% zschkf*p|&;!R#^j4o^i=>rH%XnMGB$*4Ps+vpAJC9p6)IMcHmcqCRNQ}A z%gK!^IJjukrhQ}I@FPCn5aRhJu|Vf=2x*_9GH_ssGXjQqcENZGXdT4MsD_?eP#Nuc z6oloe$9V~klH>3-U0#9RH!sR2!E&3MkGx|FzMXeRSPL?T;laYsUQ1(3%bw5MTIY)A z!C^zHsel4lZLg2!6c(i&X&OL-iOG4XpBH-9Emc8=Ld4V`7O*u5pwz+teXL}onWBP= zA*aSGoX=sd1dPne+1Lt@sHlAQT%8q)8g)ZhSY1mpAUzi}1Iu}{qY6IlGFa2cA{-V5 zOQ$_(TnU0J332X{w?^ewDt;}))>{HvE@K~DHt@)KzM2w-RxTENOGzflnnG~~RU4hC zYVcgAeEk|dE;peeWZ_i@JM0t$HoHFrkW_=$g6NV(`ERaH(^TprRdBGFW)Dat0~&z# zy5KQ+4p@L`##I{e`a!!Pz*_o_Q`!8VAECP_a&{pL3~=5qfv++G93xM5+rIP`bD5-E zp+>0+>^cQ;%*YG@jTV50u7jON#;*4eVM0$_x@S;SJLe9|g&o)?u|7!qdTgJDLNafU z>wpafA;$T|k(=0mleX)2A~TLr9uzP!4k2nLwu57s396sIV4H0?V8hZR_eL#xt$f6O zYR-IV<1>WZNd!678?=75Ujx<9IycI`PG4LkvG0E2R$)Q|ztWXGy+Ez~N476aMzVmW>ib|CM1Qeg~k*wVoM}eA0%v19g?{(INL!Vc*`mtTf8#jB14O z|HjK|0*3JSsVFZWJ;<%rjFt;=#f*&brkP(gPPo8iSSN`I00{%)t4X-W^$1*X5$i2Q zr~?!Gv!A{+=lpITL?~7ijIGJt+h9V$#K-XZ|9`R9SM5C#6Ix6;U8U~;mCXV3kRQXt zXgG7t2m?)gjXn4qOwGzVAp=!&?qi(xZ6Y6;n@o_y`1&hr6^RJz3*6)S@p{T;LV@q? zOkc{gy6J(nrIw+)?TAvojvZbTKk&-HX`R@^hk4@r-sHCy;_g)jxEjUT(vYX@wxF8( za=LIPdZL{*JS$V>ZC5#;fi*4_A%g<~J=2(V-9mWDGxAdJf8dHtV=rofdl&+KuZP|+{EG2P!5wfL)PhwVcxA{60mKFMXvt$7Io0yzKEX>BrxPW+$wb$#TYPD zMS2sBHP&Y|1cnxzmyqh$i?{fIDRgkU`H`j60^h*#>!J}H+?^hdS7eQK(|JxVW93Pz zJaj2;nGHi5Y<`#8f=)GBfPS?<@qKhbMDt8@mEU@w#txNW3_;dI;FtG`x9L#IFiHEU zm4_+sZbZI>(6lhKx!WWg*6Td#E_KcM&Y&m%ke97+TT!F_6iOdiX~^0C&SP@H=tDIw zfEo!d(P|W#$olSE*bsP8Sep^uL=*J&&m%7%emd;%9MyjUQ%|fDNxjO`05yllZ#FBz z#tyBs72H2Exi*vkb$071?$C{m*gXu3WE8UU3)Y>qDEjxwtL{UxB?_VNOO{VO+Re-; zi`sqB<@(o{tAeeFnZ}Sv#p%S5iA|GQ5=r>rBi? z{J^Z4no$C~)Cp|8{7#PPaUXg^qrV(==GJ(rV6~juWjdH_Y5hGP)gsp;hm~F0lAs*^ zM@q&GRrHzQ+ICSRV|sjqz7I2I>1H7LT-;>>g5AR(9Es>BGQ`oIk>`vkfNDVvZubN0 zzkk5nA9Qssg-?$HZon{3Fx}IBIJU2KwmQ>gONIz^0Ad;cp$m*5V2((6&H4i6atJD& zWRyoD4ah+UL4YgHY+e#(E#})^e-d(v1kx=I~A%skBGVqgbaOP#McQMik{@V8p); zPmDq^xi*^S2!W;YM4}W{BgJdmFj{RYXK_r@~Gis*3pB z`iR-PcqoCUbn!0Bsqv$T59CR>=F*@z&PA(D=t9@zl;jw_9(zXM+BZIUu2sn8>i|`!&b51uhOXkhZZXnG^929Or_>oE`2i_a6huXgZb$~ zWMm1}qfW#1z!@|J5rAv!)P>-2S8ZlrScF4UcQysPGz0(E@3d-Nfn~3hVz?7mQ5w3WXimPetCB ztNTs8oR+*`ZLLoC}q)whnY0;at)F^z3D)?=;&)P-`QB! zCQ4Rr6Un?O`rXpE;AS7@!Md;>Wqy8b!+TjuEw{|v z!wCvx@(hHs`gQXk+WppaYbUy!IiJ=l?reOV{m*Crn-St7MYlExkBA>|U%>iSs1Vw& zL`j)IJe8<1?fN<>M-E+nGF>crR&f4|*plV61wAV(sFWH_5a;>915NEiaUU8Q+Mtjt zaWng_BEISxaDB|X93^GZ$;h%8aiMo=5Cn{132`2(z&?qUP$6 z8D9q83m$IRVtLZj+sF2_VaQ5sovnjpiNX@b^;O9)k@c~-HGg&Sva;&^dFR;UYSI@t zf}lY{9P;GthJ=_LwNpE7Tt3CZRVcc7%e=FCl5?&%(+6{~tcS_MhgPD{BB7ez@=-Cw zC#!`~x9nO!#2k_dc`9pZfs_2NxihEieue{bAA z_;oH&5GZmQDi00t_+dnRS5tnz_%;s;_mH6hdxb{^&8&&FSuCJ<8sNGbFKJL)>BNQl z;yQkzyo;G-_(-D5AvjwGQBkExl_`eWrMg9gQpED5VLw44Mr>t-?XRLq=d7v z9V7uBYf!%QXO<0!w#&6Jvc#@;W_;uDy_rSkE;2Y8Nn!<>ceQ*wuif&3It0bP?Co#m zR|sqQ?lhkYuJ!sAkLRW8949LT=WU=W>a!tcpJK+r%hqn!v&jip$fZNhw3?$WG;kH$ z_|$2E^(;mC*6L0yOfE{8y$yt0YNp~y&rbdZb97WGk2@i&3I1NEgl?l= zP0rj4+iLH9USSLWuw(3^5blvPNtrNx;uipY(#Q%n@_!GUC6XWH@O4N$Jmn`^I*QE8 z%{HSpbls0m7dHjG%!2g)vT-0)SQY4&&a|5`VJ)TYtsK9c=pWUG)+TI8g-~XA25B~H zyX%sv#vI~f3-2X#bD!Go7@9~o^mh6;EMf=WBL)JT01H7Qo186H4qmD#qw=xeC%+)Q z>Lu5^t)1}u%To`EHxsE)vJHIph{kQTlh(e<4+ zXGr@jWfMGixc5U`7Fc(AheD+&%>E9kBU-Nuwo7S=YCxkbHP*j0d8~{3y(605Ckz=kw!Pv2malT!RCh&D6WWx zExoCwd3l-xKE^GZcN=GGvR|2UC=2~f(?q7M4|B?7l`W3VIz#7KTa?@x(!<$!WGd%Q zgX}A`?l=IOo4jd6rYxyKEkQg+gtbZ*=ES=>ifp~*%&ttWYunQf4-?(d%ykmNmX8r= zW%V=i9KykqMTP7ZYHCkZ%58toPXfm}^cw9SCP|#;mjbxFB%%Dr*gRNFw@kXV@~(#1 zzKe&dGgjv$$!Q~Dz+89^OLMLCpM{NPbzy^4ooEvLgOTl!Wgf006p}mom-*TqdI;c$ zdmMxgoO<#=*L7NMM)=JfU{QgIiay={%ppsw@k5x7?h;8iTC`dnW#rGWx61(S2>QQT zxfJ@Cos>aj9T|0m(!3Vc-4Mmafr3)D!4 z(pa-L#2W@h=_-{w2Z$4ZgGuzr7Aw888NtW=l(>X8l8J1AvqF$5DLix7WKgx z8-iv_ZM$2?oe+=WePcLizZAWry$BVwul~sQ69m_dcK6WQdPcB6^(pF=p9&YLyFRYn zCI8W!qgEpV_XSUMV*+^T`0#uQ16_Z-z-A`2_~N)Rb4?w&`V~Zisx}3b%gOWW+ny;^=Hdo&|4Teh6*XJ}vPwC<< z06jJ<&b%8RrJJ0kM}{JLk_+9p#72i zvzrsL4vD*rrBhyaM&8-iO|W^^S~XAl-N(T=@()AEnKIK^(|6H=4i6Nirx1z4GETh< z8ryi_^C-|pR~67FPL;_JPfom+(nzN_MXngTc3_{+c=te{#!+W6OiL(uOWl3^tnSHaNb3Dxw0*A zBbR>v@(dx=#b{>f3pX!)j=_tM^tAq(05^Fwn-A83GQ+R?5rkbYHO}^1!-7Mr+X@Fo zSInhyYpmY_Mf{ZOpt2*tOCV~}wu^CsOr*!$bA7C9nD@ye2YBBG*im{j(Y^WwQXBlr z8Q_>nh;Pz8?a_dyb`*!zu zho&zyPnrhf{c8syFB_Rep8?%}-EqqF@hP#SB#gA7>;Lyp`~RR@ACn%ar*l4E%d>Ak z+p-qo{Fg!E`{7Yg@BR6z9wU#$zj0}+)&0tDMnrrO_-jSz_su60s+cVE0D`*N(TOdv zM?c{tT+Faz75WR_=BQad{t5vO!no1RqnnG>X890iP&2`Qf@>_BZJNZ<=*k`H4qb{j zgJ9$=Ftr2nsokqyHffvyuWX1n0lJ+K@Py4GNA+kYj$UDvb2IQA!X!D(3T%a3|r*ns!ouw@P#28NeE0Z*Djp%%2BR9e+8FZa04++dAtLid}J~S^xaDTl4|&vklk1X0!a2 zKhK4hg+g>sM=ggi*=j^Pyz=z*fn^ivY=6&Ft~v$o z|Ia3zlBOVk2y3WiojB*thFR4IflQt;ypeqO)2icTqnaQe=3UIjUv@g6LWPN5Mzo@C9PD3 z6lW3kNJ2Tn#QFmvAwbqRucbK^-|t^6lqgm*1S1ofkWVYoe?hGQbPN?5n|KpH<*Hl-@}qn zC@BB=_XJfolTc>qJ$W+72Ayddk$^^9e&UJ@sbftyIE>cs zR(BmFqVQi#9T9CExZD@>3k3pE!=S_vu*iZD&dL&mJD7OYC_@n!O5{Q(4QZpMbZx?})DK)r(LmMzuSo^B0+fBBbj zGS)s%U$RhH|W`&i@=r`&$IF%p1LWk?Gv@oL;|XPlq|R#q(b_??YH~XEvuF z7}mXARdv;qp=Zt*J1l#oQCowzhuc=urt%6XAr1P})fv*`7&UCw+tc3Xbpy(XjMw=+ zk^iSV%*UVRR|gKV{c(xCr!cHU?2_O6TZt7)7Ip;XtYdA;xZ*mIv1B(<1OVZML&{W- zHwWn(N^qyRjcuDy9}*bxY&VOjW_&}OT>09H%mTcH{-n`^v&Z~Kw+VFC7y9tr`BTP9glI7{`7_MB*(3J2EGmbir()0qWDd_z^!GpTG?gnP8+w z$c4522ew@I_F^9}xt={r07i<*II6Cxirw(`e2>OGROc|%rw`g!9MtGqjFRq}VN-l0 z>^e3cYIX9=x@YmZEwM>`c=Yf)3DH%=2r~N~Uh@6X-0ic^QS<>pOk9MTt%06_uRAGP_e?B+JG`8qMbP+)5;J+ytL?Bs4+SxjuXm}raSvn)QLj* z9X9?!l^9$?lPyIPSmt=nF}WSsoJy__>4oqD?MSjZ{TY4Usy#iAB)icxdy8k(6>3-S z0N7eBcMaZh8~nj(&0W?)><_GPKc9Ikup}Ez2XQ|w(3B*cE=lC9kkz?~n4T&}2ZFF4 zT@P#lT%uppvEF2uwYcqaeps#B1Vm{Td@_VNJ-t!TN)V~qT=c~-Lj>{pQsCc6V^^2n zfkB5zsSr?vLR@hgIG7jgPEZ7e|2`V^#{TD3X<0|(Ftz3*MTc-?B-ai)s zWZkcRE;PQ&F~=|q>+OVa>?)4E9yHxJ3&k*Ur4fWoZv<4KnLoG827Q}}5WWs$+Jf~n z(rV-t(n-Jg0m!o#U~00rQF AR{#J2 literal 0 HcmV?d00001 diff --git a/packages/app-dir/sst-env.d.ts b/packages/app-dir/sst-env.d.ts new file mode 100644 index 00000000..7d85cdaa --- /dev/null +++ b/packages/app-dir/sst-env.d.ts @@ -0,0 +1 @@ +/// \ No newline at end of file diff --git a/packages/app-dir/tailwind.config.ts b/packages/app-dir/tailwind.config.ts new file mode 100644 index 00000000..7115bd6e --- /dev/null +++ b/packages/app-dir/tailwind.config.ts @@ -0,0 +1,20 @@ +import type { Config } from "tailwindcss"; + +const config: Config = { + content: [ + "./pages/**/*.{js,ts,jsx,tsx,mdx}", + "./components/**/*.{js,ts,jsx,tsx,mdx}", + "./app/**/*.{js,ts,jsx,tsx,mdx}", + "../../packages/core/**/*.{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/packages/app-dir/tsconfig.json b/packages/app-dir/tsconfig.json new file mode 100644 index 00000000..ca58f5b6 --- /dev/null +++ b/packages/app-dir/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "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/packages/core/api/index.ts b/packages/core/api/index.ts new file mode 100644 index 00000000..f6f6d6d8 --- /dev/null +++ b/packages/core/api/index.ts @@ -0,0 +1,37 @@ +"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/packages/core/api/songs.json b/packages/core/api/songs.json new file mode 100644 index 00000000..5fe2db65 --- /dev/null +++ b/packages/core/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/packages/core/components/Album/Album.tsx b/packages/core/components/Album/Album.tsx new file mode 100644 index 00000000..15221b3d --- /dev/null +++ b/packages/core/components/Album/Album.tsx @@ -0,0 +1,13 @@ +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 => )} +
+} \ No newline at end of file diff --git a/packages/core/components/Album/Song.tsx b/packages/core/components/Album/Song.tsx new file mode 100644 index 00000000..9692aa36 --- /dev/null +++ b/packages/core/components/Album/Song.tsx @@ -0,0 +1,17 @@ +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 && } +
+} \ No newline at end of file diff --git a/packages/core/components/Album/index.tsx b/packages/core/components/Album/index.tsx new file mode 100644 index 00000000..b6d552c4 --- /dev/null +++ b/packages/core/components/Album/index.tsx @@ -0,0 +1,17 @@ +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 => + + + )} +
+} \ No newline at end of file diff --git a/packages/core/components/Modal/index.tsx b/packages/core/components/Modal/index.tsx new file mode 100644 index 00000000..ea577fd8 --- /dev/null +++ b/packages/core/components/Modal/index.tsx @@ -0,0 +1,49 @@ +'use client' +import { useCallback, useRef, useEffect, MouseEventHandler } 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 (e.target === overlay.current || e.target === wrapper.current) { + if (onDismiss) 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} +
+
+ ) +} \ No newline at end of file diff --git a/packages/core/components/Nav/index.tsx b/packages/core/components/Nav/index.tsx new file mode 100644 index 00000000..730e3697 --- /dev/null +++ b/packages/core/components/Nav/index.tsx @@ -0,0 +1,24 @@ + +'use client' +import Link from 'next/link' +import { PropsWithChildren } from 'react' + +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} +
+ + +} \ No newline at end of file diff --git a/packages/core/package.json b/packages/core/package.json new file mode 100644 index 00000000..d596afe9 --- /dev/null +++ b/packages/core/package.json @@ -0,0 +1,11 @@ +{ + "name": "@open-next/core", + "version": "0.0.0", + "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/packages/core/tsconfig.json b/packages/core/tsconfig.json new file mode 100644 index 00000000..85d27a18 --- /dev/null +++ b/packages/core/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": "node", + "noUnusedLocals": true, + "noUnusedParameters": true, + "preserveWatchOutput": true, + "skipLibCheck": true, + "strict": true, + "removeComments": true, + "resolveJsonModule": true, + "sourceMap": true, + "baseUrl": ".", + "jsx": "react-jsx", + "lib": ["ES2022", "DOM"], + "module": "ESNext", + "target": "ESNext", + "paths": { + "~/*": ["./*"] + } + } +} \ No newline at end of file diff --git a/packages/open-next/src/adapters/server-adapter.ts b/packages/open-next/src/adapters/server-adapter.ts index 4d2ece77..58fdd874 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); @@ -284,11 +286,11 @@ async function revalidateIfRequired( const internalMeta = req[Symbol.for("NextInternalRequestMeta")]; 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/") + // 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/") ? `/_next/data/${buildId}${internalMeta?._nextRewroteUrl}.json` : internalMeta?._nextRewroteUrl : rawPath; diff --git a/packages/open-next/src/build.ts b/packages/open-next/src/build.ts index 5ace2452..46c1d032 100644 --- a/packages/open-next/src/build.ts +++ b/packages/open-next/src/build.ts @@ -44,6 +44,7 @@ export async function build(opts: BuildOptions = {}) { // Initialize options options = normalizeOptions(opts); + console.log("~~hi"); // Pre-build validation checkRunningInsideNextjsApp(); printNextjsVersion(); @@ -563,8 +564,7 @@ function esbuildSync(esbuildOptions: ESBuildOptions) { if (result.errors.length > 0) { result.errors.forEach((error) => console.error(error)); throw new Error( - `There was a problem bundling ${ - (esbuildOptions.entryPoints as string[])[0] + `There was a problem bundling ${(esbuildOptions.entryPoints as string[])[0] }.`, ); } diff --git a/packages/pages-only/.gitignore b/packages/pages-only/.gitignore new file mode 100644 index 00000000..c87c9b39 --- /dev/null +++ b/packages/pages-only/.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/ +/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/packages/pages-only/next.config.js b/packages/pages-only/next.config.js new file mode 100644 index 00000000..df986c14 --- /dev/null +++ b/packages/pages-only/next.config.js @@ -0,0 +1,7 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + transpilePackages: ["@open-next/core"], + reactStrictMode: true, +}; + +module.exports = nextConfig; diff --git a/packages/pages-only/package.json b/packages/pages-only/package.json new file mode 100644 index 00000000..9b9f4a39 --- /dev/null +++ b/packages/pages-only/package.json @@ -0,0 +1,26 @@ +{ + "name": "pages-only", + "version": "0.1.0", + "private": true, + "scripts": { + "openbuild": "node ../open-next/dist/index.js build", + "dev": "next dev --port 3001", + "build": "next build", + "start": "next start --port 3001", + "lint": "next lint" + }, + "dependencies": { + "@next/font": "13.4.16", + "@open-next/core": "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/packages/pages-only/postcss.config.js b/packages/pages-only/postcss.config.js new file mode 100644 index 00000000..21e63aae --- /dev/null +++ b/packages/pages-only/postcss.config.js @@ -0,0 +1,8 @@ +module.exports = { + plugins: { + tailwindcss: { + content: ["./src/**/*.{js,ts,jsx,tsx,mdx}", "../../packages/core/**/*.{jsx,tsx}"], + }, + autoprefixer: {}, + }, +}; diff --git a/packages/pages-only/public/favicon.ico b/packages/pages-only/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4ba005f2c893d9bdce751162e8be142627758eb4 GIT binary patch literal 4286 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 AR{#J2 literal 0 HcmV?d00001 diff --git a/packages/pages-only/src/pages/_app.tsx b/packages/pages-only/src/pages/_app.tsx new file mode 100644 index 00000000..021681f4 --- /dev/null +++ b/packages/pages-only/src/pages/_app.tsx @@ -0,0 +1,6 @@ +import '@/styles/globals.css' +import type { AppProps } from 'next/app' + +export default function App({ Component, pageProps }: AppProps) { + return +} diff --git a/packages/pages-only/src/pages/_document.tsx b/packages/pages-only/src/pages/_document.tsx new file mode 100644 index 00000000..54e8bf3e --- /dev/null +++ b/packages/pages-only/src/pages/_document.tsx @@ -0,0 +1,13 @@ +import { Html, Head, Main, NextScript } from 'next/document' + +export default function Document() { + return ( + + + +
+ + + + ) +} diff --git a/packages/pages-only/src/pages/api/hello.ts b/packages/pages-only/src/pages/api/hello.ts new file mode 100644 index 00000000..41b59cbc --- /dev/null +++ b/packages/pages-only/src/pages/api/hello.ts @@ -0,0 +1,10 @@ +// 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/packages/pages-only/src/pages/index.tsx b/packages/pages-only/src/pages/index.tsx new file mode 100644 index 00000000..39e8c246 --- /dev/null +++ b/packages/pages-only/src/pages/index.tsx @@ -0,0 +1,27 @@ +import Head from 'next/head' +import { Inter } from '@next/font/google' +import Nav from '@open-next/core/components/Nav' +const inter = Inter({ subsets: ['latin'] }) + +export default function Home() { + return ( + <> + + Nextjs Pages only + + + +
+

Nextjs Pages Only

+
+ + +
+
+ + ) +} diff --git a/packages/pages-only/src/pages/isr/index.tsx b/packages/pages-only/src/pages/isr/index.tsx new file mode 100644 index 00000000..8e6df457 --- /dev/null +++ b/packages/pages-only/src/pages/isr/index.tsx @@ -0,0 +1,15 @@ +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} +
+} \ No newline at end of file diff --git a/packages/pages-only/src/pages/ssr/index.tsx b/packages/pages-only/src/pages/ssr/index.tsx new file mode 100644 index 00000000..16132658 --- /dev/null +++ b/packages/pages-only/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} +
+} \ No newline at end of file diff --git a/packages/pages-only/src/styles/globals.css b/packages/pages-only/src/styles/globals.css new file mode 100644 index 00000000..ac35d370 --- /dev/null +++ b/packages/pages-only/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/packages/pages-only/sst-env.d.ts b/packages/pages-only/sst-env.d.ts new file mode 100644 index 00000000..7d85cdaa --- /dev/null +++ b/packages/pages-only/sst-env.d.ts @@ -0,0 +1 @@ +/// \ No newline at end of file diff --git a/packages/pages-only/tsconfig.json b/packages/pages-only/tsconfig.json new file mode 100644 index 00000000..2159bf45 --- /dev/null +++ b/packages/pages-only/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": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] +} diff --git a/packages/tests-e2e/README.md b/packages/tests-e2e/README.md new file mode 100644 index 00000000..aa2021ea --- /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 Dir only project +2. Pages only project +3. App Dir + Pages mixed 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. [appDirOnly](/packages/app-dir) +2. [pagesOnly](/packages/pages-only) +3. [appDirAndPages](/packages/app-dir) + +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..9d9824e3 --- /dev/null +++ b/packages/tests-e2e/package.json @@ -0,0 +1,18 @@ +{ + "name": "tests-e2e", + "version": "0.0.0", + "private": true, + "scripts": { + "e2e:dev": "playwright test", + "e2e:test": "playwright test", + "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..a849ff08 --- /dev/null +++ b/packages/tests-e2e/playwright.config.js @@ -0,0 +1,29 @@ +import { defineConfig } from "@playwright/test"; + +export default defineConfig({ + projects: [ + { + name: "appDirOnly", + testMatch: ["tests/appDirOnly/*.test.ts"], + use: { + baseURL: process.env.APP_DIR_ONLY_URL || "http://localhost:3000", + }, + }, + { + name: "PagesOnly", + testMatch: ["tests/pagesOnly/*.test.ts"], + // Other configurations specific to folder1 + use: { + baseURL: process.env.PAGES_ONLY_URL || "http://localhost:3001", + }, + }, + { + name: "AppDirAndPages", + testMatch: ["tests/appDirAndPages/*.test.ts"], + // Other configurations specific to folder1 + use: { + baseURL: process.env.APP_DIR_AND_PAGES_URL || "http://localhost:3002", + }, + }, + ], +}); diff --git a/packages/tests-e2e/tests/appDirOnly/api.test.ts b/packages/tests-e2e/tests/appDirOnly/api.test.ts new file mode 100644 index 00000000..d3615e12 --- /dev/null +++ b/packages/tests-e2e/tests/appDirOnly/api.test.ts @@ -0,0 +1,29 @@ +import { test, expect } 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/appDirOnly/isr.test.ts b/packages/tests-e2e/tests/appDirOnly/isr.test.ts new file mode 100644 index 00000000..c62f5cf1 --- /dev/null +++ b/packages/tests-e2e/tests/appDirOnly/isr.test.ts @@ -0,0 +1,39 @@ +import { test, expect } from "@playwright/test"; +import { wait } from "@open-next/utils"; + +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/appDirOnly/middleware.redirect.test.ts b/packages/tests-e2e/tests/appDirOnly/middleware.redirect.test.ts new file mode 100644 index 00000000..b68aeba8 --- /dev/null +++ b/packages/tests-e2e/tests/appDirOnly/middleware.redirect.test.ts @@ -0,0 +1,17 @@ +import { test, expect } 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/appDirOnly/middleware.rewrite.test.ts b/packages/tests-e2e/tests/appDirOnly/middleware.rewrite.test.ts new file mode 100644 index 00000000..2977c890 --- /dev/null +++ b/packages/tests-e2e/tests/appDirOnly/middleware.rewrite.test.ts @@ -0,0 +1,16 @@ +import { test, expect } 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/appDirOnly/modals.test.ts b/packages/tests-e2e/tests/appDirOnly/modals.test.ts new file mode 100644 index 00000000..8b0f9d06 --- /dev/null +++ b/packages/tests-e2e/tests/appDirOnly/modals.test.ts @@ -0,0 +1,22 @@ +import { test, expect } 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/appDirOnly/serverActions.test.ts b/packages/tests-e2e/tests/appDirOnly/serverActions.test.ts new file mode 100644 index 00000000..72acb66f --- /dev/null +++ b/packages/tests-e2e/tests/appDirOnly/serverActions.test.ts @@ -0,0 +1,22 @@ +import { test, expect } 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/appDirOnly/ssr.test.ts b/packages/tests-e2e/tests/appDirOnly/ssr.test.ts new file mode 100644 index 00000000..1a2aeca0 --- /dev/null +++ b/packages/tests-e2e/tests/appDirOnly/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/pagesOnly/isr.test.ts b/packages/tests-e2e/tests/pagesOnly/isr.test.ts new file mode 100644 index 00000000..8f1307b5 --- /dev/null +++ b/packages/tests-e2e/tests/pagesOnly/isr.test.ts @@ -0,0 +1,40 @@ +import { test, expect } from "@playwright/test"; +import { wait } from "@open-next/utils"; + +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/pagesOnly/ssr.test.ts b/packages/tests-e2e/tests/pagesOnly/ssr.test.ts new file mode 100644 index 00000000..7fe159f2 --- /dev/null +++ b/packages/tests-e2e/tests/pagesOnly/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 { 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", 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..ce546d26 --- /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": "esnext", + "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..a1cdba48 --- /dev/null +++ b/packages/tests-unit/tests/binary.test.ts @@ -0,0 +1,107 @@ +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..3935c385 --- /dev/null +++ b/packages/tests-unit/tests/example.test.ts @@ -0,0 +1,6 @@ +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..7792b109 --- /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": "esnext", + "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..fc2cb157 --- /dev/null +++ b/packages/utils/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": false, + "moduleResolution": "node", + "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..2448b41f 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.2)(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,7 +76,7 @@ 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 @@ -82,20 +85,76 @@ importers: specifier: 10.1.156 version: 10.1.156 sst: - specifier: 2.16.3 - version: 2.16.3 + specifier: 2.24.2 + version: 2.24.2 + + packages/app-dir: + dependencies: + '@open-next/core': + specifier: workspace:* + version: link:../core + '@open-next/utils': + specifier: workspace:* + version: link:../utils + open-next: + specifier: workspace:* + version: link:../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 + + packages/core: + 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 packages/open-next: dependencies: '@aws-sdk/client-lambda': specifier: ^3.312.0 - version: 3.312.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) + version: 3.400.0(@aws-sdk/signature-v4-crt@3.398.0) '@aws-sdk/client-sqs': specifier: ^3.312.0 - version: 3.312.0 + version: 3.398.0 '@node-minify/core': specifier: ^8.0.6 version: 8.0.6 @@ -104,7 +163,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 +173,102 @@ 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/pages-only: + dependencies: + '@next/font': + specifier: 13.4.16 + version: 13.4.16 + '@open-next/core': + specifier: workspace:* + version: link:../core + '@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 + 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 +284,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,66 +307,63 @@ 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.84.0)(constructs@10.1.156): + 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 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.84.0)(constructs@10.1.156) + 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.84.0)(constructs@10.1.156) + 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 - semver: 7.5.4 dev: true bundledDependencies: - 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,14 +371,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 - semver: 7.5.4 + '@aws-cdk/cloud-assembly-schema': 2.91.0 dev: true bundledDependencies: - semver @@ -239,14 +386,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 +407,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 +419,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 +428,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 +448,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 +551,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 +778,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,109 +870,110 @@ 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/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 - fast-xml-parser: 4.1.2 + '@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 + '@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 + fast-xml-parser: 4.2.5 tslib: 2.6.2 transitivePeerDependencies: - '@aws-sdk/signature-v4-crt' - aws-crt - /@aws-sdk/client-sqs@3.312.0: - resolution: {integrity: sha512-5laZcRwwT9GYf37K1BEBoynz4ofRuGLfvhmXQnq5QhFo5+SCYBREHinkhup81Bajrs8BK0Rju20tqpG8NcSU0Q==} + /@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.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 + '@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 + '@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/md5-js': 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 @@ -825,84 +1025,6 @@ packages: - 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 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - /@aws-sdk/client-sso@3.398.0: resolution: {integrity: sha512-CygL0jhfibw4kmWXG/3sfZMFNjcXo66XUuPC4BqZBk8Rj5vFoxp1vZeMkDLzTIk97Nvo5J5Bh+QnXKhub6AckQ==} engines: {node: '>=14.0.0'} @@ -942,50 +1064,6 @@ packages: 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 /@aws-sdk/client-sts@3.398.0: resolution: {integrity: sha512-/3Pa9wLMvBZipKraq3AtbmTfXW6q9kyvhwOno64f1Fz7kFb8ijQFMGoATS70B2pGEZTlxkUqJFWDiisT6Q6dFg==} @@ -1030,16 +1108,6 @@ packages: tslib: 2.6.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==} @@ -1063,14 +1131,6 @@ packages: - aws-crt dev: true - /@aws-sdk/credential-provider-env@3.310.0: - resolution: {integrity: sha512-vvIPQpI16fj95xwS7M3D48F7QhZJBnnCgB5lR+b7So+vsG9ibm1mZRVGzVpdxCvgyOhHFbvrby9aalNJmmIP1A==} - 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-env@3.398.0: resolution: {integrity: sha512-Z8Yj5z7FroAsR6UVML+XUdlpoqEe9Dnle8c2h8/xWwIC2feTfIBhjLhRVxfbpbM1pLgBSNEcZ7U8fwq5l7ESVQ==} engines: {node: '>=14.0.0'} @@ -1079,33 +1139,6 @@ packages: '@smithy/property-provider': 2.0.5 '@smithy/types': 2.2.2 tslib: 2.6.2 - dev: true - - /@aws-sdk/credential-provider-imds@3.310.0: - resolution: {integrity: sha512-baxK7Zp6dai5AGW01FIW27xS2KAaPUmKLIXv5SvFYsUgXXvNW55im4uG3b+2gA0F7V+hXvVBH08OEqmwW6we5w==} - 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 - tslib: 2.6.2 - - /@aws-sdk/credential-provider-ini@3.310.0: - resolution: {integrity: sha512-gtRz7I+4BBpwZ3tc6UIt5lQuiAFnkpOibxHh95x1M6HDxBjm+uqD6RPZYVH+dULZPYXOtOTsHV0IGjrcV0sSRg==} - 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 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt /@aws-sdk/credential-provider-ini@3.398.0: resolution: {integrity: sha512-AsK1lStK3nB9Cn6S6ODb1ktGh7SRejsNVQVKX3t5d3tgOaX+aX1Iwy8FzM/ZEN8uCloeRifUGIY9uQFygg5mSw==} @@ -1123,24 +1156,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 +1174,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 +1184,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 +1198,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 +1207,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 +1231,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==} - 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==} + /@aws-sdk/middleware-bucket-endpoint@3.398.0: + resolution: {integrity: sha512-+iDHiRofK/vIY94RWAXkSnR4rBPzc2dPHmLp+FDKywq1y708H9W7TOT37dpn+KSFeO4k2FfddFjzWBHsaeakCA==} 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 +1272,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==} - 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==} + /@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 + '@aws-sdk/types': 3.398.0 + '@smithy/types': 2.2.2 tslib: 2.6.2 /@aws-sdk/middleware-logger@3.398.0: @@ -1428,15 +1288,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 +1297,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 +1308,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 +1337,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==} @@ -1536,28 +1349,13 @@ packages: '@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==} + /@aws-sdk/middleware-ssec@3.398.0: + resolution: {integrity: sha512-QtKr/hPcRugKSIZAH4+7hbUfdW7Lg+OQvD25nJn7ic1JHRZ+eDctEFxdsmnt68lE6aZxOcHCWHAW6/umcA93Dw==} 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 + '@aws-sdk/types': 3.398.0 + '@smithy/types': 2.2.2 tslib: 2.6.2 /@aws-sdk/middleware-user-agent@3.398.0: @@ -1569,66 +1367,6 @@ packages: '@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 - tslib: 2.6.2 - - /@aws-sdk/querystring-parser@3.310.0: - resolution: {integrity: sha512-YkIznoP6lsiIUHinx++/lbb3tlMURGGqMpo0Pnn32zYzGrJXA6eC3D0as2EcMjo55onTfuLcIiX4qzXes2MYOA==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.310.0 - 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==} - engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.310.0 - tslib: 2.6.2 /@aws-sdk/signature-v4-crt@3.398.0: resolution: {integrity: sha512-HAkVfsch52Kvjod2TRIH5oUIW03yFHsdOBMKg/ayZkV+WsxiJaKomErF8YgIVRBfQ24JZs1QCA+F046YpR8JAw==} @@ -1645,21 +1383,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 +1398,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 +1408,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 +1449,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 +1456,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 +1463,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 +1476,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 +1483,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 +1497,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 +1661,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 +1704,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 +1721,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 +1743,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 +1753,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 +1786,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 +1810,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 +1845,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 +1873,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 +1883,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 +1901,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,197 +1944,377 @@ 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: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.18.13: + resolution: {integrity: sha512-4iMxLRMCxGyk7lEvkkvrxw4aJeC93YIIrfbBlUJ062kilUUnAiMb81eEkVvCVoh3ON283ans7+OQkuy1uHW+Hw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.18.13: + resolution: {integrity: sha512-I3OKGbynl3AAIO6onXNrup/ttToE6Rv2XYfFgLK/wnr2J+1g+7k4asLrE+n7VMhaqX+BUnyWkCu27rl+62Adug==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} engines: {node: '>=12'} - cpu: [arm64] - os: [android] + cpu: [ia32] + os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/android-arm@0.15.18: - resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} + /@esbuild/linux-loong64@0.15.18: + resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} engines: {node: '>=12'} - cpu: [arm] - os: [android] + cpu: [loong64] + os: [linux] requiresBuild: true dev: false optional: true - /@esbuild/android-arm@0.16.13: - resolution: {integrity: sha512-JmtqThupn9Yf+FzANE+GG73ASUkssnPwOsndUElhp23685QzRK+MO1UompOlBaXV9D5FTuYcPnw7p4mCq2YbZQ==} + /@esbuild/linux-loong64@0.18.13: + resolution: {integrity: sha512-8pcKDApAsKc6WW51ZEVidSGwGbebYw2qKnO1VyD8xd6JN0RN6EUXfhXmDk9Vc4/U3Y4AoFTexQewQDJGsBXBpg==} engines: {node: '>=12'} - cpu: [arm] - os: [android] + cpu: [loong64] + os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/android-x64@0.16.13: - resolution: {integrity: sha512-hKt1bFht/Vtp0xJ0ZVzFMnPy1y1ycmM3KNnp3zsyZfQmw7nhs2WLO4vxdR5YG+6RsHKCb2zbZ3VwlC0Tij0qyA==} + /@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} engines: {node: '>=12'} - cpu: [x64] - os: [android] + cpu: [loong64] + os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/darwin-arm64@0.16.13: - resolution: {integrity: sha512-ogrVuNi2URocrr3Ps20f075EMm9V7IeenOi9FRj4qdbT6mQlwLuP4l90PW2iBrKERx0oRkcZprEUNsz/3xd7ww==} + /@esbuild/linux-mips64el@0.18.13: + resolution: {integrity: sha512-6GU+J1PLiVqWx8yoCK4Z0GnfKyCGIH5L2KQipxOtbNPBs+qNDcMJr9euxnyJ6FkRPyMwaSkjejzPSISD9hb+gg==} engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] + cpu: [mips64el] + os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/darwin-x64@0.16.13: - resolution: {integrity: sha512-Agajik9SBGiKD7FPXE+ExW6x3MgA/dUdpZnXa9y1tyfE4lKQx+eQiknSdrBnWPeqa9wL0AOvkhghmYhpVkyqkA==} + /@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} engines: {node: '>=12'} - cpu: [x64] - os: [darwin] + cpu: [mips64el] + os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/freebsd-arm64@0.16.13: - resolution: {integrity: sha512-KxMO3/XihBcHM+xQUM6nQZO1SgQuOsd1DCnKF1a4SIf/i5VD45vrqN3k8ePgFrEbMi7m5JeGmvNqwJXinF0a4Q==} + /@esbuild/linux-ppc64@0.18.13: + resolution: {integrity: sha512-pfn/OGZ8tyR8YCV7MlLl5hAit2cmS+j/ZZg9DdH0uxdCoJpV7+5DbuXrR+es4ayRVKIcfS9TTMCs60vqQDmh+w==} engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] + cpu: [ppc64] + os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/freebsd-x64@0.16.13: - resolution: {integrity: sha512-Ez15oqV1vwvZ30cVLeBW14BsWq/fdWNQGMOxxqaSJVQVLqHhvgfQ7gxGDiN9tpJdeQhqJO+Q0r02/Tce5+USNg==} + /@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] + cpu: [ppc64] + os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-arm64@0.16.13: - resolution: {integrity: sha512-qi5n7KwcGViyJeZeQnu8fB6dC3Mlm5PGaqSv2HhQDDx/MPvVfQGNMcv7zcBL4qk3FkuWhGVwXkjQ76x7R0PWlA==} + /@esbuild/linux-riscv64@0.18.13: + resolution: {integrity: sha512-aIbhU3LPg0lOSCfVeGHbmGYIqOtW6+yzO+Nfv57YblEK01oj0mFMtvDJlOaeAZ6z0FZ9D13oahi5aIl9JFphGg==} engines: {node: '>=12'} - cpu: [arm64] + cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-arm@0.16.13: - resolution: {integrity: sha512-18dLd2L3mda+iFj6sswyBMSh2UwniamD9M4DwPv8VM+9apRFlQ5IGKxBdumnTuOI4NvwwAernmUseWhYQ9k+rg==} + /@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} engines: {node: '>=12'} - cpu: [arm] + cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-ia32@0.16.13: - resolution: {integrity: sha512-2489Xad9sr+6GD7nB913fUqpCsSwVwgskkQTq4Or2mZntSPYPebyJm8l1YruHo7oqYMTGV6RiwGE4gRo3H+EPQ==} + /@esbuild/linux-s390x@0.18.13: + resolution: {integrity: sha512-Pct1QwF2sp+5LVi4Iu5Y+6JsGaV2Z2vm4O9Dd7XZ5tKYxEHjFtb140fiMcl5HM1iuv6xXO8O1Vrb1iJxHlv8UA==} engines: {node: '>=12'} - cpu: [ia32] + cpu: [s390x] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-loong64@0.15.18: - resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} + /@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} engines: {node: '>=12'} - cpu: [loong64] + cpu: [s390x] 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-x64@0.18.13: + resolution: {integrity: sha512-zTrIP0KzYP7O0+3ZnmzvUKgGtUvf4+piY8PIO3V8/GfmVd3ZyHJGz7Ht0np3P1wz+I8qJ4rjwJKqqEAbIEPngA==} engines: {node: '>=12'} - cpu: [loong64] + cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-mips64el@0.16.13: - resolution: {integrity: sha512-qhhdWph9FLwD9rVVC/nUf7k2U4NZIA6/mGx0B7+O6PFV0GjmPA2E3zDQ4NUjq9P26E0DeAZy9akH9dYcUBRU7A==} + /@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} engines: {node: '>=12'} - cpu: [mips64el] + cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@esbuild/linux-ppc64@0.16.13: - resolution: {integrity: sha512-cVWAPKsrRVxI1jCeJHnYSbE3BrEU+pZTZK2gfao9HRxuc+3m4+RLfs3EVEpGLmMKEcWfVCB9wZ3yNxnknutGKQ==} + /@esbuild/netbsd-x64@0.18.13: + resolution: {integrity: sha512-I6zs10TZeaHDYoGxENuksxE1sxqZpCp+agYeW039yqFwh3MgVvdmXL5NMveImOC6AtpLvE4xG5ujVic4NWFIDQ==} engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] + cpu: [x64] + os: [netbsd] requiresBuild: true dev: true optional: true - /@esbuild/linux-riscv64@0.16.13: - resolution: {integrity: sha512-Agb7dbRyZWnmPn5Vvf0eyqaEUqSsaIUwwyInu2EoFTaIDRp093QU2M5alUyOooMLkRbD1WvqQNwx08Z/g+SAcQ==} + /@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] + cpu: [x64] + os: [netbsd] requiresBuild: true dev: true optional: true - /@esbuild/linux-s390x@0.16.13: - resolution: {integrity: sha512-AqRBIrc/+kl08ahliNG+EyU+j41wIzQfwBTKpi80cCDiYvYFPuXjvzZsD9muiu58Isj0RVni9VgC4xK/AnSW4g==} + /@esbuild/openbsd-x64@0.18.13: + resolution: {integrity: sha512-W5C5nczhrt1y1xPG5bV+0M12p2vetOGlvs43LH8SopQ3z2AseIROu09VgRqydx5qFN7y9qCbpgHLx0kb0TcW7g==} engines: {node: '>=12'} - cpu: [s390x] - os: [linux] + cpu: [x64] + os: [openbsd] requiresBuild: true dev: true optional: true - /@esbuild/linux-x64@0.16.13: - resolution: {integrity: sha512-S4wn2BimuhPcoArRtVrdHUKIymCCZcYAXQE47kUiX4yrUrEX2/ifn5eKNbZ5c1jJKUlh1gC2ESIN+iw3wQax3g==} + /@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} cpu: [x64] - os: [linux] + os: [openbsd] requiresBuild: true dev: true optional: true - /@esbuild/netbsd-x64@0.16.13: - resolution: {integrity: sha512-2c8JWgfUMlQHTdaR5X3xNMwqOyad8kgeCupuVkdm3QkUOzGREjlTETQsK6oHifocYzDCo9FeKcUwsK356SdR+g==} + /@esbuild/sunos-x64@0.18.13: + resolution: {integrity: sha512-X/xzuw4Hzpo/yq3YsfBbIsipNgmsm8mE/QeWbdGdTTeZ77fjxI2K0KP3AlhZ6gU3zKTw1bKoZTuKLnqcJ537qw==} engines: {node: '>=12'} cpu: [x64] - os: [netbsd] + os: [sunos] requiresBuild: true dev: true optional: true - /@esbuild/openbsd-x64@0.16.13: - resolution: {integrity: sha512-Bwh+PmKD/LK+xBjqIpnYnKYj0fIyQJ0YpRxsn0F+WfzvQ2OA+GKDlf8AHosiCns26Q4Dje388jQVwfOBZ1GaFw==} + /@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} engines: {node: '>=12'} cpu: [x64] - os: [openbsd] + os: [sunos] requiresBuild: true dev: true optional: true - /@esbuild/sunos-x64@0.16.13: - resolution: {integrity: sha512-8wwk6f9XGnhrF94/DBdFM4Xm1JeCyGTCj67r516VS9yvBVQf3Rar54L+XPVDs/oZOokwH+XsktrgkuTMAmjntg==} + /@esbuild/win32-arm64@0.18.13: + resolution: {integrity: sha512-4CGYdRQT/ILd+yLLE5i4VApMPfGE0RPc/wFQhlluDQCK09+b4JDbxzzjpgQqTPrdnP7r5KUtGVGZYclYiPuHrw==} engines: {node: '>=12'} - cpu: [x64] - os: [sunos] + cpu: [arm64] + os: [win32] requiresBuild: true dev: true optional: true - /@esbuild/win32-arm64@0.16.13: - resolution: {integrity: sha512-Jmwbp/5ArLCiRAHC33ODfcrlIcbP/exXkOEUVkADNJC4e/so2jm+i8IQFvVX/lA2GWvK3GdgcN0VFfp9YITAbg==} + /@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -2606,8 +2322,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 +2340,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 +2358,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 +2470,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: @@ -2771,6 +2515,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 +2578,17 @@ 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 + /@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 +2597,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 +2607,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 +2614,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 +2632,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: false optional: true /@next/swc-linux-arm64-gnu@13.4.12: @@ -2857,7 +2640,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: false optional: true /@next/swc-linux-arm64-musl@13.4.12: @@ -2866,7 +2648,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: false optional: true /@next/swc-linux-x64-gnu@13.4.12: @@ -2875,7 +2656,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: false optional: true /@next/swc-linux-x64-musl@13.4.12: @@ -2884,7 +2664,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: false optional: true /@next/swc-win32-arm64-msvc@13.4.12: @@ -2893,7 +2672,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: false optional: true /@next/swc-win32-ia32-msvc@13.4.12: @@ -2902,7 +2680,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: false optional: true /@next/swc-win32-x64-msvc@13.4.12: @@ -2911,7 +2688,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: false optional: true /@node-minify/core@8.0.6: @@ -2944,12 +2720,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 +2731,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 +2774,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 +2793,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.2)(typescript@4.9.3): resolution: {integrity: sha512-PRTN5LGAuQ7dMuovHLrA8Hl5KTUOWjouAI7u99Mr7J52XH6bZX199grD3Q4/ZpcT60jEH+F8ateiXTg8NMR1WA==} peerDependencies: eslint: 8.x @@ -3017,17 +2819,17 @@ 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) + '@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.2) + 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.2 typescript: 4.9.3 transitivePeerDependencies: @@ -3051,7 +2853,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 +2883,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 +2893,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 +2902,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 +2951,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 +2968,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 +2996,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 +3010,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 +3020,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 +3045,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 +3052,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 +3065,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 +3074,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 +3095,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 +3102,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 +3117,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 +3134,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 +3150,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 +3157,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 +3189,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 +3209,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 +3224,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 +3263,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 +3272,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 +3283,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 +3324,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 +3351,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 +3387,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,12 +3404,38 @@ packages: tslib: 2.6.2 dev: true - /@tsconfig/node18@1.0.1: - resolution: {integrity: sha512-sNFeK6X2ATlhlvzyH4kKYQlfHXE2f2/wxtB9ClvYXevWpmwkUT7VaSrjIN9E76Qebz8qP5JOJJ9jD3QoD/Z9TA==} + /@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.109: - resolution: {integrity: sha512-/ME92FneNyXQzrAfcnQQlW1XkCZGPDlpi2ao1MJwecN+6SbeonKeggU8eybv1DfKli90FAVT1MlIZVXfwVuCyg==} + /@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: @@ -3576,6 +3444,29 @@ packages: 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/istanbul-reports@3.0.1: + resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} + dependencies: + '@types/istanbul-lib-report': 3.0.0 + dev: true + + /@types/jest@29.5.4: + resolution: {integrity: sha512-PhglGmhWeD46FYOVLt3X7TiWjzwuVGW9wG/4qocPevXMjCmrIc5b6db9WjeGE4QYVpUAWMDv3v0IiBwObY289A==} + dependencies: + expect: 29.6.4 + pretty-format: 29.6.3 + dev: true + /@types/json-schema@7.0.12: resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true @@ -3598,27 +3489,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 +3525,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/stack-utils@2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true - /@types/semver@7.5.0: - resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} + /@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 +3556,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 +3580,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 +3597,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 +3607,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 +3636,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 +3660,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 +3672,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 +3793,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 +3813,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 +3828,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 +3901,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 +3950,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 +4075,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 +4102,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,6 +4121,21 @@ 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'} @@ -4140,6 +4174,29 @@ packages: - table - yaml + /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 + dependencies: + '@aws-cdk/asset-awscli-v1': 2.2.200 + '@aws-cdk/asset-kubectl-v20': 2.1.2 + '@aws-cdk/asset-node-proxy-agent-v5': 2.0.166 + constructs: 10.2.69 + dev: true + bundledDependencies: + - '@balena/dockerignore' + - case + - fs-extra + - ignore + - jsonschema + - minimatch + - punycode + - semver + - table + - yaml + /aws-crt@1.18.0: resolution: {integrity: sha512-H5Vrb/GMzq72+Of2zrW69i/BTQ4gQd3MQvdZ3X3okfppzHdEjSPkdJN6ia8V2/1J1FmFvEtoxaY4nwraHUGQvg==} requiresBuild: true @@ -4195,10 +4252,19 @@ 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==} dependencies: @@ -4230,7 +4296,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 +4312,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 +4366,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 +4394,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 +4422,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 +4443,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 +4460,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 +4490,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 +4504,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 +4525,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 +4562,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 +4584,6 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 - dev: true /ci-info@3.8.0: resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} @@ -4517,7 +4617,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 +4678,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 +4693,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: @@ -4636,6 +4746,11 @@ packages: engines: {node: '>= 14.17.0'} dev: true + /constructs@10.2.69: + resolution: {integrity: sha512-0AiM/uQe5Uk6JVe/62oolmSN2MjbFQkOlYrM3fFGZLKuT+g7xlAI10EebFhyCcZwI2JAcWuWCmmCAyCothxjuw==} + engines: {node: '>= 16.14.0'} + dev: true + /content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} @@ -4681,6 +4796,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 +4828,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 +4869,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 +4939,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 +4991,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 +5010,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 +5025,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 +5050,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 +5067,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 +5098,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 +5158,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 +5192,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 +5480,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 +5562,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 +5573,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 +5606,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 +5615,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 +5629,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 +5650,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 +5669,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.groupby: 1.0.1 + object.values: 1.1.7 semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: @@ -5486,13 +5694,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 +5709,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.entries: 1.1.7 object.fromentries: 2.0.6 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.2): resolution: {integrity: sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5525,23 +5733,23 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.47.0 - eslint-config-prettier: 9.0.0(eslint@8.47.0) + eslint: 8.48.0 + eslint-config-prettier: 9.0.0(eslint@8.48.0) prettier: 3.0.2 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 +5760,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.entries: 1.1.7 object.fromentries: 2.0.6 - object.hasown: 1.1.2 - object.values: 1.1.6 + 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 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 +5801,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,12 +5824,12 @@ 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 @@ -5705,6 +5913,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 +5960,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 +6046,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,7 +6055,6 @@ 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==} @@ -5863,27 +6082,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 +6108,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 +6167,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 +6175,8 @@ packages: peerDependenciesMeta: debug: optional: true + dependencies: + debug: 4.3.4 /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -5972,16 +6184,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 +6267,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 +6295,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 +6337,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 +6423,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 +6534,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 +6578,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 +6604,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 +6646,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 +6820,6 @@ packages: engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 - dev: true /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} @@ -6576,17 +6850,10 @@ packages: ci-info: 3.8.0 dev: true - /is-core-module@2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} - dependencies: - has: 1.0.3 - 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 +6886,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 +6915,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 +6958,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 +6979,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 +7097,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 +7140,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 +7239,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 +7318,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 +7347,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 +7360,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 +7383,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 +7413,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 +7437,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 +7459,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 +7506,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 +7544,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 +7578,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 +7606,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 +7701,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 +7722,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 +7834,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 +7925,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 +7946,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 +7957,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 +8012,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 +8032,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 +8067,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 +8078,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 +8106,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 @@ -7633,8 +8124,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 +8133,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 +8258,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 +8324,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 +8366,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 +8384,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 +8425,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 +8440,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 +8508,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,14 +8552,8 @@ 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 @@ -7970,6 +8564,15 @@ packages: 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 +8617,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 +8643,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 +8676,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 +8711,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 +8737,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 +8808,6 @@ packages: engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - dev: true /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} @@ -8200,8 +8829,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 +8899,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 +8917,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 +8924,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 +8945,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 +8956,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 +8979,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 +9018,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 +9038,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 +9128,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 +9166,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 +9182,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 +9193,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 +9239,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 +9261,8 @@ packages: fsevents: 2.3.2 dev: true - /sst@2.16.3: - resolution: {integrity: sha512-SdowHylIh0CfaYmTvhSWF4DE0d6f9Lt+Ny8X9A2G4wPEKf+3dTgxz0AqJdI6I5WHccQHIJ1iAinRtTn/W9hBxA==} + /sst@2.24.2: + resolution: {integrity: sha512-SDQepov+Nfn0H0eGrlkKBuATnmNQZCt4KwPJYcMxjQb8QwByNLNB77x8esSUDuGiJdP4Lca1Tl10Idzfu2Bc9Q==} hasBin: true peerDependencies: '@sls-next/lambda-at-edge': ^3.7.0 @@ -8608,20 +9270,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.84.0)(constructs@10.1.156) + '@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,23 +9297,24 @@ 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 get-port: 6.1.2 @@ -8659,15 +9324,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 +9359,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 +9396,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==} @@ -8839,6 +9535,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 +9560,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 +9590,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 +9622,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 +9684,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 +9747,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 +9803,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 +9852,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 +9970,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 +10059,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 +10137,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 +10173,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 +10223,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 +10269,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 +10446,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 +10469,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 +10496,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 +10518,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 +10579,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 +10665,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 +10683,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 +10715,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 +10780,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 +10810,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/turbo.json b/turbo.json new file mode 100644 index 00000000..917ecbc8 --- /dev/null +++ b/turbo.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://turbo.build/schema.json", + "globalEnv": [ + "APP_DIR_ONLY_URL", + "PAGES_ONLY_URL", + "APP_DIR_AND_PAGES_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 From cb17f42dbdcfe0738825ac61301cbd9d43755bf4 Mon Sep 17 00:00:00 2001 From: Khue Nguyen Date: Tue, 22 Aug 2023 10:20:41 -0700 Subject: [PATCH 02/26] add parallel route and tests --- packages/app-dir/app/page.tsx | 3 ++ .../app-dir/app/parallel/@a/a-page/page.tsx | 3 ++ packages/app-dir/app/parallel/@a/page.tsx | 9 ++++ .../app-dir/app/parallel/@b/b-page/page.tsx | 3 ++ packages/app-dir/app/parallel/@b/page.tsx | 9 ++++ packages/app-dir/app/parallel/layout.tsx | 29 +++++++++++++ packages/app-dir/app/parallel/page.tsx | 3 ++ packages/core/api/index.ts | 4 +- packages/core/sst-env.d.ts | 1 + packages/open-next/src/build.ts | 1 - packages/tests-e2e/package.json | 4 +- .../tests/appDirOnly/parallel.test.ts | 42 +++++++++++++++++++ 12 files changed, 107 insertions(+), 4 deletions(-) create mode 100644 packages/app-dir/app/parallel/@a/a-page/page.tsx create mode 100644 packages/app-dir/app/parallel/@a/page.tsx create mode 100644 packages/app-dir/app/parallel/@b/b-page/page.tsx create mode 100644 packages/app-dir/app/parallel/@b/page.tsx create mode 100644 packages/app-dir/app/parallel/layout.tsx create mode 100644 packages/app-dir/app/parallel/page.tsx create mode 100644 packages/core/sst-env.d.ts create mode 100644 packages/tests-e2e/tests/appDirOnly/parallel.test.ts diff --git a/packages/app-dir/app/page.tsx b/packages/app-dir/app/page.tsx index d7e44c96..85872512 100644 --- a/packages/app-dir/app/page.tsx +++ b/packages/app-dir/app/page.tsx @@ -30,6 +30,9 @@ export default function Home() { +
) diff --git a/packages/app-dir/app/parallel/@a/a-page/page.tsx b/packages/app-dir/app/parallel/@a/a-page/page.tsx new file mode 100644 index 00000000..d0e950b6 --- /dev/null +++ b/packages/app-dir/app/parallel/@a/a-page/page.tsx @@ -0,0 +1,3 @@ +export default function APage() { + return
A Page
+} \ No newline at end of file diff --git a/packages/app-dir/app/parallel/@a/page.tsx b/packages/app-dir/app/parallel/@a/page.tsx new file mode 100644 index 00000000..5d46d92b --- /dev/null +++ b/packages/app-dir/app/parallel/@a/page.tsx @@ -0,0 +1,9 @@ +import Link from "next/link"; + +export default function A() { + return
+

Parallel Route A

+ Go to a-page + +
+} \ No newline at end of file diff --git a/packages/app-dir/app/parallel/@b/b-page/page.tsx b/packages/app-dir/app/parallel/@b/b-page/page.tsx new file mode 100644 index 00000000..381e6077 --- /dev/null +++ b/packages/app-dir/app/parallel/@b/b-page/page.tsx @@ -0,0 +1,3 @@ +export default function BPage() { + return
B Page
+} \ No newline at end of file diff --git a/packages/app-dir/app/parallel/@b/page.tsx b/packages/app-dir/app/parallel/@b/page.tsx new file mode 100644 index 00000000..7005af8f --- /dev/null +++ b/packages/app-dir/app/parallel/@b/page.tsx @@ -0,0 +1,9 @@ +import Link from "next/link"; + +export default function B() { + return
+

Parallel Route B

+ + Go to b-page +
+} \ No newline at end of file diff --git a/packages/app-dir/app/parallel/layout.tsx b/packages/app-dir/app/parallel/layout.tsx new file mode 100644 index 00000000..8bc2aab5 --- /dev/null +++ b/packages/app-dir/app/parallel/layout.tsx @@ -0,0 +1,29 @@ +'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} */} +
+} \ No newline at end of file diff --git a/packages/app-dir/app/parallel/page.tsx b/packages/app-dir/app/parallel/page.tsx new file mode 100644 index 00000000..9855122f --- /dev/null +++ b/packages/app-dir/app/parallel/page.tsx @@ -0,0 +1,3 @@ +export default function Page() { + return null +} \ No newline at end of file diff --git a/packages/core/api/index.ts b/packages/core/api/index.ts index f6f6d6d8..aa738c07 100644 --- a/packages/core/api/index.ts +++ b/packages/core/api/index.ts @@ -32,6 +32,8 @@ export async function getSongs() { export async function getSong(album: string, title: string) { return data.songs.find( - (song) => song.album === decodeURIComponent(album) && song.title === decodeURIComponent(title) + (song) => + song.album === decodeURIComponent(album) && + song.title === decodeURIComponent(title) ); } diff --git a/packages/core/sst-env.d.ts b/packages/core/sst-env.d.ts new file mode 100644 index 00000000..9ed47f0f --- /dev/null +++ b/packages/core/sst-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/open-next/src/build.ts b/packages/open-next/src/build.ts index 46c1d032..444dde07 100644 --- a/packages/open-next/src/build.ts +++ b/packages/open-next/src/build.ts @@ -44,7 +44,6 @@ export async function build(opts: BuildOptions = {}) { // Initialize options options = normalizeOptions(opts); - console.log("~~hi"); // Pre-build validation checkRunningInsideNextjsApp(); printNextjsVersion(); diff --git a/packages/tests-e2e/package.json b/packages/tests-e2e/package.json index 9d9824e3..bf0cc577 100644 --- a/packages/tests-e2e/package.json +++ b/packages/tests-e2e/package.json @@ -3,8 +3,8 @@ "version": "0.0.0", "private": true, "scripts": { - "e2e:dev": "playwright test", - "e2e:test": "playwright test", + "e2e:dev": "playwright test --retries=5", + "e2e:test": "playwright test --retries=5", "clean": "rm -rf .turbo && rm -rf node_modules" }, "dependencies": { diff --git a/packages/tests-e2e/tests/appDirOnly/parallel.test.ts b/packages/tests-e2e/tests/appDirOnly/parallel.test.ts new file mode 100644 index 00000000..17de2f12 --- /dev/null +++ b/packages/tests-e2e/tests/appDirOnly/parallel.test.ts @@ -0,0 +1,42 @@ +import { test, expect } 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(); +}); From 721db680da9e4c02c3d2423f67e43c93246fdd66 Mon Sep 17 00:00:00 2001 From: Khue Nguyen Date: Wed, 23 Aug 2023 14:06:26 -0700 Subject: [PATCH 03/26] added host test --- packages/tests-e2e/package.json | 5 ++--- packages/tests-e2e/tests/appDirOnly/host.test.ts | 12 ++++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 packages/tests-e2e/tests/appDirOnly/host.test.ts diff --git a/packages/tests-e2e/package.json b/packages/tests-e2e/package.json index bf0cc577..be93b951 100644 --- a/packages/tests-e2e/package.json +++ b/packages/tests-e2e/package.json @@ -3,12 +3,11 @@ "version": "0.0.0", "private": true, "scripts": { - "e2e:dev": "playwright test --retries=5", + "e2e:dev": "playwright test --retries=5 --headed", "e2e:test": "playwright test --retries=5", "clean": "rm -rf .turbo && rm -rf node_modules" }, - "dependencies": { - }, + "dependencies": {}, "devDependencies": { "@playwright/test": "1.37.0", "@open-next/utils": "workspace:*", diff --git a/packages/tests-e2e/tests/appDirOnly/host.test.ts b/packages/tests-e2e/tests/appDirOnly/host.test.ts new file mode 100644 index 00000000..9457029f --- /dev/null +++ b/packages/tests-e2e/tests/appDirOnly/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(); +// }); From 5fe35e7a1a467407a4f093f32c3a6be2f1abef50 Mon Sep 17 00:00:00 2001 From: Khue Nguyen Date: Fri, 25 Aug 2023 08:47:03 -0700 Subject: [PATCH 04/26] add file --- packages/app-dir/app/api/host/route.ts | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 packages/app-dir/app/api/host/route.ts diff --git a/packages/app-dir/app/api/host/route.ts b/packages/app-dir/app/api/host/route.ts new file mode 100644 index 00000000..a11b136b --- /dev/null +++ b/packages/app-dir/app/api/host/route.ts @@ -0,0 +1,6 @@ +import { NextResponse } from "next/server"; +export async function GET(request: Request) { + return NextResponse.json({ + url: request.url, + }); +} From 539c1e39c69ae513c7e241ff1fc74cc396dc2519 Mon Sep 17 00:00:00 2001 From: Khue Nguyen Date: Sun, 27 Aug 2023 16:38:55 -0700 Subject: [PATCH 05/26] add sst account to e2e yml config --- .github/workflows/e2e.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index ecb740e2..084534d1 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -4,6 +4,10 @@ on: pull_request: types: [opened, synchronize] +permissions: + id-token: write # This is required for requesting the JWT + contents: read # This is required for actions/checkout + env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 PLAYWRIGHT_BROWSERS_PATH: 0 @@ -18,6 +22,12 @@ jobs: - name: Checkout code uses: actions/checkout@v3 + - name: configure aws credentials + uses: aws-actions/configure-aws-credentials@v2 + with: + role-to-assume: arn:aws:iam::918074996169:role/GitHub + aws-region: us-east-1 + - name: Setup pnpm uses: pnpm/action-setup@v2 with: From a94745075f75df0ecc219d74f7a5045d39daab54 Mon Sep 17 00:00:00 2001 From: Khue Nguyen Date: Sun, 27 Aug 2023 16:40:37 -0700 Subject: [PATCH 06/26] empty commit From b4968c52d31ad3e3fc937942a6c715f1972f48cb Mon Sep 17 00:00:00 2001 From: Khue Nguyen Date: Sun, 27 Aug 2023 16:43:20 -0700 Subject: [PATCH 07/26] fix working directory --- .github/workflows/e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 084534d1..117a151f 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -74,7 +74,7 @@ jobs: # Deploy e2e stage - name: Deploy NextjsSite - cwd: example + working-directory: example run: npx sst deploy --stage e2e env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} From 3fa1e18825e5d7e7cdfc62d07209d8dbdad6599f Mon Sep 17 00:00:00 2001 From: Khue Nguyen Date: Sun, 27 Aug 2023 16:44:14 -0700 Subject: [PATCH 08/26] remove ci env --- .github/workflows/e2e.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 117a151f..c069d580 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -16,8 +16,7 @@ env: jobs: e2e: runs-on: ubuntu-latest - environment: - name: ci + steps: - name: Checkout code uses: actions/checkout@v3 From 4549455ed4f799e1c8efa6c8afa57cdc28a251aa Mon Sep 17 00:00:00 2001 From: Khue Nguyen Date: Sun, 27 Aug 2023 16:50:04 -0700 Subject: [PATCH 09/26] update yaml --- .github/workflows/e2e.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index c069d580..52c601df 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -22,7 +22,7 @@ jobs: uses: actions/checkout@v3 - name: configure aws credentials - uses: aws-actions/configure-aws-credentials@v2 + uses: aws-actions/configure-aws-credentials@v3 with: role-to-assume: arn:aws:iam::918074996169:role/GitHub aws-region: us-east-1 @@ -75,10 +75,6 @@ jobs: - name: Deploy NextjsSite working-directory: example run: npx sst deploy --stage e2e - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: "us-east-1" # Load app urls from .sst/output.json file - name: Set environments From 7deaa3609b2f11fbff618ac76f2a679f9e01d35f Mon Sep 17 00:00:00 2001 From: Khue Nguyen Date: Sun, 27 Aug 2023 16:51:22 -0700 Subject: [PATCH 10/26] moved permissions to run block --- .github/workflows/e2e.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 52c601df..12c1fb62 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -4,9 +4,7 @@ on: pull_request: types: [opened, synchronize] -permissions: - id-token: write # This is required for requesting the JWT - contents: read # This is required for actions/checkout + env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 @@ -16,7 +14,9 @@ env: jobs: e2e: runs-on: ubuntu-latest - + permissions: + id-token: write # This is required for requesting the JWT + contents: read # This is required for actions/checkout steps: - name: Checkout code uses: actions/checkout@v3 From 1009e0189730f0213d741b0328ceb2547ce4aba8 Mon Sep 17 00:00:00 2001 From: Khue Nguyen Date: Sun, 27 Aug 2023 16:54:20 -0700 Subject: [PATCH 11/26] use master --- .github/workflows/e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 12c1fb62..62a24c39 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -22,7 +22,7 @@ jobs: uses: actions/checkout@v3 - name: configure aws credentials - uses: aws-actions/configure-aws-credentials@v3 + uses: aws-actions/configure-aws-credentials@master with: role-to-assume: arn:aws:iam::918074996169:role/GitHub aws-region: us-east-1 From 942efcd8f1edbe76a7df1cd27dafb9e8be2881cd Mon Sep 17 00:00:00 2001 From: Khue Nguyen Date: Mon, 28 Aug 2023 15:59:36 -0700 Subject: [PATCH 12/26] wip --- .github/workflows/e2e.yml | 2 +- docs/tsconfig.json | 4 +- example/package.json | 3 +- example/stacks/Example.ts | 18 - example_sst/package.json | 16 + example_sst/sst.config.ts | 19 + {example => example_sst}/stacks/AppDirOnly.ts | 0 {example => example_sst}/stacks/PagesOnly.ts | 0 package.json | 3 +- packages/app-dir/package.json | 7 +- packages/app-dir/sst-env.d.ts | 2 +- packages/app-dir/tsconfig.json | 2 +- packages/core/package.json | 3 + packages/core/sst-env.d.ts | 2 +- packages/core/tsconfig.json | 4 +- packages/open-next/package.json | 2 +- packages/open-next/tsconfig.json | 2 +- packages/pages-only/package.json | 7 +- packages/pages-only/sst-env.d.ts | 2 +- packages/pages-only/tsconfig.json | 4 +- packages/tests-e2e/playwright.config.js | 6 +- packages/tests-e2e/tsconfig.json | 2 +- packages/tests-unit/tsconfig.json | 2 +- packages/utils/tsconfig.json | 3 +- pnpm-lock.yaml | 1097 ++++++++++++----- pnpm-workspace.yaml | 1 + 26 files changed, 860 insertions(+), 353 deletions(-) delete mode 100644 example/stacks/Example.ts create mode 100644 example_sst/package.json create mode 100644 example_sst/sst.config.ts rename {example => example_sst}/stacks/AppDirOnly.ts (100%) rename {example => example_sst}/stacks/PagesOnly.ts (100%) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 62a24c39..b6b8f8a3 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -73,7 +73,7 @@ jobs: # Deploy e2e stage - name: Deploy NextjsSite - working-directory: example + working-directory: example_sst run: npx sst deploy --stage e2e # Load app urls from .sst/output.json file 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 435e6342..f1914ff3 100644 --- a/example/package.json +++ b/example/package.json @@ -2,7 +2,6 @@ "name": "open-next-benchmark", "version": "0.1.0", "private": true, - "type": "module", "scripts": { "dev": "sst bind next dev", "build": "next build", @@ -23,6 +22,6 @@ "devDependencies": { "aws-cdk-lib": "2.84.0", "constructs": "10.1.156", - "sst": "2.24.2" + "sst": "2.16.3" } } diff --git a/example/stacks/Example.ts b/example/stacks/Example.ts deleted file mode 100644 index 74d5bd2b..00000000 --- a/example/stacks/Example.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Config, NextjsSite } from "sst/constructs"; - -export function Example({ stack }) { - const site = new NextjsSite(stack, "site",{ - bind: [ - new Config.Secret(stack, "GITHUB_CLIENT_ID"), - new Config.Secret(stack, "GITHUB_CLIENT_SECRET"), - new Config.Secret(stack, "NEXTAUTH_SECRET"), - ], - environment: { - NEXTAUTH_URL: "https://d1gwt3w78t4dm3.cloudfront.net", - } - }); - - stack.addOutputs({ - SiteUrl: site.url, - }); -} \ No newline at end of file diff --git a/example_sst/package.json b/example_sst/package.json new file mode 100644 index 00000000..32c05454 --- /dev/null +++ b/example_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.84.0", + "constructs": "10.1.156", + "sst": "2.24.17" + } +} diff --git a/example_sst/sst.config.ts b/example_sst/sst.config.ts new file mode 100644 index 00000000..cc92fc54 --- /dev/null +++ b/example_sst/sst.config.ts @@ -0,0 +1,19 @@ +import { SSTConfig } from "sst"; + + +import { AppDirOnly } from "./stacks/AppDirOnly"; +import { PagesOnly } from "./stacks/PagesOnly"; + +export default { + config(_input) { + return { + name: "example", + region: "us-east-1", + }; + }, + stacks(app) { + app + .stack(AppDirOnly) + .stack(PagesOnly); + }, +} satisfies SSTConfig; diff --git a/example/stacks/AppDirOnly.ts b/example_sst/stacks/AppDirOnly.ts similarity index 100% rename from example/stacks/AppDirOnly.ts rename to example_sst/stacks/AppDirOnly.ts diff --git a/example/stacks/PagesOnly.ts b/example_sst/stacks/PagesOnly.ts similarity index 100% rename from example/stacks/PagesOnly.ts rename to example_sst/stacks/PagesOnly.ts diff --git a/package.json b/package.json index 5c67b238..bdac6a72 100644 --- a/package.json +++ b/package.json @@ -10,12 +10,13 @@ "scripts": { "dev": "turbo run dev", "build": "turbo run build", - "clean": "turbo run clean", + "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", diff --git a/packages/app-dir/package.json b/packages/app-dir/package.json index 29ca8abc..55093012 100644 --- a/packages/app-dir/package.json +++ b/packages/app-dir/package.json @@ -4,10 +4,11 @@ "private": true, "scripts": { "openbuild": "node ../open-next/dist/index.js build", - "dev": "next dev", + "dev": "next dev --port 3001", "build": "next build", - "start": "next start", - "lint": "next lint" + "start": "next start --port 3001", + "lint": "next lint", + "clean": "rm -rf .turbo && rm -rf node_modules" }, "dependencies": { "open-next": "workspace:*", diff --git a/packages/app-dir/sst-env.d.ts b/packages/app-dir/sst-env.d.ts index 7d85cdaa..9edabb6d 100644 --- a/packages/app-dir/sst-env.d.ts +++ b/packages/app-dir/sst-env.d.ts @@ -1 +1 @@ -/// \ No newline at end of file +/// diff --git a/packages/app-dir/tsconfig.json b/packages/app-dir/tsconfig.json index ca58f5b6..81f2bef5 100644 --- a/packages/app-dir/tsconfig.json +++ b/packages/app-dir/tsconfig.json @@ -8,7 +8,7 @@ "forceConsistentCasingInFileNames": true, "noEmit": true, "esModuleInterop": true, - "module": "esnext", + "module": "NodeNext", "moduleResolution": "NodeNext", "resolveJsonModule": true, "isolatedModules": true, diff --git a/packages/core/package.json b/packages/core/package.json index d596afe9..86cd4c6e 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,9 @@ { "name": "@open-next/core", "version": "0.0.0", + "scripts": { + "clean": "rm -rf .turbo && rm -rf node_modules" + }, "dependencies": { "react":"18.2.0" }, diff --git a/packages/core/sst-env.d.ts b/packages/core/sst-env.d.ts index 9ed47f0f..9edabb6d 100644 --- a/packages/core/sst-env.d.ts +++ b/packages/core/sst-env.d.ts @@ -1 +1 @@ -/// +/// diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 85d27a18..aa745ab0 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -17,7 +17,7 @@ "isolatedModules": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, - "moduleResolution": "node", + "moduleResolution": "NodeNext", "noUnusedLocals": true, "noUnusedParameters": true, "preserveWatchOutput": true, @@ -29,7 +29,7 @@ "baseUrl": ".", "jsx": "react-jsx", "lib": ["ES2022", "DOM"], - "module": "ESNext", + "module": "NodeNext", "target": "ESNext", "paths": { "~/*": ["./*"] diff --git a/packages/open-next/package.json b/packages/open-next/package.json index c205e624..8a88788f 100644 --- a/packages/open-next/package.json +++ b/packages/open-next/package.json @@ -40,7 +40,7 @@ "@node-minify/core": "^8.0.6", "@node-minify/terser": "^8.0.6", "@tsconfig/node18": "^1.0.1", - "esbuild": "^0.15.18", + "esbuild": "^0.19.2", "promise.series": "^0.2.0" }, "devDependencies": { 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/pages-only/package.json b/packages/pages-only/package.json index 9b9f4a39..129bc37f 100644 --- a/packages/pages-only/package.json +++ b/packages/pages-only/package.json @@ -4,10 +4,11 @@ "private": true, "scripts": { "openbuild": "node ../open-next/dist/index.js build", - "dev": "next dev --port 3001", + "dev": "next dev --port 3002", "build": "next build", - "start": "next start --port 3001", - "lint": "next lint" + "start": "next start --port 3002", + "lint": "next lint", + "clean": "rm -rf .turbo && rm -rf node_modules" }, "dependencies": { "@next/font": "13.4.16", diff --git a/packages/pages-only/sst-env.d.ts b/packages/pages-only/sst-env.d.ts index 7d85cdaa..9edabb6d 100644 --- a/packages/pages-only/sst-env.d.ts +++ b/packages/pages-only/sst-env.d.ts @@ -1 +1 @@ -/// \ No newline at end of file +/// diff --git a/packages/pages-only/tsconfig.json b/packages/pages-only/tsconfig.json index 2159bf45..7b004a0c 100644 --- a/packages/pages-only/tsconfig.json +++ b/packages/pages-only/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/packages/tests-e2e/playwright.config.js b/packages/tests-e2e/playwright.config.js index a849ff08..32ada6b0 100644 --- a/packages/tests-e2e/playwright.config.js +++ b/packages/tests-e2e/playwright.config.js @@ -6,7 +6,7 @@ export default defineConfig({ name: "appDirOnly", testMatch: ["tests/appDirOnly/*.test.ts"], use: { - baseURL: process.env.APP_DIR_ONLY_URL || "http://localhost:3000", + baseURL: process.env.APP_DIR_ONLY_URL || "http://localhost:3001", }, }, { @@ -14,7 +14,7 @@ export default defineConfig({ testMatch: ["tests/pagesOnly/*.test.ts"], // Other configurations specific to folder1 use: { - baseURL: process.env.PAGES_ONLY_URL || "http://localhost:3001", + baseURL: process.env.PAGES_ONLY_URL || "http://localhost:3002", }, }, { @@ -22,7 +22,7 @@ export default defineConfig({ testMatch: ["tests/appDirAndPages/*.test.ts"], // Other configurations specific to folder1 use: { - baseURL: process.env.APP_DIR_AND_PAGES_URL || "http://localhost:3002", + baseURL: process.env.APP_DIR_AND_PAGES_URL || "http://localhost:3003", }, }, ], diff --git a/packages/tests-e2e/tsconfig.json b/packages/tests-e2e/tsconfig.json index ce546d26..74d695da 100644 --- a/packages/tests-e2e/tsconfig.json +++ b/packages/tests-e2e/tsconfig.json @@ -18,7 +18,7 @@ "skipLibCheck": true, "strict": true, "removeComments": true, - "module": "esnext", + "module": "NodeNext", "target": "ES2022", "sourceMap": true }, diff --git a/packages/tests-unit/tsconfig.json b/packages/tests-unit/tsconfig.json index 7792b109..456155b6 100644 --- a/packages/tests-unit/tsconfig.json +++ b/packages/tests-unit/tsconfig.json @@ -18,7 +18,7 @@ "skipLibCheck": true, "strict": true, "removeComments": true, - "module": "esnext", + "module": "NodeNext", "target": "ES2022", "sourceMap": true }, diff --git a/packages/utils/tsconfig.json b/packages/utils/tsconfig.json index fc2cb157..ec13da8b 100644 --- a/packages/utils/tsconfig.json +++ b/packages/utils/tsconfig.json @@ -3,7 +3,8 @@ "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "isolatedModules": false, - "moduleResolution": "node", + "moduleResolution": "NodeNext", + "module": "NodeNext", "preserveWatchOutput": true, "skipLibCheck": true, "noEmit": true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2448b41f..f074c290 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -85,8 +85,20 @@ importers: specifier: 10.1.156 version: 10.1.156 sst: - specifier: 2.24.2 - version: 2.24.2 + specifier: 2.16.3 + version: 2.16.3 + + example_sst: + devDependencies: + aws-cdk-lib: + specifier: 2.84.0 + version: 2.84.0(constructs@10.1.156) + constructs: + specifier: 10.1.156 + version: 10.1.156 + sst: + specifier: 2.24.17 + version: 2.24.17 packages/app-dir: dependencies: @@ -165,8 +177,8 @@ importers: specifier: ^1.0.1 version: 1.0.3 esbuild: - specifier: ^0.15.18 - version: 0.15.18 + specifier: ^0.19.2 + version: 0.19.2 promise.series: specifier: ^0.2.0 version: 0.2.0 @@ -307,6 +319,17 @@ 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==} + engines: {node: '>= 14.15.0'} + peerDependencies: + aws-cdk-lib: 2.84.0 + constructs: ^10.0.0 + dependencies: + aws-cdk-lib: 2.84.0(constructs@10.1.156) + constructs: 10.1.156 + dev: true + /@aws-cdk/aws-apigatewayv2-alpha@2.91.0-alpha.0(aws-cdk-lib@2.84.0)(constructs@10.1.156): resolution: {integrity: sha512-i5kqy/M4xL5+Q8/SoeM6A6hO9Ho18Rif/TWMaEwUFdWbpUTLWL67FhMs8aKtKPmQJJXHEj98HVAO+sgW23ixaw==} engines: {node: '>= 14.15.0'} @@ -318,6 +341,19 @@ packages: constructs: 10.1.156 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==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@aws-cdk/aws-apigatewayv2-alpha': 2.84.0-alpha.0 + aws-cdk-lib: 2.84.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 + dev: true + /@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'} @@ -331,6 +367,19 @@ packages: 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==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@aws-cdk/aws-apigatewayv2-alpha': 2.84.0-alpha.0 + aws-cdk-lib: 2.84.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 + dev: true + /@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'} @@ -344,6 +393,13 @@ packages: constructs: 10.2.69 dev: true + /@aws-cdk/cfnspec@2.84.0-alpha.0: + resolution: {integrity: sha512-gUBBnDa/0uBiqY7oQhiRpmlFV2zBJVNbDDybnPLd0OaLWhpYPLuOTb10rQCUCZNh/r4LnQMW4sxkzOOfm1O30A==} + dependencies: + fs-extra: 9.1.0 + md5: 2.3.0 + dev: true + /@aws-cdk/cfnspec@2.91.0-alpha.0: resolution: {integrity: sha512-3Or0ZphyFR1dd53XwVqE2IbXIVvQiU/CgrVY9lWKR2jvEFtdwh3CXd5jsQwrc1MOgkGbrhOTjcXt8UeZZ+pKeg==} dependencies: @@ -351,6 +407,14 @@ packages: md5: 2.3.0 dev: true + /@aws-cdk/cloud-assembly-schema@2.84.0: + resolution: {integrity: sha512-TLQMexYkev8T1WSevwCibW4Dc9bvm89MUOdv1rJykCg4Vskmmw9WkWBRxW8S4nLgRAsQ0Uw8503sg5FIGjQ7rQ==} + engines: {node: '>= 14.15.0'} + dev: true + bundledDependencies: + - jsonschema + - semver + /@aws-cdk/cloud-assembly-schema@2.91.0: resolution: {integrity: sha512-H7pbe7VMnX2siipaT6rVDWjp0p9clrKc+8C+FG+6woqQIuQBuBZxZGVVSNtR0hdtAj7UWFX/CHGS4ihFtJnmIQ==} engines: {node: '>= 14.15.0'} @@ -359,6 +423,18 @@ packages: - jsonschema - semver + /@aws-cdk/cloudformation-diff@2.84.0: + resolution: {integrity: sha512-ICy5OjHfU5rC6zYqfE6VFlNFIr6Nw7W+Gz9ibDM19RrMVfyTjLcs+FBTjfVt69r96IOBD2wkW+5z1UqAtyiFfg==} + engines: {node: '>= 14.15.0'} + dependencies: + '@aws-cdk/cfnspec': 2.84.0-alpha.0 + chalk: 4.1.2 + diff: 5.1.0 + fast-deep-equal: 3.1.3 + string-width: 4.2.3 + table: 6.8.1 + dev: true + /@aws-cdk/cloudformation-diff@2.91.0: resolution: {integrity: sha512-gjZ5wKN2tPRRsYuKolNYeYqWoqwyq4V8taALXTxre3INkY/mZUaRfj/DXeSuH24E1WFxmudKqnD8LexHeounzw==} engines: {node: '>= 14.15.0'} @@ -371,6 +447,17 @@ 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==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@aws-cdk/cloud-assembly-schema': 2.84.0 + dependencies: + '@aws-cdk/cloud-assembly-schema': 2.84.0 + dev: true + bundledDependencies: + - semver + /@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'} @@ -1944,6 +2031,15 @@ packages: tslib: 2.6.2 dev: true + /@esbuild/android-arm64@0.16.13: + resolution: {integrity: sha512-r4xetsd1ez1NF9/9R2f9Q6AlxqiZLwUqo7ICOcvEVwopVkXUcspIjEbJk0EVTgT6Cp5+ymzGPT6YNV0ievx4yA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm64@0.18.13: resolution: {integrity: sha512-j7NhycJUoUAG5kAzGf4fPWfd17N6SM3o1X6MlXVqfHvs2buFraCJzos9vbeWjLxOyBKHyPOnuCuipbhvbYtTAg==} engines: {node: '>=12'} @@ -1962,15 +2058,24 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.15.18: - resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} + /@esbuild/android-arm64@0.19.2: + resolution: {integrity: sha512-lsB65vAbe90I/Qe10OjkmrdxSX4UJDjosDgb8sZUKcg3oefEuW2OT2Vozz8ef7wrJbMcmhvCC+hciF8jY/uAkw==} engines: {node: '>=12'} - cpu: [arm] + cpu: [arm64] os: [android] requiresBuild: true dev: false optional: true + /@esbuild/android-arm@0.16.13: + resolution: {integrity: sha512-JmtqThupn9Yf+FzANE+GG73ASUkssnPwOsndUElhp23685QzRK+MO1UompOlBaXV9D5FTuYcPnw7p4mCq2YbZQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + /@esbuild/android-arm@0.18.13: resolution: {integrity: sha512-KwqFhxRFMKZINHzCqf8eKxE0XqWlAVPRxwy6rc7CbVFxzUWB2sA/s3hbMZeemPdhN3fKBkqOaFhTbS8xJXYIWQ==} engines: {node: '>=12'} @@ -1989,6 +2094,24 @@ packages: dev: true optional: true + /@esbuild/android-arm@0.19.2: + resolution: {integrity: sha512-tM8yLeYVe7pRyAu9VMi/Q7aunpLwD139EY1S99xbQkT4/q2qa6eA4ige/WJQYdJ8GBL1K33pPFhPfPdJ/WzT8Q==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/android-x64@0.16.13: + resolution: {integrity: sha512-hKt1bFht/Vtp0xJ0ZVzFMnPy1y1ycmM3KNnp3zsyZfQmw7nhs2WLO4vxdR5YG+6RsHKCb2zbZ3VwlC0Tij0qyA==} + engines: {node: '>=12'} + cpu: [x64] + 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'} @@ -2007,6 +2130,24 @@ packages: dev: true optional: true + /@esbuild/android-x64@0.19.2: + resolution: {integrity: sha512-qK/TpmHt2M/Hg82WXHRc/W/2SGo/l1thtDHZWqFq7oi24AjZ4O/CpPSu6ZuYKFkEgmZlFoa7CooAyYmuvnaG8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: false + optional: true + + /@esbuild/darwin-arm64@0.16.13: + resolution: {integrity: sha512-ogrVuNi2URocrr3Ps20f075EMm9V7IeenOi9FRj4qdbT6mQlwLuP4l90PW2iBrKERx0oRkcZprEUNsz/3xd7ww==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-arm64@0.18.13: resolution: {integrity: sha512-f5goG30YgR1GU+fxtaBRdSW3SBG9pZW834Mmhxa6terzcboz7P2R0k4lDxlkP7NYRIIdBbWp+VgwQbmMH4yV7w==} engines: {node: '>=12'} @@ -2025,6 +2166,24 @@ packages: dev: true optional: true + /@esbuild/darwin-arm64@0.19.2: + resolution: {integrity: sha512-Ora8JokrvrzEPEpZO18ZYXkH4asCdc1DLdcVy8TGf5eWtPO1Ie4WroEJzwI52ZGtpODy3+m0a2yEX9l+KUn0tA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@esbuild/darwin-x64@0.16.13: + resolution: {integrity: sha512-Agajik9SBGiKD7FPXE+ExW6x3MgA/dUdpZnXa9y1tyfE4lKQx+eQiknSdrBnWPeqa9wL0AOvkhghmYhpVkyqkA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + /@esbuild/darwin-x64@0.18.13: resolution: {integrity: sha512-RIrxoKH5Eo+yE5BtaAIMZaiKutPhZjw+j0OCh8WdvKEKJQteacq0myZvBDLU+hOzQOZWJeDnuQ2xgSScKf1Ovw==} engines: {node: '>=12'} @@ -2043,6 +2202,24 @@ packages: dev: true optional: true + /@esbuild/darwin-x64@0.19.2: + resolution: {integrity: sha512-tP+B5UuIbbFMj2hQaUr6EALlHOIOmlLM2FK7jeFBobPy2ERdohI4Ka6ZFjZ1ZYsrHE/hZimGuU90jusRE0pwDw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@esbuild/freebsd-arm64@0.16.13: + resolution: {integrity: sha512-KxMO3/XihBcHM+xQUM6nQZO1SgQuOsd1DCnKF1a4SIf/i5VD45vrqN3k8ePgFrEbMi7m5JeGmvNqwJXinF0a4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + 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'} @@ -2061,6 +2238,24 @@ packages: dev: true optional: true + /@esbuild/freebsd-arm64@0.19.2: + resolution: {integrity: sha512-YbPY2kc0acfzL1VPVK6EnAlig4f+l8xmq36OZkU0jzBVHcOTyQDhnKQaLzZudNJQyymd9OqQezeaBgkTGdTGeQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/freebsd-x64@0.16.13: + resolution: {integrity: sha512-Ez15oqV1vwvZ30cVLeBW14BsWq/fdWNQGMOxxqaSJVQVLqHhvgfQ7gxGDiN9tpJdeQhqJO+Q0r02/Tce5+USNg==} + engines: {node: '>=12'} + cpu: [x64] + 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'} @@ -2079,6 +2274,24 @@ packages: dev: true optional: true + /@esbuild/freebsd-x64@0.19.2: + resolution: {integrity: sha512-nSO5uZT2clM6hosjWHAsS15hLrwCvIWx+b2e3lZ3MwbYSaXwvfO528OF+dLjas1g3bZonciivI8qKR/Hm7IWGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-arm64@0.16.13: + resolution: {integrity: sha512-qi5n7KwcGViyJeZeQnu8fB6dC3Mlm5PGaqSv2HhQDDx/MPvVfQGNMcv7zcBL4qk3FkuWhGVwXkjQ76x7R0PWlA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm64@0.18.13: resolution: {integrity: sha512-hCzZbVJEHV7QM77fHPv2qgBcWxgglGFGCxk6KfQx6PsVIdi1u09X7IvgE9QKqm38OpkzaAkPnnPqwRsltvLkIQ==} engines: {node: '>=12'} @@ -2097,6 +2310,24 @@ packages: dev: true optional: true + /@esbuild/linux-arm64@0.19.2: + resolution: {integrity: sha512-ig2P7GeG//zWlU0AggA3pV1h5gdix0MA3wgB+NsnBXViwiGgY77fuN9Wr5uoCrs2YzaYfogXgsWZbm+HGr09xg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-arm@0.16.13: + resolution: {integrity: sha512-18dLd2L3mda+iFj6sswyBMSh2UwniamD9M4DwPv8VM+9apRFlQ5IGKxBdumnTuOI4NvwwAernmUseWhYQ9k+rg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-arm@0.18.13: resolution: {integrity: sha512-4iMxLRMCxGyk7lEvkkvrxw4aJeC93YIIrfbBlUJ062kilUUnAiMb81eEkVvCVoh3ON283ans7+OQkuy1uHW+Hw==} engines: {node: '>=12'} @@ -2115,6 +2346,24 @@ packages: dev: true optional: true + /@esbuild/linux-arm@0.19.2: + resolution: {integrity: sha512-Odalh8hICg7SOD7XCj0YLpYCEc+6mkoq63UnExDCiRA2wXEmGlK5JVrW50vZR9Qz4qkvqnHcpH+OFEggO3PgTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-ia32@0.16.13: + resolution: {integrity: sha512-2489Xad9sr+6GD7nB913fUqpCsSwVwgskkQTq4Or2mZntSPYPebyJm8l1YruHo7oqYMTGV6RiwGE4gRo3H+EPQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ia32@0.18.13: resolution: {integrity: sha512-I3OKGbynl3AAIO6onXNrup/ttToE6Rv2XYfFgLK/wnr2J+1g+7k4asLrE+n7VMhaqX+BUnyWkCu27rl+62Adug==} engines: {node: '>=12'} @@ -2133,15 +2382,24 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.15.18: - resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} + /@esbuild/linux-ia32@0.19.2: + resolution: {integrity: sha512-mLfp0ziRPOLSTek0Gd9T5B8AtzKAkoZE70fneiiyPlSnUKKI4lp+mGEnQXcQEHLJAcIYDPSyBvsUbKUG2ri/XQ==} engines: {node: '>=12'} - cpu: [loong64] + cpu: [ia32] os: [linux] requiresBuild: true dev: false optional: true + /@esbuild/linux-loong64@0.16.13: + resolution: {integrity: sha512-x8KplRu9Y43Px8I9YS+sPBwQ+fw44Mvp2BPVADopKDWz+h3fcj1BvRU58kxb89WObmwKX9sWdtYzepL4Fmx03A==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-loong64@0.18.13: resolution: {integrity: sha512-8pcKDApAsKc6WW51ZEVidSGwGbebYw2qKnO1VyD8xd6JN0RN6EUXfhXmDk9Vc4/U3Y4AoFTexQewQDJGsBXBpg==} engines: {node: '>=12'} @@ -2160,6 +2418,24 @@ packages: dev: true optional: true + /@esbuild/linux-loong64@0.19.2: + resolution: {integrity: sha512-hn28+JNDTxxCpnYjdDYVMNTR3SKavyLlCHHkufHV91fkewpIyQchS1d8wSbmXhs1fiYDpNww8KTFlJ1dHsxeSw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-mips64el@0.16.13: + resolution: {integrity: sha512-qhhdWph9FLwD9rVVC/nUf7k2U4NZIA6/mGx0B7+O6PFV0GjmPA2E3zDQ4NUjq9P26E0DeAZy9akH9dYcUBRU7A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-mips64el@0.18.13: resolution: {integrity: sha512-6GU+J1PLiVqWx8yoCK4Z0GnfKyCGIH5L2KQipxOtbNPBs+qNDcMJr9euxnyJ6FkRPyMwaSkjejzPSISD9hb+gg==} engines: {node: '>=12'} @@ -2178,6 +2454,24 @@ packages: dev: true optional: true + /@esbuild/linux-mips64el@0.19.2: + resolution: {integrity: sha512-KbXaC0Sejt7vD2fEgPoIKb6nxkfYW9OmFUK9XQE4//PvGIxNIfPk1NmlHmMg6f25x57rpmEFrn1OotASYIAaTg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-ppc64@0.16.13: + resolution: {integrity: sha512-cVWAPKsrRVxI1jCeJHnYSbE3BrEU+pZTZK2gfao9HRxuc+3m4+RLfs3EVEpGLmMKEcWfVCB9wZ3yNxnknutGKQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-ppc64@0.18.13: resolution: {integrity: sha512-pfn/OGZ8tyR8YCV7MlLl5hAit2cmS+j/ZZg9DdH0uxdCoJpV7+5DbuXrR+es4ayRVKIcfS9TTMCs60vqQDmh+w==} engines: {node: '>=12'} @@ -2196,6 +2490,24 @@ packages: dev: true optional: true + /@esbuild/linux-ppc64@0.19.2: + resolution: {integrity: sha512-dJ0kE8KTqbiHtA3Fc/zn7lCd7pqVr4JcT0JqOnbj4LLzYnp+7h8Qi4yjfq42ZlHfhOCM42rBh0EwHYLL6LEzcw==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-riscv64@0.16.13: + resolution: {integrity: sha512-Agb7dbRyZWnmPn5Vvf0eyqaEUqSsaIUwwyInu2EoFTaIDRp093QU2M5alUyOooMLkRbD1WvqQNwx08Z/g+SAcQ==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-riscv64@0.18.13: resolution: {integrity: sha512-aIbhU3LPg0lOSCfVeGHbmGYIqOtW6+yzO+Nfv57YblEK01oj0mFMtvDJlOaeAZ6z0FZ9D13oahi5aIl9JFphGg==} engines: {node: '>=12'} @@ -2214,6 +2526,24 @@ packages: dev: true optional: true + /@esbuild/linux-riscv64@0.19.2: + resolution: {integrity: sha512-7Z/jKNFufZ/bbu4INqqCN6DDlrmOTmdw6D0gH+6Y7auok2r02Ur661qPuXidPOJ+FSgbEeQnnAGgsVynfLuOEw==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-s390x@0.16.13: + resolution: {integrity: sha512-AqRBIrc/+kl08ahliNG+EyU+j41wIzQfwBTKpi80cCDiYvYFPuXjvzZsD9muiu58Isj0RVni9VgC4xK/AnSW4g==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-s390x@0.18.13: resolution: {integrity: sha512-Pct1QwF2sp+5LVi4Iu5Y+6JsGaV2Z2vm4O9Dd7XZ5tKYxEHjFtb140fiMcl5HM1iuv6xXO8O1Vrb1iJxHlv8UA==} engines: {node: '>=12'} @@ -2232,6 +2562,24 @@ packages: dev: true optional: true + /@esbuild/linux-s390x@0.19.2: + resolution: {integrity: sha512-U+RinR6aXXABFCcAY4gSlv4CL1oOVvSSCdseQmGO66H+XyuQGZIUdhG56SZaDJQcLmrSfRmx5XZOWyCJPRqS7g==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/linux-x64@0.16.13: + resolution: {integrity: sha512-S4wn2BimuhPcoArRtVrdHUKIymCCZcYAXQE47kUiX4yrUrEX2/ifn5eKNbZ5c1jJKUlh1gC2ESIN+iw3wQax3g==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + /@esbuild/linux-x64@0.18.13: resolution: {integrity: sha512-zTrIP0KzYP7O0+3ZnmzvUKgGtUvf4+piY8PIO3V8/GfmVd3ZyHJGz7Ht0np3P1wz+I8qJ4rjwJKqqEAbIEPngA==} engines: {node: '>=12'} @@ -2250,6 +2598,24 @@ packages: dev: true optional: true + /@esbuild/linux-x64@0.19.2: + resolution: {integrity: sha512-oxzHTEv6VPm3XXNaHPyUTTte+3wGv7qVQtqaZCrgstI16gCuhNOtBXLEBkBREP57YTd68P0VgDgG73jSD8bwXQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@esbuild/netbsd-x64@0.16.13: + resolution: {integrity: sha512-2c8JWgfUMlQHTdaR5X3xNMwqOyad8kgeCupuVkdm3QkUOzGREjlTETQsK6oHifocYzDCo9FeKcUwsK356SdR+g==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/netbsd-x64@0.18.13: resolution: {integrity: sha512-I6zs10TZeaHDYoGxENuksxE1sxqZpCp+agYeW039yqFwh3MgVvdmXL5NMveImOC6AtpLvE4xG5ujVic4NWFIDQ==} engines: {node: '>=12'} @@ -2268,6 +2634,24 @@ packages: dev: true optional: true + /@esbuild/netbsd-x64@0.19.2: + resolution: {integrity: sha512-WNa5zZk1XpTTwMDompZmvQLHszDDDN7lYjEHCUmAGB83Bgs20EMs7ICD+oKeT6xt4phV4NDdSi/8OfjPbSbZfQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/openbsd-x64@0.16.13: + resolution: {integrity: sha512-Bwh+PmKD/LK+xBjqIpnYnKYj0fIyQJ0YpRxsn0F+WfzvQ2OA+GKDlf8AHosiCns26Q4Dje388jQVwfOBZ1GaFw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + /@esbuild/openbsd-x64@0.18.13: resolution: {integrity: sha512-W5C5nczhrt1y1xPG5bV+0M12p2vetOGlvs43LH8SopQ3z2AseIROu09VgRqydx5qFN7y9qCbpgHLx0kb0TcW7g==} engines: {node: '>=12'} @@ -2281,7 +2665,25 @@ packages: resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} engines: {node: '>=12'} cpu: [x64] - os: [openbsd] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64@0.19.2: + resolution: {integrity: sha512-S6kI1aT3S++Dedb7vxIuUOb3oAxqxk2Rh5rOXOTYnzN8JzW1VzBd+IqPiSpgitu45042SYD3HCoEyhLKQcDFDw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: false + optional: true + + /@esbuild/sunos-x64@0.16.13: + resolution: {integrity: sha512-8wwk6f9XGnhrF94/DBdFM4Xm1JeCyGTCj67r516VS9yvBVQf3Rar54L+XPVDs/oZOokwH+XsktrgkuTMAmjntg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] requiresBuild: true dev: true optional: true @@ -2304,6 +2706,24 @@ packages: dev: true optional: true + /@esbuild/sunos-x64@0.19.2: + resolution: {integrity: sha512-VXSSMsmb+Z8LbsQGcBMiM+fYObDNRm8p7tkUDMPG/g4fhFX5DEFmjxIEa3N8Zr96SjsJ1woAhF0DUnS3MF3ARw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: false + optional: true + + /@esbuild/win32-arm64@0.16.13: + resolution: {integrity: sha512-Jmwbp/5ArLCiRAHC33ODfcrlIcbP/exXkOEUVkADNJC4e/so2jm+i8IQFvVX/lA2GWvK3GdgcN0VFfp9YITAbg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-arm64@0.18.13: resolution: {integrity: sha512-4CGYdRQT/ILd+yLLE5i4VApMPfGE0RPc/wFQhlluDQCK09+b4JDbxzzjpgQqTPrdnP7r5KUtGVGZYclYiPuHrw==} engines: {node: '>=12'} @@ -2322,6 +2742,24 @@ packages: dev: true optional: true + /@esbuild/win32-arm64@0.19.2: + resolution: {integrity: sha512-5NayUlSAyb5PQYFAU9x3bHdsqB88RC3aM9lKDAz4X1mo/EchMIT1Q+pSeBXNgkfNmRecLXA0O8xP+x8V+g/LKg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@esbuild/win32-ia32@0.16.13: + resolution: {integrity: sha512-AX6WjntGjhJHzrPSVvjMD7grxt41koHfAOx6lxLorrpDwwIKKPaGDASPZgvFIZHTbwhOtILW6vAXxYPDsKpDJA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-ia32@0.18.13: resolution: {integrity: sha512-D+wKZaRhQI+MUGMH+DbEr4owC2D7XnF+uyGiZk38QbgzLcofFqIOwFs7ELmIeU45CQgfHNy9Q+LKW3cE8g37Kg==} engines: {node: '>=12'} @@ -2340,6 +2778,24 @@ packages: dev: true optional: true + /@esbuild/win32-ia32@0.19.2: + resolution: {integrity: sha512-47gL/ek1v36iN0wL9L4Q2MFdujR0poLZMJwhO2/N3gA89jgHp4MR8DKCmwYtGNksbfJb9JoTtbkoe6sDhg2QTA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@esbuild/win32-x64@0.16.13: + resolution: {integrity: sha512-A+U4gM6OOkPS03UgVU08GTpAAAxPsP/8Z4FmneGo4TaVSD99bK9gVJXlqUEPMO/htFXEAht2O6pX4ErtLY5tVg==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + /@esbuild/win32-x64@0.18.13: resolution: {integrity: sha512-iVl6lehAfJS+VmpF3exKpNQ8b0eucf5VWfzR8S7xFve64NBNz2jPUgx1X93/kfnkfgP737O+i1k54SVQS7uVZA==} engines: {node: '>=12'} @@ -2358,6 +2814,15 @@ packages: dev: true optional: true + /@esbuild/win32-x64@0.19.2: + resolution: {integrity: sha512-tcuhV7ncXBqbt/Ybf0IyrMcwVOAPDckMK9rXNHtF17UTK18OKLpg08glminN06pt2WCoALhXdLfSPbVvK/6fxw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + /@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} @@ -2585,6 +3050,11 @@ packages: '@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: @@ -4490,6 +4960,20 @@ 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==} + 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) + archiver: 5.3.2 + aws-sdk: 2.1446.0 + glob: 7.2.3 + mime: 2.6.0 + yargs: 16.2.0 + dev: true + /cdk-assets@2.91.0: resolution: {integrity: sha512-/dc6K/a2Gfl+3SX8SU6FyoLY3jGcCuwu/Gs1SCsbom4v22ZbAXIL8enhffSNiVKry/yfHbS/VRHRwiPpbYqVMQ==} engines: {node: '>= 14.15.0'} @@ -5176,309 +5660,129 @@ packages: engines: {node: '>=6'} dev: true - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: true - - /es-abstract@1.22.1: - resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.1 - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-set-tostringtag: 2.0.1 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.1 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has: 1.0.3 - has-property-descriptors: 1.0.0 - has-proto: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.12 - is-weakref: 1.0.2 - object-inspect: 1.12.3 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.0 - safe-array-concat: 1.0.0 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.7 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.11 - dev: true - - /es-iterator-helpers@1.0.14: - resolution: {integrity: sha512-JgtVnwiuoRuzLvqelrvN3Xu7H9bu2ap/kQ2CrM62iidP8SKuD99rWU3CJy++s7IVL2qb/AjXPGR/E7i9ngd/Cw==} - dependencies: - asynciterator.prototype: 1.0.0 - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.1 - es-set-tostringtag: 2.0.1 - function-bind: 1.1.1 - get-intrinsic: 1.2.1 - globalthis: 1.0.3 - has-property-descriptors: 1.0.0 - has-proto: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - iterator.prototype: 1.1.0 - safe-array-concat: 1.0.0 - dev: true - - /es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.1 - has: 1.0.3 - has-tostringtag: 1.0.0 - dev: true - - /es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} - dependencies: - has: 1.0.3 - dev: true - - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: true - - /esbuild-android-64@0.15.18: - resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /esbuild-android-arm64@0.15.18: - resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /esbuild-darwin-64@0.15.18: - resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /esbuild-darwin-arm64@0.15.18: - resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /esbuild-freebsd-64@0.15.18: - resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /esbuild-freebsd-arm64@0.15.18: - resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-32@0.15.18: - resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-64@0.15.18: - resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-arm64@0.15.18: - resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-arm@0.15.18: - resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-mips64le@0.15.18: - resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-ppc64le@0.15.18: - resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-riscv64@0.15.18: - resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-s390x@0.15.18: - resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-netbsd-64@0.15.18: - resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: false - optional: true + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true - /esbuild-openbsd-64@0.15.18: - resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: false - optional: true + /es-abstract@1.22.1: + resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.1 + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.1 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + safe-array-concat: 1.0.0 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.7 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.11 + dev: true - /esbuild-sunos-64@0.15.18: - resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: false - optional: true + /es-iterator-helpers@1.0.14: + resolution: {integrity: sha512-JgtVnwiuoRuzLvqelrvN3Xu7H9bu2ap/kQ2CrM62iidP8SKuD99rWU3CJy++s7IVL2qb/AjXPGR/E7i9ngd/Cw==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.22.1 + es-set-tostringtag: 2.0.1 + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + globalthis: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + iterator.prototype: 1.1.0 + safe-array-concat: 1.0.0 + dev: true - /esbuild-windows-32@0.15.18: - resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true - /esbuild-windows-64@0.15.18: - resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: true - /esbuild-windows-arm64@0.15.18: - resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true - /esbuild@0.15.18: - resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} + /esbuild@0.16.13: + resolution: {integrity: sha512-oYwFdSEIoKM1oYzyem1osgKJAvg5447XF+05ava21fOtilyb2HeQQh26/74K4WeAk5dZmj/Mx10zUqUnI14jhA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.15.18 - '@esbuild/linux-loong64': 0.15.18 - esbuild-android-64: 0.15.18 - esbuild-android-arm64: 0.15.18 - esbuild-darwin-64: 0.15.18 - esbuild-darwin-arm64: 0.15.18 - esbuild-freebsd-64: 0.15.18 - esbuild-freebsd-arm64: 0.15.18 - esbuild-linux-32: 0.15.18 - esbuild-linux-64: 0.15.18 - esbuild-linux-arm: 0.15.18 - esbuild-linux-arm64: 0.15.18 - esbuild-linux-mips64le: 0.15.18 - esbuild-linux-ppc64le: 0.15.18 - esbuild-linux-riscv64: 0.15.18 - esbuild-linux-s390x: 0.15.18 - esbuild-netbsd-64: 0.15.18 - esbuild-openbsd-64: 0.15.18 - esbuild-sunos-64: 0.15.18 - esbuild-windows-32: 0.15.18 - esbuild-windows-64: 0.15.18 - esbuild-windows-arm64: 0.15.18 - dev: false + '@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 + dev: true /esbuild@0.18.13: resolution: {integrity: sha512-vhg/WR/Oiu4oUIkVhmfcc23G6/zWuEQKFS+yiosSHe4aN6+DQRXIfeloYGibIfVhkr4wyfuVsGNLr+sQU1rWWw==} @@ -5540,6 +5844,36 @@ packages: '@esbuild/win32-x64': 0.18.20 dev: true + /esbuild@0.19.2: + resolution: {integrity: sha512-G6hPax8UbFakEj3hWO0Vs52LQ8k3lnBhxZWomUJDxfz3rZTLqF5k/FCzuNdLx2RbpBiQQF9H9onlDDH1lZsnjg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': 0.19.2 + '@esbuild/android-arm64': 0.19.2 + '@esbuild/android-x64': 0.19.2 + '@esbuild/darwin-arm64': 0.19.2 + '@esbuild/darwin-x64': 0.19.2 + '@esbuild/freebsd-arm64': 0.19.2 + '@esbuild/freebsd-x64': 0.19.2 + '@esbuild/linux-arm': 0.19.2 + '@esbuild/linux-arm64': 0.19.2 + '@esbuild/linux-ia32': 0.19.2 + '@esbuild/linux-loong64': 0.19.2 + '@esbuild/linux-mips64el': 0.19.2 + '@esbuild/linux-ppc64': 0.19.2 + '@esbuild/linux-riscv64': 0.19.2 + '@esbuild/linux-s390x': 0.19.2 + '@esbuild/linux-x64': 0.19.2 + '@esbuild/netbsd-x64': 0.19.2 + '@esbuild/openbsd-x64': 0.19.2 + '@esbuild/sunos-x64': 0.19.2 + '@esbuild/win32-arm64': 0.19.2 + '@esbuild/win32-ia32': 0.19.2 + '@esbuild/win32-x64': 0.19.2 + dev: false + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -6069,6 +6403,16 @@ packages: mnemonist: 0.39.5 dev: true + /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 + dev: true + /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true @@ -7365,6 +7709,29 @@ packages: engines: {node: '>=6'} dev: true + /kysely-codegen@0.10.1(kysely@0.23.5): + resolution: {integrity: sha512-8Bslh952gN5gtucRv4jTZDFD18RBioS6M50zHfe5kwb5iSyEAunU4ZYMdHzkHraa4zxjg5/183XlOryBCXLRIw==} + hasBin: true + peerDependencies: + better-sqlite3: '>=7.6.2' + kysely: '>=0.19.12' + mysql2: ^2.3.3 || ^3.0.0 + pg: ^8.8.0 + peerDependenciesMeta: + better-sqlite3: + optional: true + mysql2: + optional: true + pg: + optional: true + dependencies: + chalk: 4.1.2 + dotenv: 16.3.1 + kysely: 0.23.5 + micromatch: 4.0.5 + minimist: 1.2.8 + dev: true + /kysely-codegen@0.10.1(kysely@0.25.0): resolution: {integrity: sha512-8Bslh952gN5gtucRv4jTZDFD18RBioS6M50zHfe5kwb5iSyEAunU4ZYMdHzkHraa4zxjg5/183XlOryBCXLRIw==} hasBin: true @@ -7388,6 +7755,16 @@ packages: minimist: 1.2.8 dev: true + /kysely-data-api@0.2.1(@aws-sdk/client-rds-data@3.398.0)(kysely@0.23.5): + 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 + dev: true + /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: @@ -7398,6 +7775,11 @@ packages: kysely: 0.25.0 dev: true + /kysely@0.23.5: + resolution: {integrity: sha512-TH+b56pVXQq0tsyooYLeNfV11j6ih7D50dyN8tkM0e7ndiUH28Nziojiog3qRFlmEj9XePYdZUrNJ2079Qjdow==} + engines: {node: '>=14.0.0'} + dev: true + /kysely@0.25.0: resolution: {integrity: sha512-srn0efIMu5IoEBk0tBmtGnoUss4uwvxtbFQWG/U2MosfqIace1l43IFP1PmEpHRDp+Z79xIcKEqmHH3dAvQdQA==} engines: {node: '>=14.0.0'} @@ -9248,6 +9630,19 @@ packages: /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==} + engines: {node: '>= 14.15.0'} + hasBin: true + dependencies: + archiver: 5.3.2 + chalk: 4.1.2 + promptly: 3.2.0 + yaml: 1.10.2 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /sst-aws-cdk@2.91.0: resolution: {integrity: sha512-vQFs52ANjfEmVqwqcmfCwZVjWsFwQVwbdfLD8stJm/Cl7sZE+DngXX5LfGgF8M1o0F/qbj6d0N00vpVk1q6tSQ==} engines: {node: '>= 14.15.0'} @@ -9261,8 +9656,96 @@ packages: fsevents: 2.3.2 dev: true - /sst@2.24.2: - resolution: {integrity: sha512-SDQepov+Nfn0H0eGrlkKBuATnmNQZCt4KwPJYcMxjQb8QwByNLNB77x8esSUDuGiJdP4Lca1Tl10Idzfu2Bc9Q==} + /sst@2.16.3: + resolution: {integrity: sha512-SdowHylIh0CfaYmTvhSWF4DE0d6f9Lt+Ny8X9A2G4wPEKf+3dTgxz0AqJdI6I5WHccQHIJ1iAinRtTn/W9hBxA==} + hasBin: true + peerDependencies: + '@sls-next/lambda-at-edge': ^3.7.0 + peerDependenciesMeta: + '@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-sdk/client-cloudformation': 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.398.0 + '@aws-sdk/client-rds-data': 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 + '@aws-sdk/credential-providers': 3.398.0 + '@aws-sdk/middleware-retry': 3.374.0 + '@aws-sdk/middleware-signing': 3.398.0 + '@aws-sdk/signature-v4-crt': 3.398.0 + '@aws-sdk/smithy-client': 3.374.0 + '@babel/core': 7.22.11 + '@babel/generator': 7.22.10 + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.11) + '@trpc/server': 9.16.0 + adm-zip: 0.5.10 + aws-cdk-lib: 2.84.0(constructs@10.1.156) + aws-iot-device-sdk: 2.2.12 + aws-sdk: 2.1446.0 + builtin-modules: 3.2.0 + cdk-assets: 2.84.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 + cross-spawn: 7.0.3 + dendriform-immer-patch-optimiser: 2.1.3(immer@9.0.21) + dotenv: 16.3.1 + esbuild: 0.16.13 + express: 4.18.2 + fast-jwt: 1.7.2 + get-port: 6.1.2 + glob: 8.1.0 + graphql: 16.8.0 + graphql-yoga: 3.9.1(graphql@16.8.0) + 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) + 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 + tree-kill: 1.2.2 + undici: 5.23.0 + uuid: 9.0.0 + ws: 8.13.0 + yargs: 17.7.2 + zod: 3.22.2 + transitivePeerDependencies: + - '@types/react' + - aws-crt + - better-sqlite3 + - bufferutil + - debug + - mysql2 + - pg + - react-devtools-core + - supports-color + - utf-8-validate + dev: true + + /sst@2.24.17: + resolution: {integrity: sha512-18claKpZiah1EL2yGvm+acL+XBRxR7YkHESv49cqlMI1zGSejYNSlPaDV8K+cFDbnrztkkZYXGZB6Av8r0/dLg==} hasBin: true peerDependencies: '@sls-next/lambda-at-edge': ^3.7.0 @@ -9316,7 +9799,7 @@ packages: dotenv: 16.3.1 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 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index fcffca6b..4591a7a2 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,5 @@ packages: - 'packages/*' - 'example' + - 'example_sst' - 'docs' From f1eb7fde4caa41adffe1d560824d05f46fed73e5 Mon Sep 17 00:00:00 2001 From: Khue Nguyen Date: Mon, 28 Aug 2023 16:00:50 -0700 Subject: [PATCH 13/26] fix lint --- example_sst/sst.config.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/example_sst/sst.config.ts b/example_sst/sst.config.ts index cc92fc54..0e336642 100644 --- a/example_sst/sst.config.ts +++ b/example_sst/sst.config.ts @@ -1,6 +1,5 @@ import { SSTConfig } from "sst"; - import { AppDirOnly } from "./stacks/AppDirOnly"; import { PagesOnly } from "./stacks/PagesOnly"; @@ -12,8 +11,6 @@ export default { }; }, stacks(app) { - app - .stack(AppDirOnly) - .stack(PagesOnly); + app.stack(AppDirOnly).stack(PagesOnly); }, } satisfies SSTConfig; From f2df124dc3a827c37b8f64c63898121423be2dee Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 29 Aug 2023 00:40:00 -0400 Subject: [PATCH 14/26] Fix aws credentials --- .github/workflows/e2e.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index b6b8f8a3..ca69ac05 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -4,27 +4,27 @@ on: pull_request: types: [opened, synchronize] - - 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: e2e: runs-on: ubuntu-latest - permissions: - id-token: write # This is required for requesting the JWT - contents: read # This is required for actions/checkout steps: - name: Checkout code uses: actions/checkout@v3 - - name: configure aws credentials - uses: aws-actions/configure-aws-credentials@master + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v2 with: role-to-assume: arn:aws:iam::918074996169:role/GitHub + role-session-name: github-e2e-session aws-region: us-east-1 - name: Setup pnpm From 13a7fc7dab93e0ca242904803435f04958a01f96 Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 29 Aug 2023 00:41:38 -0400 Subject: [PATCH 15/26] Sync --- .github/workflows/e2e.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index ca69ac05..c8649d44 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -5,6 +5,7 @@ on: types: [opened, synchronize] env: + AWS_REGION: us-east-1 PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 PLAYWRIGHT_BROWSERS_PATH: 0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -25,7 +26,7 @@ jobs: with: role-to-assume: arn:aws:iam::918074996169:role/GitHub role-session-name: github-e2e-session - aws-region: us-east-1 + aws-region: ${{ env.AWS_REGION }} - name: Setup pnpm uses: pnpm/action-setup@v2 From 039d68c6a4ad59bbbfedbcf51bab174b52589e04 Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 29 Aug 2023 00:43:03 -0400 Subject: [PATCH 16/26] Sync --- .github/workflows/e2e.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index c8649d44..5ba3fff9 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -5,7 +5,7 @@ on: types: [opened, synchronize] env: - AWS_REGION: us-east-1 + AWS_REGION: "us-east-1" PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 PLAYWRIGHT_BROWSERS_PATH: 0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From f851c3cf3f98201c40b5f7f0e94ebb417f40e8bb Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 29 Aug 2023 00:45:30 -0400 Subject: [PATCH 17/26] Sync --- .github/workflows/e2e.yml | 4 +- .gitignore | 2 - example_sst/stacks/AppDirOnly.ts | 14 ++-- example_sst/stacks/PagesOnly.ts | 14 ++-- packages/app-dir/.gitignore | 1 + .../albums/@modal/(.)[album]/[song]/page.tsx | 46 +++++++------ .../app/albums/@modal/(.)[album]/page.tsx | 13 ++-- .../app-dir/app/albums/@modal/default.tsx | 4 +- .../app/albums/[album]/[song]/page.tsx | 34 +++++----- packages/app-dir/app/albums/[album]/page.tsx | 4 +- packages/app-dir/app/albums/layout.tsx | 20 ++++-- packages/app-dir/app/albums/page.tsx | 20 +++--- packages/app-dir/app/api/client/route.ts | 1 + packages/app-dir/app/api/host/route.ts | 1 + packages/app-dir/app/api/page.tsx | 48 +++++++------ packages/app-dir/app/isr/page.tsx | 10 +-- packages/app-dir/app/layout.tsx | 19 +++--- packages/app-dir/app/page.tsx | 35 +++++----- .../app-dir/app/parallel/@a/a-page/page.tsx | 4 +- packages/app-dir/app/parallel/@a/page.tsx | 13 ++-- .../app-dir/app/parallel/@b/b-page/page.tsx | 4 +- packages/app-dir/app/parallel/@b/page.tsx | 12 ++-- packages/app-dir/app/parallel/layout.tsx | 67 ++++++++++++------- packages/app-dir/app/parallel/page.tsx | 4 +- .../app-dir/app/redirect-destination/page.tsx | 4 +- .../app-dir/app/rewrite-destination/page.tsx | 4 +- .../app-dir/app/server-actions/client.tsx | 42 +++++++----- packages/app-dir/app/server-actions/page.tsx | 15 +++-- packages/app-dir/app/ssr/loading.tsx | 4 +- packages/app-dir/app/ssr/page.tsx | 18 ++--- packages/app-dir/middleware.ts | 3 +- packages/app-dir/postcss.config.js | 2 +- packages/app-dir/tailwind.config.ts | 3 +- packages/core/api/index.ts | 2 +- packages/core/components/Album/Album.tsx | 24 ++++--- packages/core/components/Album/Song.tsx | 34 ++++++---- packages/core/components/Album/index.tsx | 32 +++++---- packages/core/components/Modal/index.tsx | 48 +++++++------ packages/core/components/Nav/index.tsx | 47 +++++++------ .../open-next/src/adapters/server-adapter.ts | 12 ++-- packages/open-next/src/build.ts | 3 +- packages/pages-only/.gitignore | 1 + packages/pages-only/postcss.config.js | 5 +- packages/pages-only/src/pages/_app.tsx | 7 +- packages/pages-only/src/pages/_document.tsx | 4 +- packages/pages-only/src/pages/api/hello.ts | 5 +- packages/pages-only/src/pages/index.tsx | 17 ++--- packages/pages-only/src/pages/isr/index.tsx | 13 ++-- packages/pages-only/src/pages/ssr/index.tsx | 14 ++-- .../tests-e2e/tests/appDirOnly/api.test.ts | 2 +- .../tests-e2e/tests/appDirOnly/isr.test.ts | 2 +- .../appDirOnly/middleware.redirect.test.ts | 2 +- .../appDirOnly/middleware.rewrite.test.ts | 2 +- .../tests-e2e/tests/appDirOnly/modals.test.ts | 10 +-- .../tests/appDirOnly/parallel.test.ts | 2 +- .../tests/appDirOnly/serverActions.test.ts | 2 +- .../tests-e2e/tests/pagesOnly/isr.test.ts | 2 +- .../tests-e2e/tests/pagesOnly/ssr.test.ts | 2 +- packages/tests-unit/tests/binary.test.ts | 5 +- packages/tests-unit/tests/example.test.ts | 1 + 60 files changed, 443 insertions(+), 346 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 5ba3fff9..6cda17d9 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -5,7 +5,6 @@ on: types: [opened, synchronize] env: - AWS_REGION: "us-east-1" PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 PLAYWRIGHT_BROWSERS_PATH: 0 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -25,8 +24,7 @@ jobs: uses: aws-actions/configure-aws-credentials@v2 with: role-to-assume: arn:aws:iam::918074996169:role/GitHub - role-session-name: github-e2e-session - aws-region: ${{ env.AWS_REGION }} + aws-region: us-east-1 - name: Setup pnpm uses: pnpm/action-setup@v2 diff --git a/.gitignore b/.gitignore index db2e0253..08db1735 100644 --- a/.gitignore +++ b/.gitignore @@ -21,5 +21,3 @@ next-env.d.ts # Tests tests-unit/coverage test-results - -.open-next \ No newline at end of file diff --git a/example_sst/stacks/AppDirOnly.ts b/example_sst/stacks/AppDirOnly.ts index e18a7298..c3653095 100644 --- a/example_sst/stacks/AppDirOnly.ts +++ b/example_sst/stacks/AppDirOnly.ts @@ -1,16 +1,14 @@ import { NextjsSite } from "sst/constructs"; export function AppDirOnly({ stack }) { - const site = new NextjsSite(stack, "appdironly",{ - path: '../packages/app-dir', - buildCommand: 'npm run openbuild', - bind: [ - ], - environment: { - } + const site = new NextjsSite(stack, "appdironly", { + path: "../packages/app-dir", + buildCommand: "npm run openbuild", + bind: [], + environment: {}, }); stack.addOutputs({ url: site.url, }); -} \ No newline at end of file +} diff --git a/example_sst/stacks/PagesOnly.ts b/example_sst/stacks/PagesOnly.ts index 8e2c3ff1..a4acb91a 100644 --- a/example_sst/stacks/PagesOnly.ts +++ b/example_sst/stacks/PagesOnly.ts @@ -1,16 +1,14 @@ import { NextjsSite } from "sst/constructs"; export function PagesOnly({ stack }) { - const site = new NextjsSite(stack, "pagesonly",{ - path: '../packages/pages-only', - buildCommand: 'npm run openbuild', - bind: [ - ], - environment: { - } + const site = new NextjsSite(stack, "pagesonly", { + path: "../packages/pages-only", + buildCommand: "npm run openbuild", + bind: [], + environment: {}, }); stack.addOutputs({ url: site.url, }); -} \ No newline at end of file +} diff --git a/packages/app-dir/.gitignore b/packages/app-dir/.gitignore index 8f322f0d..61cbd98f 100644 --- a/packages/app-dir/.gitignore +++ b/packages/app-dir/.gitignore @@ -10,6 +10,7 @@ # next.js /.next/ +.open-next /out/ # production diff --git a/packages/app-dir/app/albums/@modal/(.)[album]/[song]/page.tsx b/packages/app-dir/app/albums/@modal/(.)[album]/[song]/page.tsx index 46cb5aea..ef158f1c 100644 --- a/packages/app-dir/app/albums/@modal/(.)[album]/[song]/page.tsx +++ b/packages/app-dir/app/albums/@modal/(.)[album]/[song]/page.tsx @@ -1,26 +1,28 @@ +import { getSong } from "@open-next/core/api"; +import Modal from "@open-next/core/components/Modal"; -import Modal from '@open-next/core/components/Modal' - -import { getSong } from '@open-next/core/api' type Props = { params: { - album: string - song: string - } -} + 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)} -
- - {/*
-
-} \ No newline at end of file + const song = await getSong(params.album, params.song); + return ( + +

Modal

+ Album: {decodeURIComponent(params.album)} +
+ {/*
+
+ ); +} diff --git a/packages/app-dir/app/albums/@modal/(.)[album]/page.tsx b/packages/app-dir/app/albums/@modal/(.)[album]/page.tsx index 2b272d1d..45ac13c7 100644 --- a/packages/app-dir/app/albums/@modal/(.)[album]/page.tsx +++ b/packages/app-dir/app/albums/@modal/(.)[album]/page.tsx @@ -1,11 +1,10 @@ +import Modal from "@open-next/core/components/Modal"; -import Modal from '@open-next/core/components/Modal' type Props = { params: { - artist: string - } -} + artist: string; + }; +}; export default function ArtistPage({ params }: Props) { - - return Artists {params.artist} -} \ No newline at end of file + return Artists {params.artist}; +} diff --git a/packages/app-dir/app/albums/@modal/default.tsx b/packages/app-dir/app/albums/@modal/default.tsx index 827ef624..6ddf1b76 100644 --- a/packages/app-dir/app/albums/@modal/default.tsx +++ b/packages/app-dir/app/albums/@modal/default.tsx @@ -1,3 +1,3 @@ export default function Default() { - return null -} \ No newline at end of file + return null; +} diff --git a/packages/app-dir/app/albums/[album]/[song]/page.tsx b/packages/app-dir/app/albums/[album]/[song]/page.tsx index 01bde142..95fbe7be 100644 --- a/packages/app-dir/app/albums/[album]/[song]/page.tsx +++ b/packages/app-dir/app/albums/[album]/[song]/page.tsx @@ -1,20 +1,24 @@ +import { getSong } from "@open-next/core/api"; -import { getSong } from "@open-next/core/api" type Props = { params: { - album: string - song: string - } -} + album: string; + song: string; + }; +}; export default async function Song({ params }: Props) { - const song = await getSong(params.album, params.song) + const song = await getSong(params.album, params.song); - return
-

Not Modal

- {decodeURIComponent(params.album)} - -
-} \ No newline at end of file + return ( +
+

Not Modal

+ {decodeURIComponent(params.album)} + +
+ ); +} diff --git a/packages/app-dir/app/albums/[album]/page.tsx b/packages/app-dir/app/albums/[album]/page.tsx index 0bf14c1b..8d3a5537 100644 --- a/packages/app-dir/app/albums/[album]/page.tsx +++ b/packages/app-dir/app/albums/[album]/page.tsx @@ -1,3 +1,3 @@ export default function ArtistPage() { - return
Artist
-} \ No newline at end of file + return
Artist
; +} diff --git a/packages/app-dir/app/albums/layout.tsx b/packages/app-dir/app/albums/layout.tsx index 5b9388b3..815c70ba 100644 --- a/packages/app-dir/app/albums/layout.tsx +++ b/packages/app-dir/app/albums/layout.tsx @@ -1,8 +1,16 @@ import { ReactNode } from "react"; -export default function Layout({ children, modal }: { children: ReactNode, modal: ReactNode }) { - return
- {children} - {modal} -
-} \ No newline at end of file +export default function Layout({ + children, + modal, +}: { + children: ReactNode; + modal: ReactNode; +}) { + return ( +
+ {children} + {modal} +
+ ); +} diff --git a/packages/app-dir/app/albums/page.tsx b/packages/app-dir/app/albums/page.tsx index 7e7c6a1c..ba6d4e46 100644 --- a/packages/app-dir/app/albums/page.tsx +++ b/packages/app-dir/app/albums/page.tsx @@ -1,9 +1,13 @@ -import { getAlbums } from '@open-next/core/api' -import Album from '@open-next/core/components/Album' -import Link from 'next/link' +import { getAlbums } from "@open-next/core/api"; +import Album from "@open-next/core/components/Album"; + export default async function AlbumPage() { - const albums = await getAlbums() - return
- {albums.map(album => )} -
-} \ No newline at end of file + const albums = await getAlbums(); + return ( +
+ {albums.map((album) => ( + + ))} +
+ ); +} diff --git a/packages/app-dir/app/api/client/route.ts b/packages/app-dir/app/api/client/route.ts index 24e8993d..e9c204ba 100644 --- a/packages/app-dir/app/api/client/route.ts +++ b/packages/app-dir/app/api/client/route.ts @@ -1,4 +1,5 @@ import { NextResponse } from "next/server"; + export async function GET(request: Request) { return NextResponse.json({ hello: "client", diff --git a/packages/app-dir/app/api/host/route.ts b/packages/app-dir/app/api/host/route.ts index a11b136b..16630b34 100644 --- a/packages/app-dir/app/api/host/route.ts +++ b/packages/app-dir/app/api/host/route.ts @@ -1,4 +1,5 @@ import { NextResponse } from "next/server"; + export async function GET(request: Request) { return NextResponse.json({ url: request.url, diff --git a/packages/app-dir/app/api/page.tsx b/packages/app-dir/app/api/page.tsx index 8b58f86a..0771ac5a 100644 --- a/packages/app-dir/app/api/page.tsx +++ b/packages/app-dir/app/api/page.tsx @@ -1,34 +1,40 @@ -'use client' +"use client"; -import { useCallback, useState } from 'react' +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 [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 { 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) - }, []) + 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'}
+ return ( +
+
API: {data ? JSON.stringify(data, null, 2) : "N/A"}
- - -
-} \ No newline at end of file + + +
+ ); +} diff --git a/packages/app-dir/app/isr/page.tsx b/packages/app-dir/app/isr/page.tsx index e1e68247..e88f677c 100644 --- a/packages/app-dir/app/isr/page.tsx +++ b/packages/app-dir/app/isr/page.tsx @@ -1,9 +1,9 @@ async function getTime() { - return new Date().toISOString() + return new Date().toISOString(); } -export const revalidate = 10 +export const revalidate = 10; export default async function ISR() { - const time = getTime() - return
ISR: {time}
-} \ No newline at end of file + const time = getTime(); + return
ISR: {time}
; +} diff --git a/packages/app-dir/app/layout.tsx b/packages/app-dir/app/layout.tsx index 6821b15e..3e32b007 100644 --- a/packages/app-dir/app/layout.tsx +++ b/packages/app-dir/app/layout.tsx @@ -1,22 +1,23 @@ -import './globals.css' -import type { Metadata } from 'next' -import { Inter } from 'next/font/google' +import "./globals.css"; -const inter = Inter({ subsets: ['latin'] }) +import type { Metadata } from "next"; +import { Inter } from "next/font/google"; + +const inter = Inter({ subsets: ["latin"] }); export const metadata: Metadata = { - title: 'Nextjs AppDir Only', - description: 'Generated by create next app', -} + title: "Nextjs AppDir Only", + description: "Generated by create next app", +}; export default function RootLayout({ children, }: { - children: React.ReactNode + children: React.ReactNode; }) { return ( {children} - ) + ); } diff --git a/packages/app-dir/app/page.tsx b/packages/app-dir/app/page.tsx index 85872512..c2047b96 100644 --- a/packages/app-dir/app/page.tsx +++ b/packages/app-dir/app/page.tsx @@ -1,6 +1,4 @@ -import Image from 'next/image' - -import Nav from '@open-next/core/components/Nav' +import Nav from "@open-next/core/components/Nav"; export default function Home() { return ( @@ -8,32 +6,35 @@ export default function Home() {

Nextjs AppDir Only

- -
- ) + ); } diff --git a/packages/app-dir/app/parallel/@a/a-page/page.tsx b/packages/app-dir/app/parallel/@a/a-page/page.tsx index d0e950b6..8108d277 100644 --- a/packages/app-dir/app/parallel/@a/a-page/page.tsx +++ b/packages/app-dir/app/parallel/@a/a-page/page.tsx @@ -1,3 +1,3 @@ export default function APage() { - return
A Page
-} \ No newline at end of file + return
A Page
; +} diff --git a/packages/app-dir/app/parallel/@a/page.tsx b/packages/app-dir/app/parallel/@a/page.tsx index 5d46d92b..5e7ee146 100644 --- a/packages/app-dir/app/parallel/@a/page.tsx +++ b/packages/app-dir/app/parallel/@a/page.tsx @@ -1,9 +1,10 @@ import Link from "next/link"; export default function A() { - return
-

Parallel Route A

- Go to a-page - -
-} \ No newline at end of file + return ( +
+

Parallel Route A

+ Go to a-page +
+ ); +} diff --git a/packages/app-dir/app/parallel/@b/b-page/page.tsx b/packages/app-dir/app/parallel/@b/b-page/page.tsx index 381e6077..1750356e 100644 --- a/packages/app-dir/app/parallel/@b/b-page/page.tsx +++ b/packages/app-dir/app/parallel/@b/b-page/page.tsx @@ -1,3 +1,3 @@ export default function BPage() { - return
B Page
-} \ No newline at end of file + return
B Page
; +} diff --git a/packages/app-dir/app/parallel/@b/page.tsx b/packages/app-dir/app/parallel/@b/page.tsx index 7005af8f..b217f84e 100644 --- a/packages/app-dir/app/parallel/@b/page.tsx +++ b/packages/app-dir/app/parallel/@b/page.tsx @@ -1,9 +1,11 @@ import Link from "next/link"; export default function B() { - return
-

Parallel Route B

+ return ( +
+

Parallel Route B

- Go to b-page -
-} \ No newline at end of file + Go to b-page +
+ ); +} diff --git a/packages/app-dir/app/parallel/layout.tsx b/packages/app-dir/app/parallel/layout.tsx index 8bc2aab5..ab791f5a 100644 --- a/packages/app-dir/app/parallel/layout.tsx +++ b/packages/app-dir/app/parallel/layout.tsx @@ -1,29 +1,48 @@ -'use client' +"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) +export default function Layout({ + a, + b, + children, +}: { + children: ReactNode; + a: ReactNode; + b: ReactNode; +}) { + const [routeA, setRouteA] = useState(false); + const [routeB, setRouteB] = useState(false); - return
+ return ( +
+
+ + +
-
- - + {routeA && a} + {routeB && b} + {/* {children} */}
- - {routeA && a} - {routeB && b} - {/* {children} */} -
-} \ No newline at end of file + ); +} diff --git a/packages/app-dir/app/parallel/page.tsx b/packages/app-dir/app/parallel/page.tsx index 9855122f..67e08591 100644 --- a/packages/app-dir/app/parallel/page.tsx +++ b/packages/app-dir/app/parallel/page.tsx @@ -1,3 +1,3 @@ export default function Page() { - return null -} \ No newline at end of file + return null; +} diff --git a/packages/app-dir/app/redirect-destination/page.tsx b/packages/app-dir/app/redirect-destination/page.tsx index 638ae2e6..1fe01ac3 100644 --- a/packages/app-dir/app/redirect-destination/page.tsx +++ b/packages/app-dir/app/redirect-destination/page.tsx @@ -1,3 +1,3 @@ export default function RedirectDestination() { - return
Redirect Destination
-} \ No newline at end of file + return
Redirect Destination
; +} diff --git a/packages/app-dir/app/rewrite-destination/page.tsx b/packages/app-dir/app/rewrite-destination/page.tsx index 9879fe31..c7ea97c3 100644 --- a/packages/app-dir/app/rewrite-destination/page.tsx +++ b/packages/app-dir/app/rewrite-destination/page.tsx @@ -1,3 +1,3 @@ export default function RewriteDestination() { - return
Rewritten Destination
-} \ No newline at end of file + return
Rewritten Destination
; +} diff --git a/packages/app-dir/app/server-actions/client.tsx b/packages/app-dir/app/server-actions/client.tsx index 45f4d9cd..cb4dbd2d 100644 --- a/packages/app-dir/app/server-actions/client.tsx +++ b/packages/app-dir/app/server-actions/client.tsx @@ -1,23 +1,29 @@ -'use client' -import { getSong } from '@open-next/core/api' -import { useCallback, useState, useTransition } from 'react' -import Song from '@open-next/core/components/Album/Song' -import type { Song as SongType } from '@open-next/core/api' -export default function Client() { +"use client"; +import { useCallback, useState, useTransition } from "react"; + +import type { Song as SongType } from "@open-next/core/api"; +import { getSong } from "@open-next/core/api"; +import Song from "@open-next/core/components/Album/Song"; - const [isPending, startTransition] = useTransition() - const [song, setSong] = useState() +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) - }) - }, []) + const song = await getSong( + "Hold Me In Your Arms", + "I'm never gonna give you up", + ); + setSong(song); + }); + }, []); - return
- - {isPending &&
☎️ing Server Actions...
} - {song && } -
-} \ No newline at end of file + return ( +
+ + {isPending &&
☎️ing Server Actions...
} + {song && } +
+ ); +} diff --git a/packages/app-dir/app/server-actions/page.tsx b/packages/app-dir/app/server-actions/page.tsx index 924cd00a..f15c66fc 100644 --- a/packages/app-dir/app/server-actions/page.tsx +++ b/packages/app-dir/app/server-actions/page.tsx @@ -1,7 +1,10 @@ -import Client from './client' +import Client from "./client"; + export default function Page() { - return
-

Server Actions

- -
-} \ No newline at end of file + return ( +
+

Server Actions

+ +
+ ); +} diff --git a/packages/app-dir/app/ssr/loading.tsx b/packages/app-dir/app/ssr/loading.tsx index 37ba5d7d..fc80ef06 100644 --- a/packages/app-dir/app/ssr/loading.tsx +++ b/packages/app-dir/app/ssr/loading.tsx @@ -1,3 +1,3 @@ export default function Loading() { - return
Loading...
-} \ No newline at end of file + return
Loading...
; +} diff --git a/packages/app-dir/app/ssr/page.tsx b/packages/app-dir/app/ssr/page.tsx index d6e414a9..394f6e14 100644 --- a/packages/app-dir/app/ssr/page.tsx +++ b/packages/app-dir/app/ssr/page.tsx @@ -1,10 +1,12 @@ -import { wait } from '@open-next/utils' +import { wait } from "@open-next/utils"; -export const revalidate = 0 +export const revalidate = 0; export default async function SSR() { - await wait(2000) - const time = new Date().toISOString() - return
-

SSR {time}

-
-} \ No newline at end of file + await wait(2000); + const time = new Date().toISOString(); + return ( +
+

SSR {time}

+
+ ); +} diff --git a/packages/app-dir/middleware.ts b/packages/app-dir/middleware.ts index 1163f2dd..f72ae027 100644 --- a/packages/app-dir/middleware.ts +++ b/packages/app-dir/middleware.ts @@ -1,4 +1,5 @@ -import { NextResponse, NextRequest } from "next/server"; +import { NextRequest, NextResponse } from "next/server"; + export function middleware(request: NextRequest) { const path = request.nextUrl.pathname; //new URL(request.url).pathname; diff --git a/packages/app-dir/postcss.config.js b/packages/app-dir/postcss.config.js index 33ad091d..12a703d9 100644 --- a/packages/app-dir/postcss.config.js +++ b/packages/app-dir/postcss.config.js @@ -3,4 +3,4 @@ module.exports = { tailwindcss: {}, autoprefixer: {}, }, -} +}; diff --git a/packages/app-dir/tailwind.config.ts b/packages/app-dir/tailwind.config.ts index 7115bd6e..24dfacb7 100644 --- a/packages/app-dir/tailwind.config.ts +++ b/packages/app-dir/tailwind.config.ts @@ -11,7 +11,8 @@ const config: Config = { extend: { backgroundImage: { "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", - "gradient-conic": "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", + "gradient-conic": + "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", }, }, }, diff --git a/packages/core/api/index.ts b/packages/core/api/index.ts index aa738c07..4b90ffaf 100644 --- a/packages/core/api/index.ts +++ b/packages/core/api/index.ts @@ -34,6 +34,6 @@ export async function getSong(album: string, title: string) { return data.songs.find( (song) => song.album === decodeURIComponent(album) && - song.title === decodeURIComponent(title) + song.title === decodeURIComponent(title), ); } diff --git a/packages/core/components/Album/Album.tsx b/packages/core/components/Album/Album.tsx index 15221b3d..b5eac0a1 100644 --- a/packages/core/components/Album/Album.tsx +++ b/packages/core/components/Album/Album.tsx @@ -1,13 +1,17 @@ -import type { Album } from '../../api/index' +import type { Album } from "../../api/index"; +import Song from "./Song"; -import Song from './Song' type Props = { - album: Album -} + album: Album; +}; export default function Album({ album }: Props) { - return
-
Album: {album.album}
-
Artist: {album.artist}
- {album.songs.map(song => )} -
-} \ No newline at end of file + return ( +
+
Album: {album.album}
+
Artist: {album.artist}
+ {album.songs.map((song) => ( + + ))} +
+ ); +} diff --git a/packages/core/components/Album/Song.tsx b/packages/core/components/Album/Song.tsx index 9692aa36..0cc93e77 100644 --- a/packages/core/components/Album/Song.tsx +++ b/packages/core/components/Album/Song.tsx @@ -1,17 +1,23 @@ -import type { Song } from '../../api/index' +import type { Song } from "../../api/index"; type Props = { - song: Song - play?: boolean -} + song: Song; + play?: boolean; +}; export default function Song({ song, play }: Props) { - return
-
Song: {song.title}
-
Year: {song.year}
- {play && } -
-} \ No newline at end of file + return ( +
+
Song: {song.title}
+
Year: {song.year}
+ {play && ( + + )} +
+ ); +} diff --git a/packages/core/components/Album/index.tsx b/packages/core/components/Album/index.tsx index b6d552c4..633e3cdc 100644 --- a/packages/core/components/Album/index.tsx +++ b/packages/core/components/Album/index.tsx @@ -1,17 +1,21 @@ -import Link from 'next/link' -import type { Album } from '../../api/index' +import Link from "next/link"; + +import type { Album } from "../../api/index"; +import Song from "./Song"; -import Song from './Song' type Props = { - album: Album -} + album: Album; +}; export default function Album({ album }: Props) { - return
-
Album: {album.album}
-
Artist: {album.artist}
- {album.songs.map(song => - - - )} -
-} \ No newline at end of file + return ( +
+
Album: {album.album}
+
Artist: {album.artist}
+ {album.songs.map((song) => ( + + + + ))} +
+ ); +} diff --git a/packages/core/components/Modal/index.tsx b/packages/core/components/Modal/index.tsx index ea577fd8..fb306a4d 100644 --- a/packages/core/components/Modal/index.tsx +++ b/packages/core/components/Modal/index.tsx @@ -1,49 +1,53 @@ -'use client' -import { useCallback, useRef, useEffect, MouseEventHandler } from 'react' -import { useRouter } from 'next/navigation' +"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 overlay = useRef(null); + const wrapper = useRef(null); + const router = useRouter(); const onDismiss = useCallback(() => { - router.back() - }, [router]) + router.back(); + }, [router]); const onClick: MouseEventHandler = useCallback( (e) => { - if (e.target === overlay.current || e.target === wrapper.current) { - if (onDismiss) onDismiss() + if ( + onDismiss && + (e.target === overlay.current || e.target === wrapper.current) + ) { + onDismiss(); } }, - [onDismiss, overlay, wrapper] - ) + [onDismiss, overlay, wrapper], + ); const onKeyDown = useCallback( (e: KeyboardEvent) => { - if (e.key === 'Escape') onDismiss() + if (e.key === "Escape") onDismiss(); }, - [onDismiss] - ) + [onDismiss], + ); useEffect(() => { - document.addEventListener('keydown', onKeyDown) - return () => document.removeEventListener('keydown', onKeyDown) - }, [onKeyDown]) + document.addEventListener("keydown", onKeyDown); + return () => document.removeEventListener("keydown", onKeyDown); + }, [onKeyDown]); return (
{children}
- ) -} \ No newline at end of file + ); +} diff --git a/packages/core/components/Nav/index.tsx b/packages/core/components/Nav/index.tsx index 730e3697..cf3a6c79 100644 --- a/packages/core/components/Nav/index.tsx +++ b/packages/core/components/Nav/index.tsx @@ -1,24 +1,31 @@ +"use client"; +import { PropsWithChildren } from "react"; -'use client' -import Link from 'next/link' -import { PropsWithChildren } from 'react' +import Link from "next/link"; type Props = PropsWithChildren & { - href: string - title: string - icon?: string -} + href: string; + title: string; + icon?: string; +}; export default function Nav(p: Props) { - const { children, href, title, icon = '/static/frank.webp' } = p - return -
-
{title}
-
- -
-
- {children} -
- - -} \ No newline at end of file + const { children, href, title, icon = "/static/frank.webp" } = p; + return ( + +
+
{title}
+
+ +
+
+
{children}
+ + ); +} diff --git a/packages/open-next/src/adapters/server-adapter.ts b/packages/open-next/src/adapters/server-adapter.ts index 58fdd874..6fb504f2 100644 --- a/packages/open-next/src/adapters/server-adapter.ts +++ b/packages/open-next/src/adapters/server-adapter.ts @@ -284,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/src/build.ts b/packages/open-next/src/build.ts index 444dde07..5ace2452 100644 --- a/packages/open-next/src/build.ts +++ b/packages/open-next/src/build.ts @@ -563,7 +563,8 @@ function esbuildSync(esbuildOptions: ESBuildOptions) { if (result.errors.length > 0) { result.errors.forEach((error) => console.error(error)); throw new Error( - `There was a problem bundling ${(esbuildOptions.entryPoints as string[])[0] + `There was a problem bundling ${ + (esbuildOptions.entryPoints as string[])[0] }.`, ); } diff --git a/packages/pages-only/.gitignore b/packages/pages-only/.gitignore index c87c9b39..13f9f4c2 100644 --- a/packages/pages-only/.gitignore +++ b/packages/pages-only/.gitignore @@ -10,6 +10,7 @@ # next.js /.next/ +.open-next /out/ # production diff --git a/packages/pages-only/postcss.config.js b/packages/pages-only/postcss.config.js index 21e63aae..826c2d69 100644 --- a/packages/pages-only/postcss.config.js +++ b/packages/pages-only/postcss.config.js @@ -1,7 +1,10 @@ module.exports = { plugins: { tailwindcss: { - content: ["./src/**/*.{js,ts,jsx,tsx,mdx}", "../../packages/core/**/*.{jsx,tsx}"], + content: [ + "./src/**/*.{js,ts,jsx,tsx,mdx}", + "../../packages/core/**/*.{jsx,tsx}", + ], }, autoprefixer: {}, }, diff --git a/packages/pages-only/src/pages/_app.tsx b/packages/pages-only/src/pages/_app.tsx index 021681f4..a9d6fd8d 100644 --- a/packages/pages-only/src/pages/_app.tsx +++ b/packages/pages-only/src/pages/_app.tsx @@ -1,6 +1,7 @@ -import '@/styles/globals.css' -import type { AppProps } from 'next/app' +import "@/styles/globals.css"; + +import type { AppProps } from "next/app"; export default function App({ Component, pageProps }: AppProps) { - return + return ; } diff --git a/packages/pages-only/src/pages/_document.tsx b/packages/pages-only/src/pages/_document.tsx index 54e8bf3e..ffc3f3cc 100644 --- a/packages/pages-only/src/pages/_document.tsx +++ b/packages/pages-only/src/pages/_document.tsx @@ -1,4 +1,4 @@ -import { Html, Head, Main, NextScript } from 'next/document' +import { Head, Html, Main, NextScript } from "next/document"; export default function Document() { return ( @@ -9,5 +9,5 @@ export default function Document() { - ) + ); } diff --git a/packages/pages-only/src/pages/api/hello.ts b/packages/pages-only/src/pages/api/hello.ts index 41b59cbc..11190ecf 100644 --- a/packages/pages-only/src/pages/api/hello.ts +++ b/packages/pages-only/src/pages/api/hello.ts @@ -5,6 +5,9 @@ type Data = { hello: string; }; -export default function handler(req: NextApiRequest, res: NextApiResponse) { +export default function handler( + req: NextApiRequest, + res: NextApiResponse, +) { res.status(200).json({ hello: "world" }); } diff --git a/packages/pages-only/src/pages/index.tsx b/packages/pages-only/src/pages/index.tsx index 39e8c246..06079cbf 100644 --- a/packages/pages-only/src/pages/index.tsx +++ b/packages/pages-only/src/pages/index.tsx @@ -1,7 +1,8 @@ -import Head from 'next/head' -import { Inter } from '@next/font/google' -import Nav from '@open-next/core/components/Nav' -const inter = Inter({ subsets: ['latin'] }) +import { Inter } from "@next/font/google"; +import Nav from "@open-next/core/components/Nav"; +import Head from "next/head"; + +const inter = Inter({ subsets: ["latin"] }); export default function Home() { return ( @@ -13,15 +14,15 @@ export default function Home() {

Nextjs Pages Only

-
-
- ) + ); } diff --git a/packages/pages-only/src/pages/isr/index.tsx b/packages/pages-only/src/pages/isr/index.tsx index 8e6df457..c5efe235 100644 --- a/packages/pages-only/src/pages/isr/index.tsx +++ b/packages/pages-only/src/pages/isr/index.tsx @@ -1,4 +1,5 @@ -import { InferGetStaticPropsType } from 'next' +import { InferGetStaticPropsType } from "next"; + export async function getStaticProps() { return { props: { @@ -8,8 +9,8 @@ export async function getStaticProps() { }; } -export default function Page({ time }: InferGetStaticPropsType) { - return
- ISR: {time} -
-} \ No newline at end of file +export default function Page({ + time, +}: InferGetStaticPropsType) { + return
ISR: {time}
; +} diff --git a/packages/pages-only/src/pages/ssr/index.tsx b/packages/pages-only/src/pages/ssr/index.tsx index 16132658..372da27a 100644 --- a/packages/pages-only/src/pages/ssr/index.tsx +++ b/packages/pages-only/src/pages/ssr/index.tsx @@ -1,15 +1,15 @@ -import { InferGetServerSidePropsType } from 'next' +import { InferGetServerSidePropsType } from "next"; export async function getServerSideProps() { return { props: { time: new Date().toISOString(), - } + }, }; } -export default function Page({ time }: InferGetServerSidePropsType) { - return
- SSR: {time} -
-} \ No newline at end of file +export default function Page({ + time, +}: InferGetServerSidePropsType) { + return
SSR: {time}
; +} diff --git a/packages/tests-e2e/tests/appDirOnly/api.test.ts b/packages/tests-e2e/tests/appDirOnly/api.test.ts index d3615e12..670f1b05 100644 --- a/packages/tests-e2e/tests/appDirOnly/api.test.ts +++ b/packages/tests-e2e/tests/appDirOnly/api.test.ts @@ -1,4 +1,4 @@ -import { test, expect } from "@playwright/test"; +import { expect, test } from "@playwright/test"; test("API call from client", async ({ page }) => { await page.goto("/"); diff --git a/packages/tests-e2e/tests/appDirOnly/isr.test.ts b/packages/tests-e2e/tests/appDirOnly/isr.test.ts index c62f5cf1..37f8d076 100644 --- a/packages/tests-e2e/tests/appDirOnly/isr.test.ts +++ b/packages/tests-e2e/tests/appDirOnly/isr.test.ts @@ -1,5 +1,5 @@ -import { test, expect } from "@playwright/test"; import { wait } from "@open-next/utils"; +import { expect, test } from "@playwright/test"; test("Incremental Static Regeneration", async ({ page }) => { test.setTimeout(45000); diff --git a/packages/tests-e2e/tests/appDirOnly/middleware.redirect.test.ts b/packages/tests-e2e/tests/appDirOnly/middleware.redirect.test.ts index b68aeba8..bb27a44d 100644 --- a/packages/tests-e2e/tests/appDirOnly/middleware.redirect.test.ts +++ b/packages/tests-e2e/tests/appDirOnly/middleware.redirect.test.ts @@ -1,4 +1,4 @@ -import { test, expect } from "@playwright/test"; +import { expect, test } from "@playwright/test"; test("Middleware Redirect", async ({ page }) => { await page.goto("/"); diff --git a/packages/tests-e2e/tests/appDirOnly/middleware.rewrite.test.ts b/packages/tests-e2e/tests/appDirOnly/middleware.rewrite.test.ts index 2977c890..2f24ed4b 100644 --- a/packages/tests-e2e/tests/appDirOnly/middleware.rewrite.test.ts +++ b/packages/tests-e2e/tests/appDirOnly/middleware.rewrite.test.ts @@ -1,4 +1,4 @@ -import { test, expect } from "@playwright/test"; +import { expect, test } from "@playwright/test"; test("Middleware Rewrite", async ({ page }) => { await page.goto("/"); diff --git a/packages/tests-e2e/tests/appDirOnly/modals.test.ts b/packages/tests-e2e/tests/appDirOnly/modals.test.ts index 8b0f9d06..f5be403d 100644 --- a/packages/tests-e2e/tests/appDirOnly/modals.test.ts +++ b/packages/tests-e2e/tests/appDirOnly/modals.test.ts @@ -1,12 +1,14 @@ -import { test, expect } from "@playwright/test"; +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 + .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` + `/albums/Hold%20Me%20In%20Your%20Arms/I'm%20never%20gonna%20give%20you%20up`, ); const modal = page.getByText("Modal", { exact: true }); @@ -15,7 +17,7 @@ test("Route modal and interception", async ({ page }) => { // 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` + `/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/appDirOnly/parallel.test.ts b/packages/tests-e2e/tests/appDirOnly/parallel.test.ts index 17de2f12..9a0e32a7 100644 --- a/packages/tests-e2e/tests/appDirOnly/parallel.test.ts +++ b/packages/tests-e2e/tests/appDirOnly/parallel.test.ts @@ -1,4 +1,4 @@ -import { test, expect } from "@playwright/test"; +import { expect, test } from "@playwright/test"; test("Parallel routes", async ({ page }) => { await page.goto("/"); diff --git a/packages/tests-e2e/tests/appDirOnly/serverActions.test.ts b/packages/tests-e2e/tests/appDirOnly/serverActions.test.ts index 72acb66f..411400b0 100644 --- a/packages/tests-e2e/tests/appDirOnly/serverActions.test.ts +++ b/packages/tests-e2e/tests/appDirOnly/serverActions.test.ts @@ -1,4 +1,4 @@ -import { test, expect } from "@playwright/test"; +import { expect, test } from "@playwright/test"; test("Server Actions", async ({ page }) => { await page.goto("/"); diff --git a/packages/tests-e2e/tests/pagesOnly/isr.test.ts b/packages/tests-e2e/tests/pagesOnly/isr.test.ts index 8f1307b5..99886782 100644 --- a/packages/tests-e2e/tests/pagesOnly/isr.test.ts +++ b/packages/tests-e2e/tests/pagesOnly/isr.test.ts @@ -1,5 +1,5 @@ -import { test, expect } from "@playwright/test"; import { wait } from "@open-next/utils"; +import { expect, test } from "@playwright/test"; test("Incremental Static Regeneration", async ({ page }) => { test.setTimeout(45000); diff --git a/packages/tests-e2e/tests/pagesOnly/ssr.test.ts b/packages/tests-e2e/tests/pagesOnly/ssr.test.ts index 7fe159f2..f8969ea3 100644 --- a/packages/tests-e2e/tests/pagesOnly/ssr.test.ts +++ b/packages/tests-e2e/tests/pagesOnly/ssr.test.ts @@ -1,8 +1,8 @@ // 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"; +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 }) => { diff --git a/packages/tests-unit/tests/binary.test.ts b/packages/tests-unit/tests/binary.test.ts index a1cdba48..0f8fd4a6 100644 --- a/packages/tests-unit/tests/binary.test.ts +++ b/packages/tests-unit/tests/binary.test.ts @@ -15,7 +15,10 @@ describe("isBinaryContentType", () => { type: "application/vnd.openxmlformats-officedocument.presentationml.presentation", binary: true, }, - { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", binary: true }, + { + type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + binary: true, + }, { type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", binary: true, diff --git a/packages/tests-unit/tests/example.test.ts b/packages/tests-unit/tests/example.test.ts index 3935c385..ea0e2886 100644 --- a/packages/tests-unit/tests/example.test.ts +++ b/packages/tests-unit/tests/example.test.ts @@ -1,4 +1,5 @@ import { add } from "@open-next/utils"; + describe("test", () => { it("passes", () => { expect(add(34.5, 34.5)).toEqual(69); From 6286d40c48d9b335c7c2dbe74340707ca5163628 Mon Sep 17 00:00:00 2001 From: Khue Nguyen Date: Tue, 29 Aug 2023 10:05:44 -0700 Subject: [PATCH 18/26] moved internal example packages out of packages/ and into /examples --- .github/workflows/e2e.yml | 15 +- .gitignore | 4 + example/.sst.config.1693329762830.mjs | 14 + example/package.json | 4 +- .../app-pages-router}/.gitignore | 0 .../app-pages-router}/README.md | 0 .../albums/@modal/(.)[album]/[song]/page.tsx | 4 +- .../app/albums/@modal/(.)[album]/page.tsx | 2 +- .../app/albums/@modal/default.tsx | 0 .../app/albums/[album]/[song]/page.tsx | 2 +- .../app/albums/[album]/page.tsx | 0 .../app-pages-router}/app/albums/layout.tsx | 0 .../app-pages-router}/app/albums/page.tsx | 4 +- .../app-pages-router}/app/api/client/route.ts | 0 .../app-pages-router}/app/api/host/route.ts | 0 .../app-pages-router}/app/api/page.tsx | 0 .../app-pages-router}/app/globals.css | 0 .../app-pages-router}/app/isr/page.tsx | 0 .../app-pages-router}/app/layout.tsx | 2 +- examples/app-pages-router/app/page.tsx | 49 + .../app/parallel/@a/a-page/page.tsx | 0 .../app/parallel/@a/page.tsx | 0 .../app/parallel/@b/b-page/page.tsx | 0 .../app/parallel/@b/page.tsx | 0 .../app-pages-router}/app/parallel/layout.tsx | 0 .../app-pages-router}/app/parallel/page.tsx | 0 .../app/redirect-destination/page.tsx | 0 .../app/rewrite-destination/page.tsx | 0 .../app/server-actions/client.tsx | 6 +- .../app/server-actions/page.tsx | 0 .../app-pages-router}/app/ssr/loading.tsx | 0 .../app-pages-router}/app/ssr/page.tsx | 0 .../app-pages-router}/middleware.ts | 0 .../app-pages-router}/next.config.js | 2 +- examples/app-pages-router/package.json | 30 + .../app-pages-router}/pages/_app.tsx | 0 .../app-pages-router}/pages/_document.tsx | 0 .../app-pages-router}/pages/api/hello.ts | 0 .../pages/pages_isr}/index.tsx | 0 .../pages/pages_ssr}/index.tsx | 0 .../app-pages-router}/postcss.config.js | 0 .../app-pages-router}/public/favicon.ico | Bin .../public/static/frank.webp | Bin examples/app-pages-router/sst-env.d.ts | 1 + .../app-pages-router}/styles/globals.css | 0 .../app-pages-router}/tailwind.config.ts | 4 +- .../app-pages-router}/tsconfig.json | 0 examples/app-router/.gitignore | 36 + examples/app-router/README.md | 34 + .../albums/@modal/(.)[album]/[song]/page.tsx | 28 + .../app/albums/@modal/(.)[album]/page.tsx | 10 + .../app-router/app/albums/@modal/default.tsx | 3 + .../app/albums/[album]/[song]/page.tsx | 24 + .../app-router/app/albums/[album]/page.tsx | 3 + examples/app-router/app/albums/layout.tsx | 16 + examples/app-router/app/albums/page.tsx | 13 + examples/app-router/app/api/client/route.ts | 7 + examples/app-router/app/api/host/route.ts | 7 + examples/app-router/app/api/page.tsx | 40 + examples/app-router/app/globals.css | 27 + examples/app-router/app/isr/page.tsx | 9 + examples/app-router/app/layout.tsx | 23 + .../app-router}/app/page.tsx | 4 +- .../app/parallel/@a/a-page/page.tsx | 3 + examples/app-router/app/parallel/@a/page.tsx | 10 + .../app/parallel/@b/b-page/page.tsx | 3 + examples/app-router/app/parallel/@b/page.tsx | 11 + examples/app-router/app/parallel/layout.tsx | 48 + examples/app-router/app/parallel/page.tsx | 3 + .../app/redirect-destination/page.tsx | 3 + .../app/rewrite-destination/page.tsx | 3 + .../app-router/app/server-actions/client.tsx | 29 + .../app-router/app/server-actions/page.tsx | 10 + examples/app-router/app/ssr/loading.tsx | 3 + examples/app-router/app/ssr/page.tsx | 12 + examples/app-router/middleware.ts | 34 + examples/app-router/next.config.js | 11 + .../app-router}/package.json | 6 +- examples/app-router/postcss.config.js | 6 + .../app-router}/public/favicon.ico | Bin .../app-router}/public/static/frank.webp | Bin examples/app-router/sst-env.d.ts | 1 + examples/app-router/tailwind.config.ts | 19 + examples/app-router/tsconfig.json | 28 + .../pages-router}/.gitignore | 0 .../pages-router}/next.config.js | 2 +- .../pages-router}/package.json | 6 +- .../pages-router}/postcss.config.js | 2 +- examples/pages-router/public/favicon.ico | Bin 0 -> 4286 bytes .../pages-router/public/static/frank.webp | Bin 0 -> 8830 bytes examples/pages-router/src/pages/_app.tsx | 7 + examples/pages-router/src/pages/_document.tsx | 13 + examples/pages-router/src/pages/api/hello.ts | 13 + .../pages-router}/src/pages/index.tsx | 8 +- examples/pages-router/src/pages/isr/index.tsx | 16 + examples/pages-router/src/pages/ssr/index.tsx | 15 + examples/pages-router/src/styles/globals.css | 111 ++ examples/pages-router/sst-env.d.ts | 1 + .../pages-router}/tsconfig.json | 0 .../core => examples/shared}/api/index.ts | 0 .../core => examples/shared}/api/songs.json | 0 .../shared}/components/Album/Album.tsx | 0 .../shared}/components/Album/Song.tsx | 0 .../shared}/components/Album/index.tsx | 0 .../shared}/components/Modal/index.tsx | 0 .../shared}/components/Nav/index.tsx | 0 .../core => examples/shared}/package.json | 2 +- examples/shared/sst-env.d.ts | 1 + .../core => examples/shared}/tsconfig.json | 0 examples/sst/README.md | 3 + {example_sst => examples/sst}/package.json | 2 +- {example_sst => examples/sst}/sst.config.ts | 6 +- .../sst/stacks/AppRouter.ts | 6 +- .../sst/stacks/PagesRouter.ts | 6 +- packages/app-dir/sst-env.d.ts | 1 - packages/core/sst-env.d.ts | 1 - packages/open-next/package.json | 8 +- packages/pages-only/sst-env.d.ts | 1 - packages/tests-e2e/README.md | 12 +- packages/tests-e2e/package.json | 2 +- packages/tests-e2e/playwright.config.js | 20 +- .../api.test.ts | 0 .../host.test.ts | 0 .../isr.test.ts | 0 .../middleware.redirect.test.ts | 0 .../middleware.rewrite.test.ts | 0 .../modals.test.ts | 0 .../tests/appPagesRouter/pages_isr.test.ts | 40 + .../tests/appPagesRouter/pages_ssr.test.ts | 31 + .../parallel.test.ts | 0 .../serverActions.test.ts | 0 .../ssr.test.ts | 0 .../tests-e2e/tests/appRouter/api.test.ts | 29 + .../tests-e2e/tests/appRouter/host.test.ts | 12 + .../tests-e2e/tests/appRouter/isr.test.ts | 39 + .../appRouter/middleware.redirect.test.ts | 17 + .../appRouter/middleware.rewrite.test.ts | 16 + .../tests-e2e/tests/appRouter/modals.test.ts | 24 + .../tests/appRouter/parallel.test.ts | 42 + .../tests/appRouter/serverActions.test.ts | 22 + .../tests-e2e/tests/appRouter/ssr.test.ts | 38 + .../{pagesOnly => pagesRouter}/isr.test.ts | 0 .../{pagesOnly => pagesRouter}/ssr.test.ts | 0 pnpm-lock.yaml | 1301 ++++++----------- pnpm-workspace.yaml | 1 + turbo.json | 6 +- 146 files changed, 1596 insertions(+), 957 deletions(-) create mode 100644 example/.sst.config.1693329762830.mjs rename {packages/app-dir => examples/app-pages-router}/.gitignore (100%) rename {packages/app-dir => examples/app-pages-router}/README.md (100%) rename {packages/app-dir => examples/app-pages-router}/app/albums/@modal/(.)[album]/[song]/page.tsx (87%) rename {packages/app-dir => examples/app-pages-router}/app/albums/@modal/(.)[album]/page.tsx (75%) rename {packages/app-dir => examples/app-pages-router}/app/albums/@modal/default.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/app/albums/[album]/[song]/page.tsx (90%) rename {packages/app-dir => examples/app-pages-router}/app/albums/[album]/page.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/app/albums/layout.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/app/albums/page.tsx (65%) rename {packages/app-dir => examples/app-pages-router}/app/api/client/route.ts (100%) rename {packages/app-dir => examples/app-pages-router}/app/api/host/route.ts (100%) rename {packages/app-dir => examples/app-pages-router}/app/api/page.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/app/globals.css (100%) rename {packages/app-dir => examples/app-pages-router}/app/isr/page.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/app/layout.tsx (93%) create mode 100644 examples/app-pages-router/app/page.tsx rename {packages/app-dir => examples/app-pages-router}/app/parallel/@a/a-page/page.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/app/parallel/@a/page.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/app/parallel/@b/b-page/page.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/app/parallel/@b/page.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/app/parallel/layout.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/app/parallel/page.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/app/redirect-destination/page.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/app/rewrite-destination/page.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/app/server-actions/client.tsx (79%) rename {packages/app-dir => examples/app-pages-router}/app/server-actions/page.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/app/ssr/loading.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/app/ssr/page.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/middleware.ts (100%) rename {packages/app-dir => examples/app-pages-router}/next.config.js (82%) create mode 100644 examples/app-pages-router/package.json rename {packages/pages-only/src => examples/app-pages-router}/pages/_app.tsx (100%) rename {packages/pages-only/src => examples/app-pages-router}/pages/_document.tsx (100%) rename {packages/pages-only/src => examples/app-pages-router}/pages/api/hello.ts (100%) rename {packages/pages-only/src/pages/isr => examples/app-pages-router/pages/pages_isr}/index.tsx (100%) rename {packages/pages-only/src/pages/ssr => examples/app-pages-router/pages/pages_ssr}/index.tsx (100%) rename {packages/app-dir => examples/app-pages-router}/postcss.config.js (100%) rename {packages/app-dir => examples/app-pages-router}/public/favicon.ico (100%) rename {packages/app-dir => examples/app-pages-router}/public/static/frank.webp (100%) create mode 100644 examples/app-pages-router/sst-env.d.ts rename {packages/pages-only/src => examples/app-pages-router}/styles/globals.css (100%) rename {packages/app-dir => examples/app-pages-router}/tailwind.config.ts (76%) rename {packages/app-dir => examples/app-pages-router}/tsconfig.json (100%) create mode 100644 examples/app-router/.gitignore create mode 100644 examples/app-router/README.md create mode 100644 examples/app-router/app/albums/@modal/(.)[album]/[song]/page.tsx create mode 100644 examples/app-router/app/albums/@modal/(.)[album]/page.tsx create mode 100644 examples/app-router/app/albums/@modal/default.tsx create mode 100644 examples/app-router/app/albums/[album]/[song]/page.tsx create mode 100644 examples/app-router/app/albums/[album]/page.tsx create mode 100644 examples/app-router/app/albums/layout.tsx create mode 100644 examples/app-router/app/albums/page.tsx create mode 100644 examples/app-router/app/api/client/route.ts create mode 100644 examples/app-router/app/api/host/route.ts create mode 100644 examples/app-router/app/api/page.tsx create mode 100644 examples/app-router/app/globals.css create mode 100644 examples/app-router/app/isr/page.tsx create mode 100644 examples/app-router/app/layout.tsx rename {packages/app-dir => examples/app-router}/app/page.tsx (94%) create mode 100644 examples/app-router/app/parallel/@a/a-page/page.tsx create mode 100644 examples/app-router/app/parallel/@a/page.tsx create mode 100644 examples/app-router/app/parallel/@b/b-page/page.tsx create mode 100644 examples/app-router/app/parallel/@b/page.tsx create mode 100644 examples/app-router/app/parallel/layout.tsx create mode 100644 examples/app-router/app/parallel/page.tsx create mode 100644 examples/app-router/app/redirect-destination/page.tsx create mode 100644 examples/app-router/app/rewrite-destination/page.tsx create mode 100644 examples/app-router/app/server-actions/client.tsx create mode 100644 examples/app-router/app/server-actions/page.tsx create mode 100644 examples/app-router/app/ssr/loading.tsx create mode 100644 examples/app-router/app/ssr/page.tsx create mode 100644 examples/app-router/middleware.ts create mode 100644 examples/app-router/next.config.js rename {packages/app-dir => examples/app-router}/package.json (79%) create mode 100644 examples/app-router/postcss.config.js rename {packages/pages-only => examples/app-router}/public/favicon.ico (100%) rename {packages/pages-only => examples/app-router}/public/static/frank.webp (100%) create mode 100644 examples/app-router/sst-env.d.ts create mode 100644 examples/app-router/tailwind.config.ts create mode 100644 examples/app-router/tsconfig.json rename {packages/pages-only => examples/pages-router}/.gitignore (100%) rename {packages/pages-only => examples/pages-router}/next.config.js (74%) rename {packages/pages-only => examples/pages-router}/package.json (77%) rename {packages/pages-only => examples/pages-router}/postcss.config.js (76%) create mode 100644 examples/pages-router/public/favicon.ico create mode 100644 examples/pages-router/public/static/frank.webp create mode 100644 examples/pages-router/src/pages/_app.tsx create mode 100644 examples/pages-router/src/pages/_document.tsx create mode 100644 examples/pages-router/src/pages/api/hello.ts rename {packages/pages-only => examples/pages-router}/src/pages/index.tsx (79%) create mode 100644 examples/pages-router/src/pages/isr/index.tsx create mode 100644 examples/pages-router/src/pages/ssr/index.tsx create mode 100644 examples/pages-router/src/styles/globals.css create mode 100644 examples/pages-router/sst-env.d.ts rename {packages/pages-only => examples/pages-router}/tsconfig.json (100%) rename {packages/core => examples/shared}/api/index.ts (100%) rename {packages/core => examples/shared}/api/songs.json (100%) rename {packages/core => examples/shared}/components/Album/Album.tsx (100%) rename {packages/core => examples/shared}/components/Album/Song.tsx (100%) rename {packages/core => examples/shared}/components/Album/index.tsx (100%) rename {packages/core => examples/shared}/components/Modal/index.tsx (100%) rename {packages/core => examples/shared}/components/Nav/index.tsx (100%) rename {packages/core => examples/shared}/package.json (89%) create mode 100644 examples/shared/sst-env.d.ts rename {packages/core => examples/shared}/tsconfig.json (100%) create mode 100644 examples/sst/README.md rename {example_sst => examples/sst}/package.json (88%) rename {example_sst => examples/sst}/sst.config.ts (56%) rename example_sst/stacks/AppDirOnly.ts => examples/sst/stacks/AppRouter.ts (58%) rename example_sst/stacks/PagesOnly.ts => examples/sst/stacks/PagesRouter.ts (57%) delete mode 100644 packages/app-dir/sst-env.d.ts delete mode 100644 packages/core/sst-env.d.ts delete mode 100644 packages/pages-only/sst-env.d.ts rename packages/tests-e2e/tests/{appDirOnly => appPagesRouter}/api.test.ts (100%) rename packages/tests-e2e/tests/{appDirOnly => appPagesRouter}/host.test.ts (100%) rename packages/tests-e2e/tests/{appDirOnly => appPagesRouter}/isr.test.ts (100%) rename packages/tests-e2e/tests/{appDirOnly => appPagesRouter}/middleware.redirect.test.ts (100%) rename packages/tests-e2e/tests/{appDirOnly => appPagesRouter}/middleware.rewrite.test.ts (100%) rename packages/tests-e2e/tests/{appDirOnly => appPagesRouter}/modals.test.ts (100%) create mode 100644 packages/tests-e2e/tests/appPagesRouter/pages_isr.test.ts create mode 100644 packages/tests-e2e/tests/appPagesRouter/pages_ssr.test.ts rename packages/tests-e2e/tests/{appDirOnly => appPagesRouter}/parallel.test.ts (100%) rename packages/tests-e2e/tests/{appDirOnly => appPagesRouter}/serverActions.test.ts (100%) rename packages/tests-e2e/tests/{appDirOnly => appPagesRouter}/ssr.test.ts (100%) create mode 100644 packages/tests-e2e/tests/appRouter/api.test.ts create mode 100644 packages/tests-e2e/tests/appRouter/host.test.ts create mode 100644 packages/tests-e2e/tests/appRouter/isr.test.ts create mode 100644 packages/tests-e2e/tests/appRouter/middleware.redirect.test.ts create mode 100644 packages/tests-e2e/tests/appRouter/middleware.rewrite.test.ts create mode 100644 packages/tests-e2e/tests/appRouter/modals.test.ts create mode 100644 packages/tests-e2e/tests/appRouter/parallel.test.ts create mode 100644 packages/tests-e2e/tests/appRouter/serverActions.test.ts create mode 100644 packages/tests-e2e/tests/appRouter/ssr.test.ts rename packages/tests-e2e/tests/{pagesOnly => pagesRouter}/isr.test.ts (100%) rename packages/tests-e2e/tests/{pagesOnly => pagesRouter}/ssr.test.ts (100%) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 6cda17d9..0beb815d 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -72,18 +72,19 @@ jobs: # Deploy e2e stage - name: Deploy NextjsSite - working-directory: example_sst + 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_DIR_ONLY_URL=$(jq -r '.["e2e-example-AppDirOnly"].url' .sst/outputs.json) - echo "APP_DIR_ONLY_URL=$APP_DIR_ONLY_URL" >> $GITHUB_ENV - PAGES_ONLY_URL=$(jq -r '.["e2e-example-PagesOnly"].url' .sst/outputs.json) - echo "PAGES_ONLY_URL=$PAGES_ONLY_URL" >> $GITHUB_ENV - APP_DIR_AND_PAGES_URL=$(jq -r '.["e2e-example-AppDirAndPages"].url' .sst/outputs.json) - echo "APP_DIR_AND_PAGES_URL=$APP_DIR_AND_PAGES_URL" >> $GITHUB_ENV + 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 diff --git a/.gitignore b/.gitignore index 08db1735..4581aa57 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,7 @@ next-env.d.ts # Tests tests-unit/coverage test-results + +.sst/ +.next/ +.open-next/ \ No newline at end of file diff --git a/example/.sst.config.1693329762830.mjs b/example/.sst.config.1693329762830.mjs new file mode 100644 index 00000000..5a36b91e --- /dev/null +++ b/example/.sst.config.1693329762830.mjs @@ -0,0 +1,14 @@ +import { createRequire as topLevelCreateRequire } from 'module';const require = topLevelCreateRequire(import.meta.url); + +// sst.config.ts +var sst_config_default = { + config(_input) { + return { + name: "example", + region: "us-east-1" + }; + } +}; +export { + sst_config_default as default +}; diff --git a/example/package.json b/example/package.json index f1914ff3..dae87334 100644 --- a/example/package.json +++ b/example/package.json @@ -20,8 +20,8 @@ "swr": "^1.0.1" }, "devDependencies": { - "aws-cdk-lib": "2.84.0", + "aws-cdk-lib": "2.91.0", "constructs": "10.1.156", - "sst": "2.16.3" + "sst": "2.24.17" } } diff --git a/packages/app-dir/.gitignore b/examples/app-pages-router/.gitignore similarity index 100% rename from packages/app-dir/.gitignore rename to examples/app-pages-router/.gitignore diff --git a/packages/app-dir/README.md b/examples/app-pages-router/README.md similarity index 100% rename from packages/app-dir/README.md rename to examples/app-pages-router/README.md diff --git a/packages/app-dir/app/albums/@modal/(.)[album]/[song]/page.tsx b/examples/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx similarity index 87% rename from packages/app-dir/app/albums/@modal/(.)[album]/[song]/page.tsx rename to examples/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx index ef158f1c..cca33b8b 100644 --- a/packages/app-dir/app/albums/@modal/(.)[album]/[song]/page.tsx +++ b/examples/app-pages-router/app/albums/@modal/(.)[album]/[song]/page.tsx @@ -1,5 +1,5 @@ -import { getSong } from "@open-next/core/api"; -import Modal from "@open-next/core/components/Modal"; +import { getSong } from "@example/shared/api"; +import Modal from "@example/shared/components/Modal"; type Props = { params: { diff --git a/packages/app-dir/app/albums/@modal/(.)[album]/page.tsx b/examples/app-pages-router/app/albums/@modal/(.)[album]/page.tsx similarity index 75% rename from packages/app-dir/app/albums/@modal/(.)[album]/page.tsx rename to examples/app-pages-router/app/albums/@modal/(.)[album]/page.tsx index 45ac13c7..4447a618 100644 --- a/packages/app-dir/app/albums/@modal/(.)[album]/page.tsx +++ b/examples/app-pages-router/app/albums/@modal/(.)[album]/page.tsx @@ -1,4 +1,4 @@ -import Modal from "@open-next/core/components/Modal"; +import Modal from "@example/shared/components/Modal"; type Props = { params: { diff --git a/packages/app-dir/app/albums/@modal/default.tsx b/examples/app-pages-router/app/albums/@modal/default.tsx similarity index 100% rename from packages/app-dir/app/albums/@modal/default.tsx rename to examples/app-pages-router/app/albums/@modal/default.tsx diff --git a/packages/app-dir/app/albums/[album]/[song]/page.tsx b/examples/app-pages-router/app/albums/[album]/[song]/page.tsx similarity index 90% rename from packages/app-dir/app/albums/[album]/[song]/page.tsx rename to examples/app-pages-router/app/albums/[album]/[song]/page.tsx index 95fbe7be..63c5dc30 100644 --- a/packages/app-dir/app/albums/[album]/[song]/page.tsx +++ b/examples/app-pages-router/app/albums/[album]/[song]/page.tsx @@ -1,4 +1,4 @@ -import { getSong } from "@open-next/core/api"; +import { getSong } from "@example/shared/api"; type Props = { params: { diff --git a/packages/app-dir/app/albums/[album]/page.tsx b/examples/app-pages-router/app/albums/[album]/page.tsx similarity index 100% rename from packages/app-dir/app/albums/[album]/page.tsx rename to examples/app-pages-router/app/albums/[album]/page.tsx diff --git a/packages/app-dir/app/albums/layout.tsx b/examples/app-pages-router/app/albums/layout.tsx similarity index 100% rename from packages/app-dir/app/albums/layout.tsx rename to examples/app-pages-router/app/albums/layout.tsx diff --git a/packages/app-dir/app/albums/page.tsx b/examples/app-pages-router/app/albums/page.tsx similarity index 65% rename from packages/app-dir/app/albums/page.tsx rename to examples/app-pages-router/app/albums/page.tsx index ba6d4e46..6471009b 100644 --- a/packages/app-dir/app/albums/page.tsx +++ b/examples/app-pages-router/app/albums/page.tsx @@ -1,5 +1,5 @@ -import { getAlbums } from "@open-next/core/api"; -import Album from "@open-next/core/components/Album"; +import { getAlbums } from "@example/shared/api"; +import Album from "@example/shared/components/Album"; export default async function AlbumPage() { const albums = await getAlbums(); diff --git a/packages/app-dir/app/api/client/route.ts b/examples/app-pages-router/app/api/client/route.ts similarity index 100% rename from packages/app-dir/app/api/client/route.ts rename to examples/app-pages-router/app/api/client/route.ts diff --git a/packages/app-dir/app/api/host/route.ts b/examples/app-pages-router/app/api/host/route.ts similarity index 100% rename from packages/app-dir/app/api/host/route.ts rename to examples/app-pages-router/app/api/host/route.ts diff --git a/packages/app-dir/app/api/page.tsx b/examples/app-pages-router/app/api/page.tsx similarity index 100% rename from packages/app-dir/app/api/page.tsx rename to examples/app-pages-router/app/api/page.tsx diff --git a/packages/app-dir/app/globals.css b/examples/app-pages-router/app/globals.css similarity index 100% rename from packages/app-dir/app/globals.css rename to examples/app-pages-router/app/globals.css diff --git a/packages/app-dir/app/isr/page.tsx b/examples/app-pages-router/app/isr/page.tsx similarity index 100% rename from packages/app-dir/app/isr/page.tsx rename to examples/app-pages-router/app/isr/page.tsx diff --git a/packages/app-dir/app/layout.tsx b/examples/app-pages-router/app/layout.tsx similarity index 93% rename from packages/app-dir/app/layout.tsx rename to examples/app-pages-router/app/layout.tsx index 3e32b007..85e1c420 100644 --- a/packages/app-dir/app/layout.tsx +++ b/examples/app-pages-router/app/layout.tsx @@ -6,7 +6,7 @@ import { Inter } from "next/font/google"; const inter = Inter({ subsets: ["latin"] }); export const metadata: Metadata = { - title: "Nextjs AppDir Only", + title: "Nextjs App Router", description: "Generated by create next app", }; diff --git a/examples/app-pages-router/app/page.tsx b/examples/app-pages-router/app/page.tsx new file mode 100644 index 00000000..c0e28536 --- /dev/null +++ b/examples/app-pages-router/app/page.tsx @@ -0,0 +1,49 @@ +import Nav from "@example/shared/components/Nav"; + +export default function Home() { + return ( + <> +

App Router

+
+ + + + + + + + + +
+

Pages Router

+
+ + +
+ + ); +} diff --git a/packages/app-dir/app/parallel/@a/a-page/page.tsx b/examples/app-pages-router/app/parallel/@a/a-page/page.tsx similarity index 100% rename from packages/app-dir/app/parallel/@a/a-page/page.tsx rename to examples/app-pages-router/app/parallel/@a/a-page/page.tsx diff --git a/packages/app-dir/app/parallel/@a/page.tsx b/examples/app-pages-router/app/parallel/@a/page.tsx similarity index 100% rename from packages/app-dir/app/parallel/@a/page.tsx rename to examples/app-pages-router/app/parallel/@a/page.tsx diff --git a/packages/app-dir/app/parallel/@b/b-page/page.tsx b/examples/app-pages-router/app/parallel/@b/b-page/page.tsx similarity index 100% rename from packages/app-dir/app/parallel/@b/b-page/page.tsx rename to examples/app-pages-router/app/parallel/@b/b-page/page.tsx diff --git a/packages/app-dir/app/parallel/@b/page.tsx b/examples/app-pages-router/app/parallel/@b/page.tsx similarity index 100% rename from packages/app-dir/app/parallel/@b/page.tsx rename to examples/app-pages-router/app/parallel/@b/page.tsx diff --git a/packages/app-dir/app/parallel/layout.tsx b/examples/app-pages-router/app/parallel/layout.tsx similarity index 100% rename from packages/app-dir/app/parallel/layout.tsx rename to examples/app-pages-router/app/parallel/layout.tsx diff --git a/packages/app-dir/app/parallel/page.tsx b/examples/app-pages-router/app/parallel/page.tsx similarity index 100% rename from packages/app-dir/app/parallel/page.tsx rename to examples/app-pages-router/app/parallel/page.tsx diff --git a/packages/app-dir/app/redirect-destination/page.tsx b/examples/app-pages-router/app/redirect-destination/page.tsx similarity index 100% rename from packages/app-dir/app/redirect-destination/page.tsx rename to examples/app-pages-router/app/redirect-destination/page.tsx diff --git a/packages/app-dir/app/rewrite-destination/page.tsx b/examples/app-pages-router/app/rewrite-destination/page.tsx similarity index 100% rename from packages/app-dir/app/rewrite-destination/page.tsx rename to examples/app-pages-router/app/rewrite-destination/page.tsx diff --git a/packages/app-dir/app/server-actions/client.tsx b/examples/app-pages-router/app/server-actions/client.tsx similarity index 79% rename from packages/app-dir/app/server-actions/client.tsx rename to examples/app-pages-router/app/server-actions/client.tsx index cb4dbd2d..e5801872 100644 --- a/packages/app-dir/app/server-actions/client.tsx +++ b/examples/app-pages-router/app/server-actions/client.tsx @@ -1,9 +1,9 @@ "use client"; import { useCallback, useState, useTransition } from "react"; -import type { Song as SongType } from "@open-next/core/api"; -import { getSong } from "@open-next/core/api"; -import Song from "@open-next/core/components/Album/Song"; +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(); diff --git a/packages/app-dir/app/server-actions/page.tsx b/examples/app-pages-router/app/server-actions/page.tsx similarity index 100% rename from packages/app-dir/app/server-actions/page.tsx rename to examples/app-pages-router/app/server-actions/page.tsx diff --git a/packages/app-dir/app/ssr/loading.tsx b/examples/app-pages-router/app/ssr/loading.tsx similarity index 100% rename from packages/app-dir/app/ssr/loading.tsx rename to examples/app-pages-router/app/ssr/loading.tsx diff --git a/packages/app-dir/app/ssr/page.tsx b/examples/app-pages-router/app/ssr/page.tsx similarity index 100% rename from packages/app-dir/app/ssr/page.tsx rename to examples/app-pages-router/app/ssr/page.tsx diff --git a/packages/app-dir/middleware.ts b/examples/app-pages-router/middleware.ts similarity index 100% rename from packages/app-dir/middleware.ts rename to examples/app-pages-router/middleware.ts diff --git a/packages/app-dir/next.config.js b/examples/app-pages-router/next.config.js similarity index 82% rename from packages/app-dir/next.config.js rename to examples/app-pages-router/next.config.js index fc6a2aed..49dc3c03 100644 --- a/packages/app-dir/next.config.js +++ b/examples/app-pages-router/next.config.js @@ -2,7 +2,7 @@ const nextConfig = { poweredByHeader: false, output: "standalone", - transpilePackages: ["@open-next/core"], + transpilePackages: ["@example/shared"], experimental: { serverActions: true, }, 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/packages/pages-only/src/pages/_app.tsx b/examples/app-pages-router/pages/_app.tsx similarity index 100% rename from packages/pages-only/src/pages/_app.tsx rename to examples/app-pages-router/pages/_app.tsx diff --git a/packages/pages-only/src/pages/_document.tsx b/examples/app-pages-router/pages/_document.tsx similarity index 100% rename from packages/pages-only/src/pages/_document.tsx rename to examples/app-pages-router/pages/_document.tsx diff --git a/packages/pages-only/src/pages/api/hello.ts b/examples/app-pages-router/pages/api/hello.ts similarity index 100% rename from packages/pages-only/src/pages/api/hello.ts rename to examples/app-pages-router/pages/api/hello.ts diff --git a/packages/pages-only/src/pages/isr/index.tsx b/examples/app-pages-router/pages/pages_isr/index.tsx similarity index 100% rename from packages/pages-only/src/pages/isr/index.tsx rename to examples/app-pages-router/pages/pages_isr/index.tsx diff --git a/packages/pages-only/src/pages/ssr/index.tsx b/examples/app-pages-router/pages/pages_ssr/index.tsx similarity index 100% rename from packages/pages-only/src/pages/ssr/index.tsx rename to examples/app-pages-router/pages/pages_ssr/index.tsx diff --git a/packages/app-dir/postcss.config.js b/examples/app-pages-router/postcss.config.js similarity index 100% rename from packages/app-dir/postcss.config.js rename to examples/app-pages-router/postcss.config.js diff --git a/packages/app-dir/public/favicon.ico b/examples/app-pages-router/public/favicon.ico similarity index 100% rename from packages/app-dir/public/favicon.ico rename to examples/app-pages-router/public/favicon.ico diff --git a/packages/app-dir/public/static/frank.webp b/examples/app-pages-router/public/static/frank.webp similarity index 100% rename from packages/app-dir/public/static/frank.webp rename to examples/app-pages-router/public/static/frank.webp 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/packages/pages-only/src/styles/globals.css b/examples/app-pages-router/styles/globals.css similarity index 100% rename from packages/pages-only/src/styles/globals.css rename to examples/app-pages-router/styles/globals.css diff --git a/packages/app-dir/tailwind.config.ts b/examples/app-pages-router/tailwind.config.ts similarity index 76% rename from packages/app-dir/tailwind.config.ts rename to examples/app-pages-router/tailwind.config.ts index 24dfacb7..79ebdacc 100644 --- a/packages/app-dir/tailwind.config.ts +++ b/examples/app-pages-router/tailwind.config.ts @@ -2,10 +2,8 @@ import type { Config } from "tailwindcss"; const config: Config = { content: [ - "./pages/**/*.{js,ts,jsx,tsx,mdx}", - "./components/**/*.{js,ts,jsx,tsx,mdx}", "./app/**/*.{js,ts,jsx,tsx,mdx}", - "../../packages/core/**/*.{jsx,tsx}", + "../../examples/shared/**/*.{jsx,tsx}", ], theme: { extend: { diff --git a/packages/app-dir/tsconfig.json b/examples/app-pages-router/tsconfig.json similarity index 100% rename from packages/app-dir/tsconfig.json rename to examples/app-pages-router/tsconfig.json 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/packages/app-dir/app/page.tsx b/examples/app-router/app/page.tsx similarity index 94% rename from packages/app-dir/app/page.tsx rename to examples/app-router/app/page.tsx index c2047b96..1d7f8be9 100644 --- a/packages/app-dir/app/page.tsx +++ b/examples/app-router/app/page.tsx @@ -1,9 +1,9 @@ -import Nav from "@open-next/core/components/Nav"; +import Nav from "@example/shared/components/Nav"; export default function Home() { return ( <> -

Nextjs AppDir Only

+

Nextjs App Router