From ec875a683b974939542d59f78b90d6ec8e33954d Mon Sep 17 00:00:00 2001 From: Lucianosc Date: Mon, 22 Jul 2024 19:50:14 -0300 Subject: [PATCH] add Sybil resistance input in PoolCreation --- apps/web/components/Forms/PoolForm.tsx | 122 +++++- pnpm-lock.yaml | 502 +++++++++---------------- 2 files changed, 282 insertions(+), 342 deletions(-) diff --git a/apps/web/components/Forms/PoolForm.tsx b/apps/web/components/Forms/PoolForm.tsx index 654e25a4e..1d28d9b81 100644 --- a/apps/web/components/Forms/PoolForm.tsx +++ b/apps/web/components/Forms/PoolForm.tsx @@ -7,12 +7,14 @@ import { useForm } from "react-hook-form"; import { toast } from "react-toastify"; import { Address, parseUnits } from "viem"; import { TokenGarden } from "#/subgraph/.graphclient"; +import { FormCheckBox } from "./FormCheckBox"; import { FormInput } from "./FormInput"; import { FormPreview, FormRow } from "./FormPreview"; import { FormRadioButton } from "./FormRadioButton"; import { FormSelect } from "./FormSelect"; import { Button } from "@/components/Button"; import { chainDataMap } from "@/configs/chainServer"; +import { getConfigByChain } from "@/constants/contracts"; import { QUERY_PARAMS } from "@/constants/query-params"; import { usePubSubContext } from "@/contexts/pubsub.context"; import { useContractWriteWithConfirmations } from "@/hooks/useContractWriteWithConfirmations"; @@ -21,7 +23,7 @@ import { pointSystems, poolTypes } from "@/types"; import { abiWithErrors } from "@/utils/abiWithErrors"; import { getEventFromReceipt } from "@/utils/contracts"; import { ipfsJsonUpload } from "@/utils/ipfsUtils"; -import { CV_SCALE_PRECISION, MAX_RATIO_CONSTANT } from "@/utils/numbers"; +import { CV_PERCENTAGE_SCALE, CV_SCALE_PRECISION, MAX_RATIO_CONSTANT } from "@/utils/numbers"; type PoolSettings = { spendingLimit?: number; @@ -37,6 +39,8 @@ type FormInputs = { optionType?: number; maxAmount?: number; minThresholdPoints: string; + passportThreshold?: number; + isSybilResistanceRequired: boolean; } & PoolSettings; type InitializeParams = [ @@ -48,6 +52,7 @@ type InitializeParams = [ number, number, [bigint], + Address, ]; type Metadata = [bigint, string]; type CreatePoolParams = [Address, InitializeParams, Metadata]; @@ -89,6 +94,8 @@ number, }, }; +// conditionally renders inputs for different pool types +// 0: signaling, 1: funding, 2: streaming const proposalInputMap: Record = { title: [0, 1, 2], description: [0, 1, 2], @@ -100,9 +107,11 @@ const proposalInputMap: Record = { spendingLimit: [1], minimumConviction: [1], convictionGrowth: [0, 1], + isSybilResistanceRequired: [0, 1], + passportThreshold: [0, 1], }; -const isInInputMap = (key: string, value: number): boolean => { +const renderInputMap = (key: string, value: number): boolean => { return proposalInputMap[key]?.includes(Number(value)) ?? false; }; @@ -137,10 +146,11 @@ export function PoolForm({ token, communityAddr, chainId }: Props) { const [previewData, setPreviewData] = useState(); const [optionType, setOptionType] = useState(1); const [loading, setLoading] = useState(false); + const { publish } = usePubSubContext(); const router = useRouter(); const pathname = usePathname(); - const { publish } = usePubSubContext(); + const isSybilResistanceRequired = watch("isSybilResistanceRequired"); const pointSystemType = watch("pointSystemType"); const strategyType = watch("strategyType"); @@ -178,6 +188,14 @@ export function PoolForm({ token, communityAddr, chainId }: Props) { return value ?? "0"; }, }, + isSybilResistanceRequired: { + label: "Sybil resistance enabled:", + parse: (value: boolean) => (value ? "Yes" : "No"), + }, + passportThreshold: { + label: "Passport score required:", + parse: (value: number) => value, + }, }; useEffect(() => { @@ -233,6 +251,7 @@ export function PoolForm({ token, communityAddr, chainId }: Props) { const metadata: Metadata = [BigInt(1), ipfsHash]; const maxAmountStr = (previewData?.maxAmount ?? 0).toString(); + const passportScorerAddr = getConfigByChain(chainId)?.passportScorer ?? "0x"; const params: InitializeParams = [ communityAddr as Address, @@ -243,6 +262,7 @@ export function PoolForm({ token, communityAddr, chainId }: Props) { previewData?.strategyType as number, // proposalType previewData?.pointSystemType as number, // pointSystem [parseUnits(maxAmountStr, token?.decimals)], // pointConfig + passportScorerAddr, ]; const args: CreatePoolParams = [token?.id as Address, params, metadata]; @@ -255,22 +275,46 @@ export function PoolForm({ token, communityAddr, chainId }: Props) { abi: abiWithErrors(registryCommunityABI), functionName: "createPool", onConfirmations: (receipt) => { - const newPoolId = getEventFromReceipt(receipt, "RegistryCommunity", "PoolCreated").args._poolId; + const newPoolData = getEventFromReceipt(receipt, "RegistryCommunity", "PoolCreated").args; publish({ topic: "pool", function: "createPool", type: "add", - id: newPoolId.toString(), // Never propagate direct bigint outside of javascript environment + id: newPoolData._poolId.toString(), // Never propagate direct bigint outside of javascript environment containerId: communityAddr, chainId: chainId, }); - router.push(pathname?.replace("/create-pool", `?${QUERY_PARAMS.communityPage.newPool}=${newPoolId}`)); + if (isSybilResistanceRequired) { + addStrategy(newPoolData); + } else { + setLoading(false); + } }, onError: () => toast.error("Something went wrong creating a pool, check logs"), - onSettled: () => setLoading(false), }); + const addStrategy = async (newPoolData: ReturnType>["args"]) => { + try { + const res = await fetch("/api/passport-oracle/addStrategy", { + method: "POST", + body: JSON.stringify({ + strategy: newPoolData._strategy, + threshold: (previewData?.passportThreshold ?? 0) * CV_PERCENTAGE_SCALE, + }), + headers: { + "Content-Type": "application/json", + }, + }); + console.debug(res); + setLoading(false); + router.push(pathname?.replace("/create-pool", `?${QUERY_PARAMS.communityPage.newPool}=${newPoolData._poolId.toString()}`)); + } catch (error) { + console.error(error); + setLoading(false); + } + }; + const handleOptionTypeChange = (e: React.ChangeEvent) => { const selectedOptionType = parseInt(e.target.value); setOptionType(selectedOptionType); @@ -327,24 +371,41 @@ export function PoolForm({ token, communityAddr, chainId }: Props) { spendingLimit: previewData.spendingLimit, minimumConviction: previewData.minimumConviction, convictionGrowth: previewData.convictionGrowth, + isSybilResistanceRequired: previewData.isSybilResistanceRequired, + passportThreshold: previewData.passportThreshold, }; Object.entries(reorderedData).forEach(([key, value]) => { const formRow = formRowTypes[key]; - if (key == "maxAmount" && previewData.pointSystemType != 1) { - return; - } - if (formRow && isInInputMap(key, strategyType)) { + + if (formRow && shouldRenderInPreview(key)) { const parsedValue = formRow.parse ? formRow.parse(value) : value; formattedRows.push({ label: formRow.label, data: parsedValue, }); + } else { + return; } }); return formattedRows; }; + + const shouldRenderInPreview = (key: string) => { + if (key === "passportThreshold") { + return previewData?.isSybilResistanceRequired; + } else if (key === "maxAmount" ) { + if ( previewData?.pointSystemType) { + return pointSystems[previewData?.pointSystemType] === "capped"; + } else { + return false; + } + } else { + return renderInputMap(key, strategyType); + } + }; + return (
{showPreview ? @@ -409,7 +470,7 @@ export function PoolForm({ token, communityAddr, chainId }: Props) { )}
- {isInInputMap("spendingLimit", strategyType) && ( + {renderInputMap("spendingLimit", strategyType) && (
)} - {isInInputMap("minimumConviction", strategyType) && ( + {renderInputMap("minimumConviction", strategyType) && (
- {isInInputMap("minThresholdPoints", strategyType) && ( + {renderInputMap("minThresholdPoints", strategyType) && (
- {pointSystemType == 1 && ( + {pointSystems[pointSystemType] === "capped" && (
)} + {renderInputMap("isSybilResistanceRequired", strategyType) &&
+ + {isSybilResistanceRequired && + + } +
+ } }
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b550a9ca..a2e964e89 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,7 +28,7 @@ importers: dependencies: next: specifier: 14.0.3 - version: 14.0.3(@babel/core@7.24.7)(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0) + version: 14.0.3(@babel/core@7.24.9)(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -86,7 +86,7 @@ importers: version: 1.3.7(@types/react@18.3.3)(react-dom@18.2.0)(react@18.2.0)(viem@1.21.4)(wagmi@1.4.13) '@sentry/nextjs': specifier: ^8 - version: 8.17.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1)(@opentelemetry/instrumentation@0.52.1)(@opentelemetry/sdk-trace-base@1.25.1)(next@14.0.3)(react@18.2.0)(webpack@5.93.0) + version: 8.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1)(@opentelemetry/instrumentation@0.52.1)(@opentelemetry/sdk-trace-base@1.25.1)(next@14.0.3)(react@18.2.0)(webpack@5.93.0) '@tanstack/react-query': specifier: ^5.17.19 version: 5.51.9(react@18.2.0) @@ -137,7 +137,7 @@ importers: version: 1.5.12 next: specifier: 14.0.3 - version: 14.0.3(@babel/core@7.24.7)(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0) + version: 14.0.3(@babel/core@7.24.9)(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0) next-themes: specifier: ^0.2.1 version: 0.2.1(next@14.0.3)(react-dom@18.2.0)(react@18.2.0) @@ -240,7 +240,7 @@ importers: version: 8.4.39 prettier: specifier: ^3.1.0 - version: 3.3.2 + version: 3.3.3 prettier-eslint: specifier: ^16.3.0 version: 16.3.0 @@ -287,7 +287,7 @@ importers: version: 2.29.1(@typescript-eslint/parser@6.18.2-alpha.2)(eslint-import-resolver-typescript@2.7.1)(eslint@8.57.0) eslint-plugin-prettier: specifier: ^5.0.1 - version: 5.1.3(eslint-config-prettier@8.10.0)(eslint@8.57.0)(prettier@3.3.3) + version: 5.2.1(eslint-config-prettier@8.10.0)(eslint@8.57.0)(prettier@3.3.3) eslint-plugin-react: specifier: ^7.33.2 version: 7.34.4(eslint@8.57.0) @@ -296,7 +296,7 @@ importers: version: 4.6.2(eslint@8.57.0) typescript: specifier: ^5.1.1 - version: 5.4.5 + version: 5.2.2 pkg/services: {} @@ -304,19 +304,19 @@ importers: dependencies: '@graphprotocol/graph-cli': specifier: ^0.69.2 - version: 0.69.2(@types/node@20.14.4)(node-fetch@3.3.2)(typescript@5.4.5) + version: 0.69.2(@types/node@17.0.45)(node-fetch@3.3.2)(typescript@5.2.2) '@graphprotocol/graph-ts': specifier: ^0.34.0 version: 0.34.0 '@types/node': specifier: '*' - version: 20.14.4 + version: 17.0.45 node-fetch: specifier: '*' version: 3.3.2 typescript: specifier: '>=2.7' - version: 5.4.5 + version: 5.2.2 devDependencies: '@graphprotocol/client-cli': specifier: ^3.0.0 @@ -332,7 +332,7 @@ importers: version: 4.2.0 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.14.4)(typescript@5.4.5) + version: 10.9.2(@types/node@17.0.45)(typescript@5.2.2) viem: specifier: ~1.21.4 version: 1.21.4(typescript@5.2.2)(zod@3.23.8) @@ -349,7 +349,7 @@ importers: version: 5.17.0 '@testing-library/react': specifier: ^13.4.0 - version: 13.4.0(react-dom@18.3.1)(react@18.3.1) + version: 13.4.0(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': specifier: ^14.4.3 version: 14.5.2(@testing-library/dom@10.3.2) @@ -376,10 +376,10 @@ importers: version: 21.1.2 react: specifier: ^18.2.0 - version: 18.3.1 + version: 18.2.0 react-dom: specifier: ^18.0.0 - version: 18.3.1(react@18.3.1) + version: 18.2.0(react@18.2.0) tsconfig: specifier: workspace:* version: link:../tsconfig @@ -2027,15 +2027,15 @@ packages: - wonka dev: false - /@graphprotocol/graph-cli@0.69.2(@types/node@20.14.4)(node-fetch@3.3.2)(typescript@5.4.5): + /@graphprotocol/graph-cli@0.69.2(@types/node@17.0.45)(node-fetch@3.3.2)(typescript@5.2.2): resolution: {integrity: sha512-zAlnhNpxLReoqsY3MNJdD1r4/bQqIaN2HgVv2jUlt/Tydi41hMsg8jQg542JZabObcQ+BdpQkMmspuuDtwuq+g==} engines: {node: '>=18'} hasBin: true dependencies: '@float-capital/float-subgraph-uncrashable': 0.0.0-internal-testing.5 - '@oclif/core': 2.8.6(@types/node@20.14.4)(typescript@5.4.5) - '@oclif/plugin-autocomplete': 2.3.10(@types/node@20.14.4)(typescript@5.4.5) - '@oclif/plugin-not-found': 2.4.3(@types/node@20.14.4)(typescript@5.4.5) + '@oclif/core': 2.8.6(@types/node@17.0.45)(typescript@5.2.2) + '@oclif/plugin-autocomplete': 2.3.10(@types/node@17.0.45)(typescript@5.2.2) + '@oclif/plugin-not-found': 2.4.3(@types/node@17.0.45)(typescript@5.2.2) '@whatwg-node/fetch': 0.8.8 assemblyscript: 0.19.23 binary-install-raw: 0.0.13(debug@4.3.4) @@ -3244,7 +3244,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.14.4 + '@types/node': 17.0.45 '@types/yargs': 17.0.32 chalk: 4.1.2 dev: true @@ -3272,8 +3272,8 @@ packages: '@jridgewell/trace-mapping': 0.3.25 dev: false - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/sourcemap-codec@1.5.0: + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} /@jridgewell/trace-mapping@0.3.25: resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -3844,7 +3844,7 @@ packages: - typescript dev: false - /@oclif/core@2.8.6(@types/node@20.14.4)(typescript@5.4.5): + /@oclif/core@2.8.6(@types/node@17.0.45)(typescript@5.2.2): resolution: {integrity: sha512-1QlPaHMhOORySCXkQyzjsIsy2GYTilOw3LkjeHkCgsPJQjAT4IclVytJusWktPbYNys9O+O4V23J44yomQvnBQ==} engines: {node: '>=14.0.0'} dependencies: @@ -3884,7 +3884,7 @@ packages: - typescript dev: false - /@oclif/plugin-autocomplete@2.3.10(@types/node@20.14.4)(typescript@5.4.5): + /@oclif/plugin-autocomplete@2.3.10(@types/node@17.0.45)(typescript@5.2.2): resolution: {integrity: sha512-Ow1AR8WtjzlyCtiWWPgzMyT8SbcDJFr47009riLioHa+MHX2BCDtVn2DVnN/E6b9JlPV5ptQpjefoRSNWBesmg==} engines: {node: '>=12.0.0'} dependencies: @@ -3899,7 +3899,7 @@ packages: - typescript dev: false - /@oclif/plugin-not-found@2.4.3(@types/node@20.14.4)(typescript@5.4.5): + /@oclif/plugin-not-found@2.4.3(@types/node@17.0.45)(typescript@5.2.2): resolution: {integrity: sha512-nIyaR4y692frwh7wIHZ3fb+2L6XEecQwRDIb4zbEam0TvaVmBQWZoColQyWA84ljFBPZ8XWiQyTz+ixSwdRkqg==} engines: {node: '>=12.0.0'} dependencies: @@ -4023,7 +4023,7 @@ packages: '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.25.1 - semver: 7.6.2 + semver: 7.6.3 transitivePeerDependencies: - supports-color dev: false @@ -4166,7 +4166,7 @@ packages: '@types/shimmer': 1.2.0 import-in-the-middle: 1.7.1 require-in-the-middle: 7.3.0 - semver: 7.6.2 + semver: 7.6.3 shimmer: 1.2.1 transitivePeerDependencies: - supports-color @@ -4182,9 +4182,9 @@ packages: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.52.1 '@types/shimmer': 1.2.0 - import-in-the-middle: 1.9.0 + import-in-the-middle: 1.9.1 require-in-the-middle: 7.3.0 - semver: 7.6.2 + semver: 7.6.3 shimmer: 1.2.1 transitivePeerDependencies: - supports-color @@ -4434,8 +4434,8 @@ packages: engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dev: true - /@prisma/instrumentation@5.16.1: - resolution: {integrity: sha512-4m5gRFWnQb8s/yTyGbMZkL7A5uJgqOWcWJxapwcAD0T0kh5sGPEVSQl/zTQvE9aduXhFAxOtC3gO+R8Hb5xO1Q==} + /@prisma/instrumentation@5.17.0: + resolution: {integrity: sha512-c1Sle4ji8aasMcYfBBHFM56We4ljfenVtRmS8aY06BllS7SoU6SmJBwG7vil+GHiR0Yrh+t9iBwt4AY0Jr4KNQ==} dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) @@ -4530,7 +4530,7 @@ packages: '@rollup/pluginutils': 5.1.0(rollup@3.29.4) commondir: 1.0.1 estree-walker: 2.0.2 - glob: 10.4.1 + glob: 10.4.5 is-reference: 1.2.1 magic-string: 0.30.10 rollup: 3.29.4 @@ -4642,42 +4642,42 @@ packages: '@scure/base': 1.1.7 dev: false - /@sentry-internal/browser-utils@8.17.0: - resolution: {integrity: sha512-BEYBIDX1y8paKsDk8PmjYfAYFNS+KSeEhOwJTr/RWjvx/Fyb5ZF2q4u7qMjeNFLcxKnMkQTGYE9CYf/7XWs4bA==} + /@sentry-internal/browser-utils@8.19.0: + resolution: {integrity: sha512-kM/2KlikKuBR63nFi2q7MGS3V9K9hakjvUknhr/jHZqDVfEuBKmp1ZlHFAdJtglKHHJy07gPj/XqDH7BbYh5yg==} engines: {node: '>=14.18'} dependencies: - '@sentry/core': 8.17.0 - '@sentry/types': 8.17.0 - '@sentry/utils': 8.17.0 + '@sentry/core': 8.19.0 + '@sentry/types': 8.19.0 + '@sentry/utils': 8.19.0 dev: false - /@sentry-internal/feedback@8.17.0: - resolution: {integrity: sha512-lFypwCqqcwgh++8sPZw9hAEKphXSgPIdSqoXakgwSKxGx2pCIBbzeyOWzUeBpGfBkTw813HiuRwNY+e0dF6b4Q==} + /@sentry-internal/feedback@8.19.0: + resolution: {integrity: sha512-Jc77H8fEaGcBhERc2U/o7Q8CZHvlZLT9vAlzq0ZZR20v/1vwYcJW1ysKfTuvmw22hCR6ukhFNl6pqJocXFVhvA==} engines: {node: '>=14.18'} dependencies: - '@sentry/core': 8.17.0 - '@sentry/types': 8.17.0 - '@sentry/utils': 8.17.0 + '@sentry/core': 8.19.0 + '@sentry/types': 8.19.0 + '@sentry/utils': 8.19.0 dev: false - /@sentry-internal/replay-canvas@8.17.0: - resolution: {integrity: sha512-2FAbd/65zjPzlUQK/cKBzNPIClBKSPrHzfuB1ZM102JwSpvS5sljzhLvxua17uwU9V1Z9pbOT1pu5KtkUyc7lQ==} + /@sentry-internal/replay-canvas@8.19.0: + resolution: {integrity: sha512-l4pKJDHrXEctxrK7Xme/+fKToXpGwr/G2t77BzeE1WEw9LwSwADz/hi8HoMdZzuKWriM2BNbz20tpVS84sODxA==} engines: {node: '>=14.18'} dependencies: - '@sentry-internal/replay': 8.17.0 - '@sentry/core': 8.17.0 - '@sentry/types': 8.17.0 - '@sentry/utils': 8.17.0 + '@sentry-internal/replay': 8.19.0 + '@sentry/core': 8.19.0 + '@sentry/types': 8.19.0 + '@sentry/utils': 8.19.0 dev: false - /@sentry-internal/replay@8.17.0: - resolution: {integrity: sha512-SBNXBbXEd4WdCIIa/9mkcrwUjxJxSQtYakJ00Xvv/gwqR1rmRFOVqVjLXisryDXCucdD4Rp5MqRT9H+BcSNVtg==} + /@sentry-internal/replay@8.19.0: + resolution: {integrity: sha512-EW9e1J6XbqXUXQST1AfSIzT9O8OwPyeFOkhkn9/gqOQv08TJvQEIBtWJEoJS+XFMEUuB8IqIzVWNVko/DnGt9A==} engines: {node: '>=14.18'} dependencies: - '@sentry-internal/browser-utils': 8.17.0 - '@sentry/core': 8.17.0 - '@sentry/types': 8.17.0 - '@sentry/utils': 8.17.0 + '@sentry-internal/browser-utils': 8.19.0 + '@sentry/core': 8.19.0 + '@sentry/types': 8.19.0 + '@sentry/utils': 8.19.0 dev: false /@sentry/babel-plugin-component-annotate@2.20.1: @@ -4685,26 +4685,26 @@ packages: engines: {node: '>= 14'} dev: false - /@sentry/browser@8.17.0: - resolution: {integrity: sha512-dPMvxyS+ogu7/3+AI83U2IKaLO7hZUt3J35mtgOQhAETcyNaLZtJP1VNUAcW/VhJa3TMCfmG5A1+dkBp8A6cdA==} + /@sentry/browser@8.19.0: + resolution: {integrity: sha512-ZC1HxIFm4TIGONyy9MkPG6Dw8IAhzq43t5mq9PqrB1ehuWj8GX6Vk3E26kuc2sydAm4AXbj0562OmvZHsAJpUA==} engines: {node: '>=14.18'} dependencies: - '@sentry-internal/browser-utils': 8.17.0 - '@sentry-internal/feedback': 8.17.0 - '@sentry-internal/replay': 8.17.0 - '@sentry-internal/replay-canvas': 8.17.0 - '@sentry/core': 8.17.0 - '@sentry/types': 8.17.0 - '@sentry/utils': 8.17.0 + '@sentry-internal/browser-utils': 8.19.0 + '@sentry-internal/feedback': 8.19.0 + '@sentry-internal/replay': 8.19.0 + '@sentry-internal/replay-canvas': 8.19.0 + '@sentry/core': 8.19.0 + '@sentry/types': 8.19.0 + '@sentry/utils': 8.19.0 dev: false /@sentry/bundler-plugin-core@2.20.1: resolution: {integrity: sha512-6ipbmGzHekxeRCbp7eoefr6bdd/lW4cNA9eNnrmd9+PicubweGaZZbH2NjhFHsaxzgOezwipDHjrTaap2kTHgw==} engines: {node: '>= 14'} dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@sentry/babel-plugin-component-annotate': 2.20.1 - '@sentry/cli': 2.32.1 + '@sentry/cli': 2.32.2 dotenv: 16.4.5 find-up: 5.0.0 glob: 9.3.5 @@ -4715,16 +4715,16 @@ packages: - supports-color dev: false - /@sentry/cli-darwin@2.32.1: - resolution: {integrity: sha512-z/lEwANTYPCzbWTZ2+eeeNYxRLllC8knd0h+vtAKlhmGw/fyc/N39cznIFyFu+dLJ6tTdjOWOeikHtKuS/7onw==} + /@sentry/cli-darwin@2.32.2: + resolution: {integrity: sha512-GDtePIavx3FKSRowdPdtIssahn46MfFFYNN+s7a9MjlhFwJtvC9A1bSDw7ksEtDaQolepUwmLPHaVe19y0T/zw==} engines: {node: '>=10'} os: [darwin] requiresBuild: true dev: false optional: true - /@sentry/cli-linux-arm64@2.32.1: - resolution: {integrity: sha512-hsGqHYuecUl1Yhq4MhiRejfh1gNlmhyNPcQEoO/DDRBnGnJyEAdiDpKXJcc2e/lT9k40B55Ob2CP1SeY040T2w==} + /@sentry/cli-linux-arm64@2.32.2: + resolution: {integrity: sha512-VECLVC1rLyvXk6rTVUfmfs4vhANjMgm4BVKGlA3rydmf2PJw2/NfipH3KeyijdE2vEoyLri+/6HH883pP0iniQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux, freebsd] @@ -4732,8 +4732,8 @@ packages: dev: false optional: true - /@sentry/cli-linux-arm@2.32.1: - resolution: {integrity: sha512-m0lHkn+o4YKBq8KptGZvpT64FAwSl9mYvHZO9/ChnEGIJ/WyJwiN1X1r9JHVaW4iT5lD0Y5FAyq3JLkk0m0XHg==} + /@sentry/cli-linux-arm@2.32.2: + resolution: {integrity: sha512-u9s08wr8bDDqsAl6pk9iGGlOHtU+T8btU6voNKy71QzeIBpV9c8VVk/OnmP9aswp/ea4NY416yjnzcTvCrFKAw==} engines: {node: '>=10'} cpu: [arm] os: [linux, freebsd] @@ -4741,8 +4741,8 @@ packages: dev: false optional: true - /@sentry/cli-linux-i686@2.32.1: - resolution: {integrity: sha512-SuMLN1/ceFd3Q/B0DVyh5igjetTAF423txiABAHASenEev0lG0vZkRDXFclfgDtDUKRPmOXW7VDMirM3yZWQHQ==} + /@sentry/cli-linux-i686@2.32.2: + resolution: {integrity: sha512-XhofQz32OqLrQK1DEOsryhT7d29Df6VkccvxueGoIt2gpXEXtgRczsUwZjZqquDdkNCt+HPj9eUGcj8pY8JkmQ==} engines: {node: '>=10'} cpu: [x86, ia32] os: [linux, freebsd] @@ -4750,8 +4750,8 @@ packages: dev: false optional: true - /@sentry/cli-linux-x64@2.32.1: - resolution: {integrity: sha512-x4FGd6xgvFddz8V/dh6jii4wy9qjWyvYLBTz8Fhi9rIP+b8wQ3oxwHIdzntareetZP7C1ggx+hZheiYocNYVwA==} + /@sentry/cli-linux-x64@2.32.2: + resolution: {integrity: sha512-anyng4Qqt7zX4ZY4IzDH1RJWAVZNBe6sUHcuciNy7giCU3B4/XnxAHlwYmBSN5txpaumsWdstPgRKEUJG6AOSA==} engines: {node: '>=10'} cpu: [x64] os: [linux, freebsd] @@ -4759,8 +4759,8 @@ packages: dev: false optional: true - /@sentry/cli-win32-i686@2.32.1: - resolution: {integrity: sha512-i6aZma9mFzR+hqMY5VliQZEX6ypP/zUjPK0VtIMYWs5cC6PsQLRmuoeJmy3Z7d4nlh0CdK5NPC813Ej6RY6/vg==} + /@sentry/cli-win32-i686@2.32.2: + resolution: {integrity: sha512-/auqx7QXG7F556fNK7vaB26pX7Far1CQMfI65iV4u/VWg6gV2WfvJWXB4iowhjqkYv56sZ+zOymLkEVF0R8wtg==} engines: {node: '>=10'} cpu: [x86, ia32] os: [win32] @@ -4768,8 +4768,8 @@ packages: dev: false optional: true - /@sentry/cli-win32-x64@2.32.1: - resolution: {integrity: sha512-B58w/lRHLb4MUSjJNfMMw2cQykfimDCMLMmeK+1EiT2RmSeNQliwhhBxYcKk82a8kszH6zg3wT2vCea7LyPUyA==} + /@sentry/cli-win32-x64@2.32.2: + resolution: {integrity: sha512-w7hW2sEWVYQquqdILBSFhcVW+HdoyLqVPPkLPAXRSLTwBnuni9nQEIdXr0h/7db+K3cm7PvWndp5ixVyswLHZA==} engines: {node: '>=10'} cpu: [x64] os: [win32] @@ -4777,8 +4777,8 @@ packages: dev: false optional: true - /@sentry/cli@2.32.1: - resolution: {integrity: sha512-MWkbkzZfnlE7s2pPbg4VozRSAeMlIObfZlTIou9ye6XnPt6ZmmxCLOuOgSKMv4sXg6aeqKNzMNiadThxCWyvPg==} + /@sentry/cli@2.32.2: + resolution: {integrity: sha512-m/6Z3FWu+rTd8jepVlJPKQhvbT8vCjt0N7BSWZiEUVW/8mhwAYJiwO0b+Ch/u4IqbBg1dp3805q5TFPl4AdrNw==} engines: {node: '>= 10'} hasBin: true requiresBuild: true @@ -4789,13 +4789,13 @@ packages: proxy-from-env: 1.1.0 which: 2.0.2 optionalDependencies: - '@sentry/cli-darwin': 2.32.1 - '@sentry/cli-linux-arm': 2.32.1 - '@sentry/cli-linux-arm64': 2.32.1 - '@sentry/cli-linux-i686': 2.32.1 - '@sentry/cli-linux-x64': 2.32.1 - '@sentry/cli-win32-i686': 2.32.1 - '@sentry/cli-win32-x64': 2.32.1 + '@sentry/cli-darwin': 2.32.2 + '@sentry/cli-linux-arm': 2.32.2 + '@sentry/cli-linux-arm64': 2.32.2 + '@sentry/cli-linux-i686': 2.32.2 + '@sentry/cli-linux-x64': 2.32.2 + '@sentry/cli-win32-i686': 2.32.2 + '@sentry/cli-win32-x64': 2.32.2 transitivePeerDependencies: - encoding - supports-color @@ -4812,12 +4812,12 @@ packages: tslib: 1.14.1 dev: false - /@sentry/core@8.17.0: - resolution: {integrity: sha512-s62O0Re6WcvaVbH1IEeAWmj/ca8UhaRoFaDnc5TR68reOycBrgnqCNq3qHxBsELOA6NJowoK+T29DDGs9QVXhQ==} + /@sentry/core@8.19.0: + resolution: {integrity: sha512-MrgjsZCEjOJgQjIznnDSrLEy7qL+4LVpNieAvr49cV1rzBNSwGmWRnt/puVaPsLyCUgupVx/43BPUHB/HtKNUw==} engines: {node: '>=14.18'} dependencies: - '@sentry/types': 8.17.0 - '@sentry/utils': 8.17.0 + '@sentry/types': 8.19.0 + '@sentry/utils': 8.19.0 dev: false /@sentry/hub@5.30.0: @@ -4838,8 +4838,8 @@ packages: tslib: 1.14.1 dev: false - /@sentry/nextjs@8.17.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1)(@opentelemetry/instrumentation@0.52.1)(@opentelemetry/sdk-trace-base@1.25.1)(next@14.0.3)(react@18.2.0)(webpack@5.93.0): - resolution: {integrity: sha512-VUmPDNW8jgCIe6rN9tYQNzgvFZ2V1jp4wHMI7LTC1tgxZHbyadUJnw5yNTxs0IyjzkFSDaaO879STPv3saeU1A==} + /@sentry/nextjs@8.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1)(@opentelemetry/instrumentation@0.52.1)(@opentelemetry/sdk-trace-base@1.25.1)(next@14.0.3)(react@18.2.0)(webpack@5.93.0): + resolution: {integrity: sha512-WafL2zXKEp1jQJ0bC8H15zEUGT4m6bDiCwlaP8xAI3dz5E1e6f29OFlStvgzU3Tpx/Wi6qNTs5AGuwV3wK9qdg==} engines: {node: '>=14.18'} peerDependencies: next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 @@ -4851,16 +4851,16 @@ packages: '@opentelemetry/instrumentation-http': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.25.1 '@rollup/plugin-commonjs': 26.0.1(rollup@3.29.4) - '@sentry/core': 8.17.0 - '@sentry/node': 8.17.0 - '@sentry/opentelemetry': 8.17.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1)(@opentelemetry/instrumentation@0.52.1)(@opentelemetry/sdk-trace-base@1.25.1)(@opentelemetry/semantic-conventions@1.25.1) - '@sentry/react': 8.17.0(react@18.2.0) - '@sentry/types': 8.17.0 - '@sentry/utils': 8.17.0 - '@sentry/vercel-edge': 8.17.0 + '@sentry/core': 8.19.0 + '@sentry/node': 8.19.0 + '@sentry/opentelemetry': 8.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1)(@opentelemetry/instrumentation@0.52.1)(@opentelemetry/sdk-trace-base@1.25.1)(@opentelemetry/semantic-conventions@1.25.1) + '@sentry/react': 8.19.0(react@18.2.0) + '@sentry/types': 8.19.0 + '@sentry/utils': 8.19.0 + '@sentry/vercel-edge': 8.19.0 '@sentry/webpack-plugin': 2.20.1(webpack@5.93.0) chalk: 3.0.0 - next: 14.0.3(@babel/core@7.24.7)(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0) + next: 14.0.3(@babel/core@7.24.9)(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0) resolve: 1.22.8 rollup: 3.29.4 stacktrace-parser: 0.1.10 @@ -4892,8 +4892,8 @@ packages: - supports-color dev: false - /@sentry/node@8.17.0: - resolution: {integrity: sha512-HJ7B/zlpGMOIN+TnLzp6gbOpOzTk3Co19N39Y17T9MrR+5Z4eHdgEKWORFyE0Wy2KYKkVRwJ5zZJbfldc0EsEA==} + /@sentry/node@8.19.0: + resolution: {integrity: sha512-r7AeKxfB9eE/UW0NZT3AMh+hNA65NFEwtsMYO6iI52FPLFZh0DLOvzVOeNsmsJqPpyetooUGTtUYpBdinZldWA==} engines: {node: '>=14.18'} dependencies: '@opentelemetry/api': 1.9.0 @@ -4918,19 +4918,19 @@ packages: '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.25.1 - '@prisma/instrumentation': 5.16.1 - '@sentry/core': 8.17.0 - '@sentry/opentelemetry': 8.17.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1)(@opentelemetry/instrumentation@0.52.1)(@opentelemetry/sdk-trace-base@1.25.1)(@opentelemetry/semantic-conventions@1.25.1) - '@sentry/types': 8.17.0 - '@sentry/utils': 8.17.0 + '@prisma/instrumentation': 5.17.0 + '@sentry/core': 8.19.0 + '@sentry/opentelemetry': 8.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1)(@opentelemetry/instrumentation@0.52.1)(@opentelemetry/sdk-trace-base@1.25.1)(@opentelemetry/semantic-conventions@1.25.1) + '@sentry/types': 8.19.0 + '@sentry/utils': 8.19.0 optionalDependencies: opentelemetry-instrumentation-fetch-node: 1.2.3(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color dev: false - /@sentry/opentelemetry@8.17.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1)(@opentelemetry/instrumentation@0.52.1)(@opentelemetry/sdk-trace-base@1.25.1)(@opentelemetry/semantic-conventions@1.25.1): - resolution: {integrity: sha512-SKHfvHECIs7kqcXVRypXC6bQ7AQ4TTILamamZS5Ro1FP+i+yT8qEIoVWljoFZUIyO4J42mAP98THa1lCPK4BXA==} + /@sentry/opentelemetry@8.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1)(@opentelemetry/instrumentation@0.52.1)(@opentelemetry/sdk-trace-base@1.25.1)(@opentelemetry/semantic-conventions@1.25.1): + resolution: {integrity: sha512-L1aSxO/aJJ7D3pIlTaVOgbiZJAnUHXezobTc8j5pqFCQACjxnLMSDrt53QfFV52CcjbliDWCYe4IB8umu4DgpA==} engines: {node: '>=14.18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -4944,21 +4944,21 @@ packages: '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.25.1 - '@sentry/core': 8.17.0 - '@sentry/types': 8.17.0 - '@sentry/utils': 8.17.0 + '@sentry/core': 8.19.0 + '@sentry/types': 8.19.0 + '@sentry/utils': 8.19.0 dev: false - /@sentry/react@8.17.0(react@18.2.0): - resolution: {integrity: sha512-KhRECfyhIZZQGuaIB4V7k7wmeyQcxvsKtZUrkj9bTjP3uTf9p+WHKGlyTnX1jdidEgGJAnmBYnKMqR5mUZDCyQ==} + /@sentry/react@8.19.0(react@18.2.0): + resolution: {integrity: sha512-MzuMy4AEdSuIrBEyp3W7c4+v215+2MiU9ba7Y0KBKcC/Nrf1cGfRFRbjl9OYm/JIuxkaop7kgYs6sPMrVJVlrQ==} engines: {node: '>=14.18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x dependencies: - '@sentry/browser': 8.17.0 - '@sentry/core': 8.17.0 - '@sentry/types': 8.17.0 - '@sentry/utils': 8.17.0 + '@sentry/browser': 8.19.0 + '@sentry/core': 8.19.0 + '@sentry/types': 8.19.0 + '@sentry/utils': 8.19.0 hoist-non-react-statics: 3.3.2 react: 18.2.0 dev: false @@ -4979,8 +4979,8 @@ packages: engines: {node: '>=6'} dev: false - /@sentry/types@8.17.0: - resolution: {integrity: sha512-v0nI0+ajiGTijhF1W/ryn2+zFVFr6VPn6lao3W4qKj9MlltIHa4/uuGzTaiCFwoPw7g5bZ1Q09SStpDXVMkz2A==} + /@sentry/types@8.19.0: + resolution: {integrity: sha512-52C8X5V7mK2KIxMJt8MV5TxXAFHqrQR1RKm1oPTwKVWm8hKr1ZYJXINymNrWvpAc3oVIKLC/sa9WFYgXQh+YlA==} engines: {node: '>=14.18'} dev: false @@ -4992,20 +4992,20 @@ packages: tslib: 1.14.1 dev: false - /@sentry/utils@8.17.0: - resolution: {integrity: sha512-HHtAPLOlvzhwgfYzxtuPnLUoGRMtMrFvopkii74zmx/1ZD4VN4PYPB2E5KFf3c18pTovw+kxF0ux6VrGiyAHsw==} + /@sentry/utils@8.19.0: + resolution: {integrity: sha512-8dWJJKaUN6Hf92Oxw2TBmHchGua2W3ZmonrZTTwLvl06jcAigbiQD0MGuF5ytZP8PHx860orV+SbTGKFzfU3Pg==} engines: {node: '>=14.18'} dependencies: - '@sentry/types': 8.17.0 + '@sentry/types': 8.19.0 dev: false - /@sentry/vercel-edge@8.17.0: - resolution: {integrity: sha512-B03OxHergb8d++3VOAZfiRH013tKIc4GlkpT8vTudx0lWf23fv1Gp4+KMP0A3k+BR7QfjFkuyHO+2rmRM6pSPg==} + /@sentry/vercel-edge@8.19.0: + resolution: {integrity: sha512-I1G19SGWKcwUo1VT57xD/c/ZBnl8qkz6V+6j+vCbms4i0GTFw3eASnUIAOd25kc59/Wih2tUVj5mfV6aX5/DFg==} engines: {node: '>=14.18'} dependencies: - '@sentry/core': 8.17.0 - '@sentry/types': 8.17.0 - '@sentry/utils': 8.17.0 + '@sentry/core': 8.19.0 + '@sentry/types': 8.19.0 + '@sentry/utils': 8.19.0 dev: false /@sentry/webpack-plugin@2.20.1(webpack@5.93.0): @@ -5350,7 +5350,7 @@ packages: redent: 3.0.0 dev: true - /@testing-library/react@13.4.0(react-dom@18.3.1)(react@18.3.1): + /@testing-library/react@13.4.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==} engines: {node: '>=12'} peerDependencies: @@ -5465,13 +5465,13 @@ packages: /@types/cli-progress@3.11.6: resolution: {integrity: sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA==} dependencies: - '@types/node': 20.14.4 + '@types/node': 17.0.45 dev: false /@types/concat-stream@1.6.1: resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} dependencies: - '@types/node': 20.14.4 + '@types/node': 17.0.45 dev: false /@types/connect@3.4.36: @@ -5483,7 +5483,7 @@ packages: /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.14.4 + '@types/node': 17.0.45 dev: false /@types/debug@4.1.12: @@ -5517,7 +5517,7 @@ packages: /@types/form-data@0.0.33: resolution: {integrity: sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw==} dependencies: - '@types/node': 20.14.4 + '@types/node': 17.0.45 dev: false /@types/http-cache-semantics@4.0.4: @@ -5695,7 +5695,7 @@ packages: /@types/ws@7.4.7: resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} dependencies: - '@types/node': 20.14.4 + '@types/node': 17.0.45 dev: false /@types/ws@8.5.11: @@ -5791,27 +5791,6 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.18.2-alpha.2(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-YlxNqeFSeBhNCfHqHyCWnmD6+nl4Pv01+NFOXE8KOJJ2we5OG/qxQ7CvCLE/O4WyBlGn7uEJ4Chq3+mjSg7x5w==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 6.18.2-alpha.2 - '@typescript-eslint/types': 6.18.2-alpha.2 - '@typescript-eslint/typescript-estree': 6.18.2-alpha.2(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 6.18.2-alpha.2 - debug: 4.3.5 - eslint: 8.57.0 - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/scope-manager@6.18.2-alpha.2: resolution: {integrity: sha512-YfC3Rirk4COF+YH5g2kgIzQsCet0nYSd1hxGEf+5JV8PcS+7ofItlc+IAC9fBvflAeZmTzoVHBaHzHUKOf7IcQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -6036,7 +6015,7 @@ packages: react: '>=18.0.0' urql: ^4.0.0 dependencies: - next: 14.0.3(@babel/core@7.24.7)(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0) + next: 14.0.3(@babel/core@7.24.9)(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 urql: 4.1.0(@urql/core@5.0.4)(react@18.2.0) dev: false @@ -7037,22 +7016,8 @@ packages: typescript: 5.2.2 dev: false - /abitype@1.0.5(typescript@5.2.2): - resolution: {integrity: sha512-YzDhti7cjlfaBhHutMaboYB21Ha3rXR9QTkNJFzYC4kC8YclaiwPBBBJY8ejFdu2wnJeZCVZSMlQJ7fi8S6hsw==} - peerDependencies: - typescript: '>=5.0.4' - zod: ^3 >=3.22.0 - peerDependenciesMeta: - typescript: - optional: true - zod: - optional: true - dependencies: - typescript: 5.2.2 - dev: false - - /ably@2.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-iEfFsSE4plYRuZBwUQSpQjlXHqTJkAOvIqNo5e7nUW3P/bmKLjL9IplgLoguXdE+TksBRz1R5m6obkCcsjwAhA==} + /ably@2.3.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-4QyN2SEUG1Svpg5LIr/K14U+X9e5Wv/dsldPcPZGwaE1iFVZxl7Ccb6/lcBMn+8Uq0+2q9rzTKFnGERQIRIHVg==} engines: {node: '>=16'} peerDependencies: react: '>=16.8.0' @@ -7089,22 +7054,22 @@ packages: acorn-walk: 8.3.3 dev: true - /acorn-import-assertions@1.9.0(acorn@8.12.0): + /acorn-import-assertions@1.9.0(acorn@8.12.1): resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} requiresBuild: true peerDependencies: acorn: ^8 dependencies: - acorn: 8.12.0 + acorn: 8.12.1 dev: false optional: true - /acorn-import-attributes@1.9.5(acorn@8.12.0): + /acorn-import-attributes@1.9.5(acorn@8.12.1): resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: acorn: ^8 dependencies: - acorn: 8.12.0 + acorn: 8.12.1 dev: false /acorn-jsx@5.3.2(acorn@7.4.1): @@ -8910,7 +8875,7 @@ packages: /dns-over-http-resolver@1.2.3(node-fetch@3.3.2): resolution: {integrity: sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==} dependencies: - debug: 4.3.5 + debug: 4.3.4(supports-color@8.1.1) native-fetch: 3.0.0(node-fetch@3.3.2) receptacle: 1.3.2 transitivePeerDependencies: @@ -9247,16 +9212,6 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.4 - - /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - /es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: @@ -9660,27 +9615,6 @@ packages: synckit: 0.9.1 dev: true - /eslint-plugin-prettier@5.1.3(eslint-config-prettier@8.10.0)(eslint@8.57.0)(prettier@3.3.3): - resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '*' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true - dependencies: - eslint: 8.57.0 - eslint-config-prettier: 8.10.0(eslint@8.57.0) - prettier: 3.3.3 - prettier-linter-helpers: 1.0.0 - synckit: 0.8.8 - dev: true - /eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} engines: {node: '>=10'} @@ -10069,6 +10003,7 @@ packages: is-hex-prefixed: 1.0.0 strip-hex-prefix: 1.0.0 dev: false + bundledDependencies: false /event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} @@ -10468,16 +10403,6 @@ packages: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} dev: false - /fs-extra@0.30.0: - resolution: {integrity: sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 2.4.0 - klaw: 1.3.1 - path-is-absolute: 1.0.1 - rimraf: 2.7.1 - dev: false - /fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} @@ -10597,46 +10522,6 @@ packages: dependencies: is-property: 1.0.2 - /gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} - deprecated: This package is no longer supported. - requiresBuild: true - dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - object-assign: 4.1.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - dev: true - optional: true - - /gauge@5.0.2: - resolution: {integrity: sha512-pMaFftXPtiGIHCJHdcUUx9Rby/rFT/Kkt3fIIGCs+9PMDIljSyRiqraTlxNtBReJRDfUefpa263RQ3vnp5G/LQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - deprecated: This package is no longer supported. - requiresBuild: true - dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - signal-exit: 4.1.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - dev: true - optional: true - - /generate-function@2.3.1: - resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} - dependencies: - is-property: 1.0.2 - /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -11103,12 +10988,6 @@ packages: dev: true optional: true - /has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - requiresBuild: true - dev: true - optional: true - /hash-base@3.1.0: resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} engines: {node: '>=4'} @@ -11354,18 +11233,18 @@ packages: resolution: {integrity: sha512-1LrZPDtW+atAxH42S6288qyDFNQ2YCty+2mxEPRtfazH6Z5QwkaBSTS2ods7hnVJioF6rkRfNoA6A/MstpFXLg==} requiresBuild: true dependencies: - acorn: 8.12.0 - acorn-import-assertions: 1.9.0(acorn@8.12.0) + acorn: 8.12.1 + acorn-import-assertions: 1.9.0(acorn@8.12.1) cjs-module-lexer: 1.3.1 module-details-from-path: 1.0.3 dev: false optional: true - /import-in-the-middle@1.9.0: - resolution: {integrity: sha512-Ng1SJINJDBzyUEkx9Mj32XD8G0TQCUb5TMoL9V91CTn6F3wYZLygLuhNFrv0cNMBZaeptnL1zecV6XrIdHJ+xQ==} + /import-in-the-middle@1.9.1: + resolution: {integrity: sha512-E+3tEOutU1MV0mxhuCwfSPNNWRkbTJ3/YyL5be+blNIbHwZc53uYHQfuIhAU77xWR0BoF2eT7cqDJ6VlU5APPg==} dependencies: - acorn: 8.12.0 - acorn-import-attributes: 1.9.5(acorn@8.12.0) + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) cjs-module-lexer: 1.3.1 module-details-from-path: 1.0.3 dev: false @@ -12106,7 +11985,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.14.4 + '@types/node': 17.0.45 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -12651,14 +12530,14 @@ packages: /magic-string@0.30.10: resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 dev: false /magic-string@0.30.8: resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 dev: false /make-dir@3.1.0: @@ -12741,7 +12620,7 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - /meros@1.3.0(@types/node@20.14.4): + /meros@1.3.0(@types/node@17.0.45): resolution: {integrity: sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==} engines: {node: '>=13'} peerDependencies: @@ -12750,7 +12629,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.14.4 + '@types/node': 17.0.45 dev: true /micro-ftch@0.3.1: @@ -12818,13 +12697,6 @@ packages: dependencies: brace-expansion: 1.1.11 - /minimatch@5.0.1: - resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: false - /minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} @@ -13184,12 +13056,12 @@ packages: react: '*' react-dom: '*' dependencies: - next: 14.0.3(@babel/core@7.24.7)(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0) + next: 14.0.3(@babel/core@7.24.9)(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /next@14.0.3(@babel/core@7.24.7)(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0): + /next@14.0.3(@babel/core@7.24.9)(@opentelemetry/api@1.9.0)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-AbYdRNfImBr3XGtvnwOxq8ekVCwbFTv/UJoLwmaX89nk9i051AEY4/HAWzU0YpaTDw8IofUpmuIlvzWF13jxIw==} engines: {node: '>=18.17.0'} hasBin: true @@ -13715,7 +13587,6 @@ packages: /package-json-from-dist@1.0.0: resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} - dev: true /param-case@3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} @@ -14093,8 +13964,8 @@ packages: xtend: 4.0.2 dev: false - /preact@10.22.0: - resolution: {integrity: sha512-RRurnSjJPj4rp5K6XoP45Ui33ncb7e4H7WiOHVpjbkvqvA3U+N8Z6Qbo0AE6leGYBV66n8EhEaFixvIu3SkxFw==} + /preact@10.22.1: + resolution: {integrity: sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==} dev: false /prelude-ls@1.2.1: @@ -14223,12 +14094,6 @@ packages: hasBin: true dev: true - /prettier@3.3.3: - resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} - engines: {node: '>=14'} - hasBin: true - dev: true - /pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -14324,7 +14189,7 @@ packages: '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 '@types/long': 4.0.2 - '@types/node': 20.14.4 + '@types/node': 17.0.45 long: 4.0.0 dev: false @@ -14556,13 +14421,6 @@ packages: dependencies: loose-envify: 1.4.0 - /react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - dev: true - /read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} dependencies: @@ -14715,7 +14573,7 @@ packages: resolution: {integrity: sha512-nQFEv9gRw6SJAwWD2LrL0NmQvAcO7FBwJbwmr2ttPAacfy0xuiOjE5zt+zM4xDyuyvUaxBi/9gb2SoCyNEVJcw==} engines: {node: '>=8.6.0'} dependencies: - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) module-details-from-path: 1.0.3 resolve: 1.22.8 transitivePeerDependencies: @@ -14993,12 +14851,6 @@ packages: randombytes: 2.1.0 dev: false - /serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - dependencies: - randombytes: 2.1.0 - dev: false - /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -15502,7 +15354,6 @@ packages: engines: {node: '>=10'} dependencies: has-flag: 4.0.0 - dev: false /supports-hyperlinks@2.3.0: resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} @@ -15685,17 +15536,17 @@ packages: jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 - terser: 5.31.2 + terser: 5.31.3 webpack: 5.93.0(esbuild@0.16.17) dev: false - /terser@5.31.2: - resolution: {integrity: sha512-LGyRZVFm/QElZHy/CPr/O4eNZOZIzsrQ92y4v9UJe/pFJjypje2yI3C2FmPtvUEnhadlSbmG2nXtdcjHOjCfxw==} + /terser@5.31.3: + resolution: {integrity: sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==} engines: {node: '>=10'} hasBin: true dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.12.0 + acorn: 8.12.1 commander: 2.20.3 source-map-support: 0.5.21 dev: false @@ -15916,7 +15767,7 @@ packages: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.4.5 + typescript: 5.2.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 @@ -16319,7 +16170,7 @@ packages: /unplugin@1.0.1: resolution: {integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==} dependencies: - acorn: 8.12.0 + acorn: 8.12.1 chokidar: 3.6.0 webpack-sources: 3.2.3 webpack-virtual-modules: 0.5.0 @@ -16660,7 +16511,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.14.4 + '@types/node': 17.0.45 esbuild: 0.18.20 postcss: 8.4.39 rollup: 3.29.4 @@ -16692,7 +16543,7 @@ packages: dependencies: '@types/chai': 4.3.16 '@types/chai-subset': 1.3.5 - '@types/node': 20.14.4 + '@types/node': 17.0.45 '@vitest/expect': 0.28.5 '@vitest/runner': 0.28.5 '@vitest/spy': 0.28.5 @@ -16731,14 +16582,14 @@ packages: peerDependencies: eslint: '>=6.0.0' dependencies: - debug: 4.3.5 + debug: 4.3.5(supports-color@8.1.1) eslint: 8.57.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - esquery: 1.5.0 + esquery: 1.6.0 lodash: 4.17.21 - semver: 7.6.2 + semver: 7.6.3 transitivePeerDependencies: - supports-color dev: true @@ -16885,9 +16736,9 @@ packages: '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.12.0 - acorn-import-attributes: 1.9.5(acorn@8.12.0) - browserslist: 4.23.1 + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) + browserslist: 4.23.2 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.0 es-module-lexer: 1.5.4 @@ -17115,6 +16966,7 @@ packages: optional: true utf-8-validate: optional: true + dev: false /ws@8.18.0: resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} @@ -17173,10 +17025,6 @@ packages: camelcase: 5.3.1 decamelize: 1.2.0 - /yargs-parser@20.2.4: - resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} - engines: {node: '>=10'} - /yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'}