From 7d6bdca81529ac80dc9198b0b04e3fd506a3b188 Mon Sep 17 00:00:00 2001 From: 0xPenryn Date: Mon, 16 Oct 2023 14:32:01 -0500 Subject: [PATCH 1/7] fix: i think i got builds working? --- examples/with-html/package.json | 2 +- package.json | 3 ++- packages/core/package.json | 2 +- packages/core/src/index.ts | 30 ++++++++++++++++++++++++++++-- packages/core/src/lib/hashing.ts | 10 ++++++++++ packages/react/package.json | 5 +++-- packages/react/src/types/config.ts | 4 ++-- packages/standalone/package.json | 4 ++-- pnpm-lock.yaml | 4 ++-- 9 files changed, 51 insertions(+), 13 deletions(-) diff --git a/examples/with-html/package.json b/examples/with-html/package.json index feb9b303..a07beb75 100644 --- a/examples/with-html/package.json +++ b/examples/with-html/package.json @@ -9,7 +9,7 @@ "lint": "prettier index.html -c" }, "dependencies": { - "@worldcoin/idkit-standalone": "workspace:^" + "@worldcoin/idkit-standalone": "workspace:*" }, "devDependencies": { "vite": "^4.4.5" diff --git a/package.json b/package.json index 506c84a6..3e2c344f 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,8 @@ "name": "idkit-monorepo", "scripts": { "lint": "turbo run lint", - "build": "turbo run build" + "build": "turbo run build", + "dev": "turbo run dev" }, "devDependencies": { "turbo": "^1.10.14" diff --git a/packages/core/package.json b/packages/core/package.json index e1c099c7..a72c1126 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -21,7 +21,7 @@ "types": "./build/lib/hashing.d.ts" } }, - "types": "./build/index.d.ts", + "main": "src/index.ts", "engines": { "node": ">=12.4" }, diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 19949853..4163efc1 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1,3 +1,29 @@ -export * from '@/types' -export * as hashing from '@/lib/hashing' +export { + ISuccessResult, + IErrorState, + AppErrorCodes, + VerificationState, + AbiEncodedValue, + CredentialType, + IDKitConfig, +} from '@/types' +import { + hashToField, + packAndEncode, + validateABILikeEncoding, + solidityEncode, + generateSignal, + generateExternalNullifier, + encodeAction, +} from '@/lib/hashing' export { useWorldBridgeStore, WorldBridgeStore } from '@/bridge' + +export const hashing = { + hashToField, + packAndEncode, + validateABILikeEncoding, + solidityEncode, + generateSignal, + generateExternalNullifier, + encodeAction, +} diff --git a/packages/core/src/lib/hashing.ts b/packages/core/src/lib/hashing.ts index 751b447e..b5bd044e 100644 --- a/packages/core/src/lib/hashing.ts +++ b/packages/core/src/lib/hashing.ts @@ -96,3 +96,13 @@ export const encodeAction = (action: IDKitConfig['action']): string => { return action.types.map((type, index) => `${type}(${action.values[index]})`).join(',') } + +export const hashing = { + hashToField, + packAndEncode, + validateABILikeEncoding, + solidityEncode, + generateSignal, + generateExternalNullifier, + encodeAction, +} diff --git a/packages/react/package.json b/packages/react/package.json index 5e9b4b54..fa76400a 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -21,7 +21,8 @@ "types": "./build/internal.d.ts" } }, - "types": "./build/index.d.ts", + "main": "src/index.ts", + "types": "src/index.ts", "engines": { "node": ">=12.4" }, @@ -52,7 +53,7 @@ "@radix-ui/react-toast": "^1.1.3", "@stitches/react": "^1.2.8", "@tailwindcss/forms": "^0.5.3", - "@worldcoin/idkit-core": "workspace:^", + "@worldcoin/idkit-core": "workspace:*", "copy-to-clipboard": "^3.3.3", "country-telephone-data": "^0.6.3", "framer-motion": "^7.6.7", diff --git a/packages/react/src/types/config.ts b/packages/react/src/types/config.ts index 4015cfd5..6596e7f5 100644 --- a/packages/react/src/types/config.ts +++ b/packages/react/src/types/config.ts @@ -1,5 +1,5 @@ -import { CallbackFn } from '.' -import { ISuccessResult, IDKitConfig } from '@worldcoin/idkit-core' +import type { CallbackFn } from '.' +import type { ISuccessResult, IDKitConfig } from '@worldcoin/idkit-core' export enum ConfigSource { HOOK = 'hook', diff --git a/packages/standalone/package.json b/packages/standalone/package.json index ea75a7a2..15cd157e 100644 --- a/packages/standalone/package.json +++ b/packages/standalone/package.json @@ -11,9 +11,9 @@ "url": "git+https://github.com/worldcoin/idkit-js" }, "type": "module", - "main": "./build/index.global.js", + "main": "src/index.tsx", "exports": "./build/index.global.js", - "types": "./build/index.d.ts", + "types": "src/index.tsx", "engines": { "node": ">=12.4" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1f2ed577..17d11fec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,7 +15,7 @@ importers: examples/with-html: dependencies: '@worldcoin/idkit-standalone': - specifier: workspace:^ + specifier: workspace:* version: link:../../packages/standalone devDependencies: vite: @@ -74,7 +74,7 @@ importers: specifier: ^0.5.3 version: 0.5.6(tailwindcss@3.3.3) '@worldcoin/idkit-core': - specifier: workspace:^ + specifier: workspace:* version: link:../core copy-to-clipboard: specifier: ^3.3.3 From 004d52773497fbc22b167ea95dc5a8543665b342 Mon Sep 17 00:00:00 2001 From: 0xPenryn Date: Mon, 16 Oct 2023 15:45:58 -0500 Subject: [PATCH 2/7] feat: /hashing subpath working --- packages/core/package.json | 10 +++++++++- packages/core/src/index.ts | 14 +++----------- packages/core/src/lib/hashing.ts | 10 ---------- packages/react/src/index.ts | 4 +--- 4 files changed, 13 insertions(+), 25 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index a72c1126..fb497bd0 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -21,12 +21,20 @@ "types": "./build/lib/hashing.d.ts" } }, + "typesVersions": { + "*": { + "*": [ + "./build/*/index.d.ts", + "./build/index.d.ts" + ] + } + }, "main": "src/index.ts", "engines": { "node": ">=12.4" }, "files": [ - "build", + "build/**", "README.md" ], "scripts": { diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 4163efc1..ae64de23 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -7,7 +7,8 @@ export { CredentialType, IDKitConfig, } from '@/types' -import { + +export { hashToField, packAndEncode, validateABILikeEncoding, @@ -16,14 +17,5 @@ import { generateExternalNullifier, encodeAction, } from '@/lib/hashing' -export { useWorldBridgeStore, WorldBridgeStore } from '@/bridge' -export const hashing = { - hashToField, - packAndEncode, - validateABILikeEncoding, - solidityEncode, - generateSignal, - generateExternalNullifier, - encodeAction, -} +export { useWorldBridgeStore, WorldBridgeStore } from '@/bridge' diff --git a/packages/core/src/lib/hashing.ts b/packages/core/src/lib/hashing.ts index b5bd044e..751b447e 100644 --- a/packages/core/src/lib/hashing.ts +++ b/packages/core/src/lib/hashing.ts @@ -96,13 +96,3 @@ export const encodeAction = (action: IDKitConfig['action']): string => { return action.types.map((type, index) => `${type}(${action.values[index]})`).join(',') } - -export const hashing = { - hashToField, - packAndEncode, - validateABILikeEncoding, - solidityEncode, - generateSignal, - generateExternalNullifier, - encodeAction, -} diff --git a/packages/react/src/index.ts b/packages/react/src/index.ts index 388220c0..9ecd900d 100644 --- a/packages/react/src/index.ts +++ b/packages/react/src/index.ts @@ -1,13 +1,11 @@ import useIDKit from './hooks/useIDKit' -import { hashing } from '@worldcoin/idkit-core' import SignInButton from './components/SignInButton' import { CredentialType } from '@worldcoin/idkit-core' import IDKitWidget from '@/components/IDKitWidget/index' import type { WidgetProps, Config } from '@/types/config' import type { ISuccessResult } from '@worldcoin/idkit-core' +import { solidityEncode } from '@worldcoin/idkit-core/hashing' import SignInWithWorldID from './components/SignInWithWorldID' -const solidityEncode = hashing.solidityEncode - export { IDKitWidget, useIDKit, solidityEncode, SignInWithWorldID, CredentialType, SignInButton } export type { ISuccessResult, Config, WidgetProps } From 0cf0dc865c40fc80e19346e8283ca9d50ef06aef Mon Sep 17 00:00:00 2001 From: 0xPenryn Date: Mon, 16 Oct 2023 15:55:37 -0500 Subject: [PATCH 3/7] fix: enforce hashing subpath --- packages/core/package.json | 4 +++- packages/core/src/index.ts | 10 ---------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index fb497bd0..26df7c7d 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -23,13 +23,15 @@ }, "typesVersions": { "*": { + "hashing": [ + "./build/lib/hashing.d.ts" + ], "*": [ "./build/*/index.d.ts", "./build/index.d.ts" ] } }, - "main": "src/index.ts", "engines": { "node": ">=12.4" }, diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index ae64de23..d95bc435 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -8,14 +8,4 @@ export { IDKitConfig, } from '@/types' -export { - hashToField, - packAndEncode, - validateABILikeEncoding, - solidityEncode, - generateSignal, - generateExternalNullifier, - encodeAction, -} from '@/lib/hashing' - export { useWorldBridgeStore, WorldBridgeStore } from '@/bridge' From dfa532c6bd5ecc9dc0e2733a25da879732b2206a Mon Sep 17 00:00:00 2001 From: Miguel Piedrafita Date: Thu, 5 Oct 2023 20:29:53 +0200 Subject: [PATCH 4/7] simplify encoding/decoding fn --- packages/core/src/lib/utils.ts | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/packages/core/src/lib/utils.ts b/packages/core/src/lib/utils.ts index bd07ecbd..99bf4fb8 100644 --- a/packages/core/src/lib/utils.ts +++ b/packages/core/src/lib/utils.ts @@ -1,21 +1,7 @@ export const buffer_encode = (buffer: ArrayBuffer): string => { - let encoded = '' - - const bytes = new Uint8Array(buffer) - for (let i = 0; i < bytes.byteLength; i++) { - encoded += String.fromCharCode(bytes[i]) - } - - return Buffer.from(encoded).toString('base64') + return Buffer.from(buffer).toString('base64') } export const buffer_decode = (encoded: string): ArrayBuffer => { - const byteCharacters = Buffer.from(encoded, 'base64').toString('utf-8') - - const byteNumbers = new Array(byteCharacters.length) - for (let i = 0; i < byteCharacters.length; i++) { - byteNumbers[i] = byteCharacters.charCodeAt(i) - } - - return new Uint8Array(byteNumbers) + return Buffer.from(encoded, 'base64') } From dfbca9f3bdf1a62f7a2eb66a1ea5c3d5984b4e10 Mon Sep 17 00:00:00 2001 From: 0xPenryn Date: Thu, 5 Oct 2023 16:06:55 -0500 Subject: [PATCH 5/7] fix: don't reuse iv --- packages/core/src/bridge.ts | 4 +++- packages/core/src/lib/crypto.ts | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/core/src/bridge.ts b/packages/core/src/bridge.ts index d4df7bec..b24610be 100644 --- a/packages/core/src/bridge.ts +++ b/packages/core/src/bridge.ts @@ -100,7 +100,9 @@ export const useWorldBridgeStore = create((set, get) => ({ if (!res.ok) return - const result = JSON.parse(await decryptResponse(key, get().iv!, await res.text())) as + const { iv, payload } = JSON.parse(await res.text()) as { iv: string; payload: string } + + const result = JSON.parse(await decryptResponse(key, buffer_decode(iv), payload)) as | ISuccessResult | { error_code: AppErrorCodes } diff --git a/packages/core/src/lib/crypto.ts b/packages/core/src/lib/crypto.ts index 002a1823..6fc5b705 100644 --- a/packages/core/src/lib/crypto.ts +++ b/packages/core/src/lib/crypto.ts @@ -16,7 +16,7 @@ export const exportKey = async (key: CryptoKey): Promise => { export const encryptRequest = async ( key: CryptoKey, - iv: Uint8Array, + iv: ArrayBuffer, request: string ): Promise<{ payload: string; iv: string }> => { return { @@ -27,6 +27,6 @@ export const encryptRequest = async ( } } -export const decryptResponse = async (key: CryptoKey, iv: Uint8Array, payload: string): Promise => { +export const decryptResponse = async (key: CryptoKey, iv: ArrayBuffer, payload: string): Promise => { return decoder.decode(await window.crypto.subtle.decrypt({ name: 'AES-GCM', iv }, key, buffer_decode(payload))) } From bfccb96868787057dbbf260f5ee013c096832c94 Mon Sep 17 00:00:00 2001 From: Miguel Piedrafita Date: Fri, 6 Oct 2023 16:32:30 +0200 Subject: [PATCH 6/7] cs --- packages/core/src/bridge.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/bridge.ts b/packages/core/src/bridge.ts index b24610be..013adaba 100644 --- a/packages/core/src/bridge.ts +++ b/packages/core/src/bridge.ts @@ -100,7 +100,7 @@ export const useWorldBridgeStore = create((set, get) => ({ if (!res.ok) return - const { iv, payload } = JSON.parse(await res.text()) as { iv: string; payload: string } + const { iv, payload } = (await res.json()) as { iv: string; payload: string } const result = JSON.parse(await decryptResponse(key, buffer_decode(iv), payload)) as | ISuccessResult From db7cd389872ccfebdfdaa17ab927c4f4bd7678d4 Mon Sep 17 00:00:00 2001 From: Miguel Piedrafita Date: Tue, 17 Oct 2023 14:44:00 +0200 Subject: [PATCH 7/7] add Next example --- examples/with-next/.eslintrc.json | 3 + examples/with-next/.gitignore | 35 ++ examples/with-next/README.md | 40 +++ examples/with-next/next.config.js | 6 + examples/with-next/package.json | 25 ++ examples/with-next/pages/index.tsx | 12 + examples/with-next/tsconfig.json | 22 ++ packages/core/src/bridge.ts | 1 + pnpm-lock.yaml | 505 +++++++++++++++++++++++++++-- 9 files changed, 620 insertions(+), 29 deletions(-) create mode 100644 examples/with-next/.eslintrc.json create mode 100644 examples/with-next/.gitignore create mode 100644 examples/with-next/README.md create mode 100644 examples/with-next/next.config.js create mode 100644 examples/with-next/package.json create mode 100644 examples/with-next/pages/index.tsx create mode 100644 examples/with-next/tsconfig.json diff --git a/examples/with-next/.eslintrc.json b/examples/with-next/.eslintrc.json new file mode 100644 index 00000000..bffb357a --- /dev/null +++ b/examples/with-next/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/examples/with-next/.gitignore b/examples/with-next/.gitignore new file mode 100644 index 00000000..8f322f0d --- /dev/null +++ b/examples/with-next/.gitignore @@ -0,0 +1,35 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/examples/with-next/README.md b/examples/with-next/README.md new file mode 100644 index 00000000..a75ac524 --- /dev/null +++ b/examples/with-next/README.md @@ -0,0 +1,40 @@ +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 +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file. + +[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`. + +The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages. + +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/with-next/next.config.js b/examples/with-next/next.config.js new file mode 100644 index 00000000..a843cbee --- /dev/null +++ b/examples/with-next/next.config.js @@ -0,0 +1,6 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, +} + +module.exports = nextConfig diff --git a/examples/with-next/package.json b/examples/with-next/package.json new file mode 100644 index 00000000..aecba1b4 --- /dev/null +++ b/examples/with-next/package.json @@ -0,0 +1,25 @@ +{ + "name": "with-next", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@worldcoin/idkit-react": "workspace:*", + "next": "13.5.5", + "react": "^18", + "react-dom": "^18" + }, + "devDependencies": { + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "eslint": "^8", + "eslint-config-next": "13.5.5", + "typescript": "^5" + } +} diff --git a/examples/with-next/pages/index.tsx b/examples/with-next/pages/index.tsx new file mode 100644 index 00000000..31537a14 --- /dev/null +++ b/examples/with-next/pages/index.tsx @@ -0,0 +1,12 @@ +import { IDKitWidget } from '@worldcoin/idkit-react' + +export default function Home() { + return ( + console.log(response)} + app_id="wid_staging_a8d860d5b3450f05ae09e8f4aa935b90" + /> + ) +} diff --git a/examples/with-next/tsconfig.json b/examples/with-next/tsconfig.json new file mode 100644 index 00000000..a428549b --- /dev/null +++ b/examples/with-next/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] +} diff --git a/packages/core/src/bridge.ts b/packages/core/src/bridge.ts index 013adaba..cbebbc9c 100644 --- a/packages/core/src/bridge.ts +++ b/packages/core/src/bridge.ts @@ -1,4 +1,5 @@ import { create } from 'zustand' +import { buffer_decode } from './lib/utils' import type { IDKitConfig } from '@/types/config' import { VerificationState } from '@/types/bridge' import type { AppErrorCodes } from '@/types/bridge' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 17d11fec..b4c115c3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,6 +22,49 @@ importers: specifier: ^4.4.5 version: 4.4.9 + examples/with-next: + dependencies: + '@worldcoin/idkit-react': + specifier: workspace:^ + version: link:../../packages/react + next: + specifier: 13.5.5 + version: 13.5.5(react-dom@18.2.0)(react@18.2.0) + react: + specifier: ^18 + version: 18.2.0 + react-dom: + specifier: ^18 + version: 18.2.0(react@18.2.0) + devDependencies: + '@types/node': + specifier: ^20 + version: 20.8.6 + '@types/react': + specifier: ^18 + version: 18.0.25 + '@types/react-dom': + specifier: ^18 + version: 18.0.9 + autoprefixer: + specifier: ^10 + version: 10.4.16(postcss@8.4.30) + eslint: + specifier: ^8 + version: 8.29.0 + eslint-config-next: + specifier: 13.5.5 + version: 13.5.5(eslint@8.29.0)(typescript@5.2.2) + postcss: + specifier: ^8 + version: 8.4.30 + tailwindcss: + specifier: ^3 + version: 3.3.3 + typescript: + specifier: ^5 + version: 5.2.2 + packages/core: dependencies: zustand: @@ -1019,7 +1062,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 18.11.9 + '@types/node': 20.8.6 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -1040,14 +1083,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.11.9 + '@types/node': 20.8.6 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.8.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@18.11.9)(babel-plugin-macros@3.1.0) + jest-config: 29.7.0(@types/node@20.8.6)(babel-plugin-macros@3.1.0) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -1075,7 +1118,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.11.9 + '@types/node': 20.8.6 jest-mock: 29.7.0 dev: true @@ -1102,7 +1145,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 18.11.9 + '@types/node': 20.8.6 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -1135,7 +1178,7 @@ packages: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.19 - '@types/node': 18.11.9 + '@types/node': 20.8.6 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -1245,7 +1288,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.2 - '@types/node': 18.11.9 + '@types/node': 20.8.6 '@types/yargs': 15.0.16 chalk: 4.1.2 dev: true @@ -1257,7 +1300,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.2 - '@types/node': 18.11.9 + '@types/node': 20.8.6 '@types/yargs': 17.0.25 chalk: 4.1.2 dev: true @@ -1338,6 +1381,97 @@ packages: tslib: 2.6.2 dev: false + /@next/env@13.5.5: + resolution: {integrity: sha512-agvIhYWp+ilbScg81s/sLueZo8CNEYLjNOqhISxheLmD/AQI4/VxV7bV76i/KzxH4iHy/va0YS9z0AOwGnw4Fg==} + dev: false + + /@next/eslint-plugin-next@13.5.5: + resolution: {integrity: sha512-S/32s4S+SCOpW58lHKdmILAAPRdnsSei7Y3L1oZSoe5Eh0QSlzbG1nYyIpnpwWgz3T7qe3imdq7cJ6Hf29epRA==} + dependencies: + glob: 7.1.7 + dev: true + + /@next/swc-darwin-arm64@13.5.5: + resolution: {integrity: sha512-FvTdcJdTA7H1FGY8dKPPbf/O0oDC041/znHZwXA7liiGUhgw5hOQ+9z8tWvuz0M5a/SDjY/IRPBAb5FIFogYww==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-darwin-x64@13.5.5: + resolution: {integrity: sha512-mTqNIecaojmyia7appVO2QggBe1Z2fdzxgn6jb3x9qlAk8yY2sy4MAcsj71kC9RlenCqDmr9vtC/ESFf110TPA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-gnu@13.5.5: + resolution: {integrity: sha512-U9e+kNkfvwh/T8yo+xcslvNXgyMzPPX1IbwCwnHHFmX5ckb1Uc3XZSInNjFQEQR5xhJpB5sFdal+IiBIiLYkZA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-arm64-musl@13.5.5: + resolution: {integrity: sha512-h7b58eIoNCSmKVC5fr167U0HWZ/yGLbkKD9wIller0nGdyl5zfTji0SsPKJvrG8jvKPFt2xOkVBmXlFOtuKynw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-gnu@13.5.5: + resolution: {integrity: sha512-6U4y21T1J6FfcpM9uqzBJicxycpB5gJKLyQ3g6KOfBzT8H1sMwfHTRrvHKB09GIn1BCRy5YJHrA1G26DzqR46w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-linux-x64-musl@13.5.5: + resolution: {integrity: sha512-OuqWSAQHJQM2EsapPFTSU/FLQ0wKm7UeRNatiR/jLeCe1V02aB9xmzuWYo2Neaxxag4rss3S8fj+lvMLzwDaFA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-arm64-msvc@13.5.5: + resolution: {integrity: sha512-+yLrOZIIZDY4uGn9bLOc0wTgs+M8RuOUFSUK3BhmcLav9e+tcAj0jyBHD4aXv2qWhppUeuYMsyBo1I58/eE6Dg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-ia32-msvc@13.5.5: + resolution: {integrity: sha512-SyMxXyJtf9ScMH0Dh87THJMXNFvfkRAk841xyW9SeOX3KxM1buXX3hN7vof4kMGk0Yg996OGsX+7C9ueS8ugsw==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + /@next/swc-win32-x64-msvc@13.5.5: + resolution: {integrity: sha512-n5KVf2Ok0BbLwofAaHiiKf+BQCj1M8WmTujiER4/qzYAVngnsNSjqEWvJ03raeN9eURqxDO+yL5VRoDrR33H9A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + /@noble/curves@1.2.0: resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} dependencies: @@ -1807,6 +1941,10 @@ packages: rollup: 3.29.3 dev: true + /@rushstack/eslint-patch@1.5.1: + resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} + dev: true + /@scure/base@1.1.3: resolution: {integrity: sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==} @@ -1847,6 +1985,12 @@ packages: react: 18.2.0 dev: false + /@swc/helpers@0.5.2: + resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + dependencies: + tslib: 2.6.2 + dev: false + /@tailwindcss/forms@0.5.6(tailwindcss@3.3.3): resolution: {integrity: sha512-Fw+2BJ0tmAwK/w01tEFL5TiaJBX1NLT1/YbWgvm7ws3Qcn11kiXxzNTEQDMs5V3mQemhB56l3u0i9dwdzSQldA==} peerDependencies: @@ -1953,7 +2097,7 @@ packages: /@types/graceful-fs@4.1.7: resolution: {integrity: sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==} dependencies: - '@types/node': 18.11.9 + '@types/node': 20.8.6 dev: true /@types/istanbul-lib-coverage@2.0.4: @@ -1986,7 +2130,7 @@ packages: /@types/jsdom@20.0.1: resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: - '@types/node': 18.11.9 + '@types/node': 20.8.6 '@types/tough-cookie': 4.0.3 parse5: 7.1.2 dev: true @@ -2009,6 +2153,12 @@ packages: /@types/node@18.11.9: resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==} + dev: true + + /@types/node@20.8.6: + resolution: {integrity: sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==} + dependencies: + undici-types: 5.25.3 /@types/normalize-package-data@2.4.2: resolution: {integrity: sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==} @@ -2024,7 +2174,7 @@ packages: /@types/qrcode@1.5.2: resolution: {integrity: sha512-W4KDz75m7rJjFbyCctzCtRzZUj+PrUHV+YjqDp50sSRezTbrtEAIq2iTzC6lISARl3qw+8IlcCyljdcVJE0Wug==} dependencies: - '@types/node': 18.11.9 + '@types/node': 20.8.6 dev: true /@types/react-dom@18.0.9: @@ -2060,7 +2210,7 @@ packages: /@types/stylus@0.48.40: resolution: {integrity: sha512-oUcnmNOEL7UOmxg41W0f0bowSHkjGx+OEgeO1CMo/PxzUq1HclDc5gLF/ChWDimPmS67B36rNmLMCc0Csg+ktA==} dependencies: - '@types/node': 18.11.9 + '@types/node': 20.8.6 dev: true /@types/testing-library__jest-dom@5.14.9: @@ -2076,7 +2226,7 @@ packages: /@types/ws@8.5.6: resolution: {integrity: sha512-8B5EO9jLVCy+B58PLHvLDuOD8DRVMgQzq8d55SjLCOn9kqGyqOvy27exVaTio1q1nX5zLu8/6N0n2ThSxOM6tg==} dependencies: - '@types/node': 18.11.9 + '@types/node': 20.8.6 /@types/yargs-parser@21.0.1: resolution: {integrity: sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==} @@ -2564,6 +2714,17 @@ packages: engines: {node: '>=0.10.0'} dev: true + /array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.1 + dev: true + /array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} @@ -2893,6 +3054,13 @@ packages: load-tsconfig: 0.2.5 dev: true + /busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + dependencies: + streamsearch: 1.1.0 + dev: false + /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -2964,7 +3132,6 @@ packages: /caniuse-lite@1.0.30001540: resolution: {integrity: sha512-9JL38jscuTJBTcuETxm8QLsFr/F6v0CYYTEU6r5+qSM98P2Q0Hmu0eG1dTG5GBUmywU3UlcVOUSIJYY47rdFSw==} - dev: true /capture-exit@2.0.0: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} @@ -3630,6 +3797,14 @@ packages: once: 1.4.0 dev: true + /enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + /entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} dev: true @@ -4070,6 +4245,31 @@ packages: source-map: 0.6.1 dev: true + /eslint-config-next@13.5.5(eslint@8.29.0)(typescript@5.2.2): + resolution: {integrity: sha512-kQr/eevFyzeVt0yCKTchQp3MTIx8ZmBsAKLW+7bzmAXHcf2vvxIqAt2N/afb9SZpuXXhSb/8yrKQGVUVpYmafQ==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@next/eslint-plugin-next': 13.5.5 + '@rushstack/eslint-patch': 1.5.1 + '@typescript-eslint/parser': 6.7.4(eslint@8.29.0)(typescript@5.2.2) + eslint: 8.29.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.29.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-typescript@3.6.1)(eslint@8.29.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@8.29.0) + eslint-plugin-react: 7.33.2(eslint@8.29.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.29.0) + typescript: 5.2.2 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + dev: true + /eslint-config-prettier@8.10.0(eslint@8.29.0): resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} hasBin: true @@ -4089,6 +4289,29 @@ packages: - supports-color dev: true + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.29.0): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + dependencies: + debug: 4.3.4 + enhanced-resolve: 5.15.0 + eslint: 8.29.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.29.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-typescript@3.6.1)(eslint@8.29.0) + fast-glob: 3.3.1 + get-tsconfig: 4.7.2 + is-core-module: 2.13.0 + is-glob: 4.0.3 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color + dev: true + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.20.0)(eslint-import-resolver-node@0.3.9)(eslint@8.29.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} @@ -4118,6 +4341,36 @@ packages: - supports-color dev: true + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.29.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.7.4(eslint@8.29.0)(typescript@5.2.2) + debug: 3.2.7 + eslint: 8.29.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.1)(eslint@8.29.0) + transitivePeerDependencies: + - supports-color + dev: true + /eslint-plugin-compat@4.2.0(eslint@8.29.0): resolution: {integrity: sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w==} engines: {node: '>=14.x'} @@ -4165,6 +4418,41 @@ packages: - supports-color dev: true + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-typescript@3.6.1)(eslint@8.29.0): + resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 6.7.4(eslint@8.29.0)(typescript@5.2.2) + array-includes: 3.1.7 + array.prototype.findlastindex: 1.2.3 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.29.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.4)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.29.0) + has: 1.0.3 + is-core-module: 2.13.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.7 + object.groupby: 1.0.1 + object.values: 1.1.7 + semver: 6.3.1 + tsconfig-paths: 3.14.2 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + /eslint-plugin-jsx-a11y@6.7.1(eslint@8.29.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} @@ -4750,6 +5038,12 @@ packages: get-intrinsic: 1.2.1 dev: true + /get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + /get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} engines: {node: '>=0.10.0'} @@ -4767,6 +5061,10 @@ packages: dependencies: is-glob: 4.0.3 + /glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + dev: false + /glob@10.3.10: resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} engines: {node: '>=16 || 14 >=14.17'} @@ -4789,6 +5087,17 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 + /glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + 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 + dev: true + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -4839,7 +5148,6 @@ packages: /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true /grapheme-splitter@1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} @@ -5528,7 +5836,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.11.9 + '@types/node': 20.8.6 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1(babel-plugin-macros@3.1.0) @@ -5617,6 +5925,46 @@ packages: - supports-color dev: true + /jest-config@29.7.0(@types/node@20.8.6)(babel-plugin-macros@3.1.0): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.23.0 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.8.6 + babel-jest: 29.7.0(@babel/core@7.23.0) + chalk: 4.1.2 + ci-info: 3.8.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0(babel-plugin-macros@3.1.0) + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + dev: true + /jest-diff@29.7.0: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5658,7 +6006,7 @@ packages: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 18.11.9 + '@types/node': 20.8.6 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -5675,7 +6023,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.11.9 + '@types/node': 20.8.6 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -5691,7 +6039,7 @@ packages: dependencies: '@jest/types': 26.6.2 '@types/graceful-fs': 4.1.7 - '@types/node': 18.11.9 + '@types/node': 20.8.6 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -5714,7 +6062,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.7 - '@types/node': 18.11.9 + '@types/node': 20.8.6 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -5765,7 +6113,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 18.11.9 + '@types/node': 20.8.6 jest-util: 29.7.0 dev: true @@ -5825,7 +6173,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.11.9 + '@types/node': 20.8.6 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -5856,7 +6204,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.11.9 + '@types/node': 20.8.6 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -5879,7 +6227,7 @@ packages: resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} engines: {node: '>= 10.14.2'} dependencies: - '@types/node': 18.11.9 + '@types/node': 20.8.6 graceful-fs: 4.2.11 dev: true @@ -5916,7 +6264,7 @@ packages: engines: {node: '>= 10.14.2'} dependencies: '@jest/types': 26.6.2 - '@types/node': 18.11.9 + '@types/node': 20.8.6 chalk: 4.1.2 graceful-fs: 4.2.11 is-ci: 2.0.0 @@ -5928,7 +6276,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 18.11.9 + '@types/node': 20.8.6 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -5953,7 +6301,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 18.11.9 + '@types/node': 20.8.6 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -5965,7 +6313,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.11.9 + '@types/node': 20.8.6 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -5974,7 +6322,7 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.11.9 + '@types/node': 20.8.6 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -6539,6 +6887,45 @@ packages: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true + /next@13.5.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-LddFJjpfrtrMMw8Q9VLhIURuSidiCNcMQjRqcPtrKd+Fx07MsG7hYndJb/f2d3I+mTbTotsTJfCnn0eZ/YPk8w==} + engines: {node: '>=16.14.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + sass: + optional: true + dependencies: + '@next/env': 13.5.5 + '@swc/helpers': 0.5.2 + busboy: 1.6.0 + caniuse-lite: 1.0.30001540 + postcss: 8.4.31 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + styled-jsx: 5.1.1(react@18.2.0) + watchpack: 2.4.0 + optionalDependencies: + '@next/swc-darwin-arm64': 13.5.5 + '@next/swc-darwin-x64': 13.5.5 + '@next/swc-linux-arm64-gnu': 13.5.5 + '@next/swc-linux-arm64-musl': 13.5.5 + '@next/swc-linux-x64-gnu': 13.5.5 + '@next/swc-linux-x64-musl': 13.5.5 + '@next/swc-win32-arm64-msvc': 13.5.5 + '@next/swc-win32-ia32-msvc': 13.5.5 + '@next/swc-win32-x64-msvc': 13.5.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + dev: false + /nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true @@ -6710,6 +7097,15 @@ packages: es-abstract: 1.22.2 dev: true + /object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.1 + es-abstract: 1.22.2 + get-intrinsic: 1.2.1 + dev: true + /object.hasown@1.1.3: resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} dependencies: @@ -7406,6 +7802,15 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.6 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: false + /posthog-js-lite@2.4.0: resolution: {integrity: sha512-BslsygPtDEeFIIRgW9za0mzTtZGv5iy5HrmpRd5KIUPtd3J24mItFMhf8cU9GguqS+oq/Dugt2K2ijpC8mSlzQ==} dev: false @@ -7827,6 +8232,10 @@ packages: engines: {node: '>=8'} dev: true + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true + /resolve-url@0.2.1: resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} deprecated: https://github.com/lydell/resolve-url#deprecated @@ -8295,6 +8704,11 @@ packages: internal-slot: 1.0.5 dev: true + /streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + dev: false + /string-hash@1.1.3: resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} dev: true @@ -8428,6 +8842,23 @@ packages: resolution: {integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==} dev: true + /styled-jsx@5.1.1(react@18.2.0): + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + dependencies: + client-only: 0.0.1 + react: 18.2.0 + dev: false + /stylehacks@5.1.1(postcss@8.4.30): resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} engines: {node: ^10 || ^12 || >=14.0} @@ -8529,6 +8960,11 @@ packages: transitivePeerDependencies: - ts-node + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + /test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -8941,6 +9377,9 @@ packages: which-boxed-primitive: 1.0.2 dev: true + /undici-types@5.25.3: + resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} + /union-value@1.0.1: resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} engines: {node: '>=0.10.0'} @@ -9157,6 +9596,14 @@ packages: makeerror: 1.0.12 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 + /webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} dev: true