diff --git a/.eslintrc.json b/.eslintrc.json index 48e13508..c9e749b8 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,8 +1,3 @@ { - "extends": "next/core-web-vitals", - // not actually using NextJS, so disable next-specific rules - "rules": { - "@next/next/no-img-element": "off", - "react/no-unescaped-entities": "off" - } + "extends": ["eslint:recommended", "plugin:react/recommended"] } diff --git a/apps/gnocchi/hub/index.html b/apps/gnocchi/hub/index.html new file mode 100644 index 00000000..e7703f72 --- /dev/null +++ b/apps/gnocchi/hub/index.html @@ -0,0 +1,52 @@ + + + + + Gnocchi Recipes + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + diff --git a/apps/gnocchi/hub/package.json b/apps/gnocchi/hub/package.json new file mode 100644 index 00000000..466cf608 --- /dev/null +++ b/apps/gnocchi/hub/package.json @@ -0,0 +1,47 @@ +{ + "name": "@gnocchi.biscuits/hub", + "version": "0.0.1", + "private": true, + "type": "module", + "exports": { + ".": { + "import": "./dist/server/entry-server.js", + "types": "./dist/server/entry-server.d.ts" + } + }, + "scripts": { + "build": "pnpm run build:client && pnpm run build:server", + "build:client": "vite build --outDir dist/client", + "build:server": "vite build --ssr src/entry-server.tsx --outDir dist/server", + "dev": "pnpm run dev:client && pnpm run dev:server && tsc --declaration --emitDeclarationOnly", + "dev:client": "vite build --mode development --outDir dist/client", + "dev:server": "vite build --mode development --ssr src/entry-server.tsx --outDir dist/server", + "typecheck": "tsc --build tsconfig.json" + }, + "dependencies": { + "@a-type/ui": "^0.8.15", + "@a-type/utils": "^1.0.8", + "@tiptap/core": "^2.2.4", + "@tiptap/extension-document": "^2.2.4", + "@tiptap/extension-link": "^2.2.4", + "@tiptap/extension-paragraph": "^2.2.4", + "@tiptap/pm": "^2.2.4", + "@tiptap/react": "^2.2.4", + "@tiptap/starter-kit": "^2.2.4", + "prosemirror-model": "1.19.4", + "react": "18.2.0", + "react-dom": "18.2.0" + }, + "devDependencies": { + "@originjs/vite-plugin-commonjs": "^1.0.3", + "@types/react": "^18.2.79", + "@types/react-dom": "^18.2.25", + "@unocss/transformer-variant-group": "^0.58.0", + "@vitejs/plugin-react-swc": "^3.5.0", + "concurrently": "^7.5.0", + "dotenv": "^16.0.1", + "typescript": "^5.4.5", + "unocss": "^0.58.0", + "vite": "^5.0.10" + } +} diff --git a/apps/gnocchi/hub/src/App.tsx b/apps/gnocchi/hub/src/App.tsx new file mode 100644 index 00000000..4b918673 --- /dev/null +++ b/apps/gnocchi/hub/src/App.tsx @@ -0,0 +1,114 @@ +import React, { Suspense } from 'react'; +import { + IngredientList, + IngredientListItem, +} from './components/IngredientList.jsx'; +import { Instructions } from './components/Instructions.jsx'; +import { MainImage } from './components/MainImage.jsx'; +import { Prelude } from './components/Prelude.jsx'; +import { TopLineRoot, TopLineTitle } from './components/layout.jsx'; +import { Button } from '@a-type/ui/components/button'; +import { Divider } from '@a-type/ui/components/divider'; +import { + PageContent, + PageFixedArea, + PageRoot, +} from '@a-type/ui/components/layouts'; +import { Note } from '@a-type/ui/components/note'; +import { H1, H2, P } from '@a-type/ui/components/typography'; +import { HubRecipeData } from './types.js'; + +export function App({ + recipe: data, + url, +}: { + recipe: HubRecipeData; + url: string; +}) { + if (!data) { + return ( + + +

Not found

+
+
+ ); + } + + return ( + + +
+ + {data.mainImageUrl && ( + + )} + +

+ {data.title} +

+ +
+
+ {data.prelude && ( +
+ + + +
+ )} + +
+

Ingredients

+ + {data.ingredients.map((ingredient: any) => ( + +
+ {ingredient.text} +
+ {ingredient.note && ( + {ingredient.note} + )} +
+ ))} +
+
+ +
+

Instructions

+ + + +
+ + + + + +

+ Powered by{' '} + + Gnocchi + + , the freshest way to manage your weekly cooking +

+
+
+
+ ); +} diff --git a/apps/gnocchi/hub/src/components/IngredientList.tsx b/apps/gnocchi/hub/src/components/IngredientList.tsx new file mode 100644 index 00000000..0f9284b9 --- /dev/null +++ b/apps/gnocchi/hub/src/components/IngredientList.tsx @@ -0,0 +1,17 @@ +import { ReactNode } from 'react'; + +export interface IngredientListProps { + children?: ReactNode; +} + +export function IngredientList({ children }: IngredientListProps) { + return ; +} + +export function IngredientListItem({ children }: IngredientListProps) { + return ( +
  • +
    {children}
    +
  • + ); +} diff --git a/apps/gnocchi/hub/src/components/Instructions.tsx b/apps/gnocchi/hub/src/components/Instructions.tsx new file mode 100644 index 00000000..c60944dc --- /dev/null +++ b/apps/gnocchi/hub/src/components/Instructions.tsx @@ -0,0 +1,165 @@ +'use client'; + +import { Note } from '@a-type/ui/components/note'; +import { RichEditor } from '@a-type/ui/components/richEditor'; +// @ts-ignore +import { Node, mergeAttributes } from '@tiptap/core'; +import { + // @ts-ignore + NodeViewContent, + // @ts-ignore + NodeViewWrapper, + // @ts-ignore + ReactNodeViewRenderer, + // @ts-ignore + useEditor, +} from '@tiptap/react'; +import StarterKit from '@tiptap/starter-kit'; +// @ts-ignore +import Link from '@tiptap/extension-link'; + +export interface InstructionsProps { + instructions: any; +} + +export function Instructions({ instructions }: InstructionsProps) { + const editor = useEditor({ + extensions: [ + StarterKit.configure({ + history: false, + }), + Step, + SectionTitle, + Link, + ], + content: instructions, + editable: false, + }); + return ( +
    + +
    + ); +} + +const Step = Node.create({ + name: 'step', + group: 'block', + content: 'inline*', + defining: true, + priority: 1001, + + addAttributes() { + return { + id: { + default: null, + keepOnSplit: false, + rendered: false, + parseHTML: (element: HTMLElement) => element.getAttribute('data-id'), + renderHTML: (attributes: any) => { + return { + 'data-id': attributes.id, + }; + }, + }, + note: { + default: undefined, + keepOnSplit: false, + rendered: false, + parseHTML: (element: HTMLElement) => element.getAttribute('data-note'), + renderHTML: (attributes: any) => { + return { + 'data-note': attributes.note, + }; + }, + }, + }; + }, + + addOptions() { + return { + HTMLAttributes: {}, + }; + }, + + parseHTML() { + return [{ tag: 'p' }]; + }, + + renderHTML({ node, HTMLAttributes }: any) { + return [ + 'p', + mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, { + 'data-id': node.attrs.id, + }), + 0, + ]; + }, + + addNodeView() { + return ReactNodeViewRenderer(InstructionStepView); + }, +}); + +const SectionTitle = Node.create({ + name: 'sectionTitle', + content: 'inline*', + defining: true, + group: 'block', + + addAttributes() { + return { + id: { + default: null, + keepOnSplit: false, + rendered: false, + parseHTML: (element: HTMLElement) => element.getAttribute('data-id'), + renderHTML: (attributes: any) => { + return { + 'data-id': attributes.id, + }; + }, + }, + }; + }, + + parseHTML() { + return [{ tag: 'h2' }, { tag: 'h1' }, { tag: 'h3' }]; + }, + + renderHTML({ HTMLAttributes }: any) { + return [ + 'h2', + mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), + 0, + ]; + }, +}); + +function InstructionStepView({ + node, +}: { + node: { + attrs: { + id: string; + note?: string; + }; + }; +}) { + return ( + +
    + +
    + {node.attrs.note && ( + + {node.attrs.note} + + )} +
    + ); +} diff --git a/apps/gnocchi/hub/src/components/MainImage.tsx b/apps/gnocchi/hub/src/components/MainImage.tsx new file mode 100644 index 00000000..9c57e8eb --- /dev/null +++ b/apps/gnocchi/hub/src/components/MainImage.tsx @@ -0,0 +1,19 @@ +import { TopLineImage } from './layout.jsx'; +import { clsx } from '@a-type/ui'; + +export interface MainImageProps { + url: string; + title: string; +} + +export function MainImage({ url, title }: MainImageProps) { + return ( + + {`A + + ); +} diff --git a/apps/gnocchi/hub/src/components/Prelude.tsx b/apps/gnocchi/hub/src/components/Prelude.tsx new file mode 100644 index 00000000..f449fa95 --- /dev/null +++ b/apps/gnocchi/hub/src/components/Prelude.tsx @@ -0,0 +1,28 @@ +'use client'; + +import { Peek } from '@a-type/ui/components/peek'; +import { RichEditor } from '@a-type/ui/components/richEditor'; +// @ts-ignore +import { useEditor } from '@tiptap/react'; +import StarterKit from '@tiptap/starter-kit'; +import Link from '@tiptap/extension-link'; +import { clsx } from '@a-type/ui'; + +export interface PreludeProps { + content: any; +} + +export function Prelude({ content }: PreludeProps) { + const editor = useEditor({ + extensions: [StarterKit.configure({}), Link], + content, + editable: false, + }); + return ( + +
    + +
    +
    + ); +} diff --git a/apps/gnocchi/hub/src/components/layout.tsx b/apps/gnocchi/hub/src/components/layout.tsx new file mode 100644 index 00000000..bb092272 --- /dev/null +++ b/apps/gnocchi/hub/src/components/layout.tsx @@ -0,0 +1,24 @@ +import { clsx } from '@a-type/ui'; + +export const TopLineRoot = (props: any) => ( +
    +); + +export const TopLineTitle = (props: any) => ( +
    +); + +export const TopLineImage = (props: any) => ( +
    +); diff --git a/apps/gnocchi/hub/src/entry-client.tsx b/apps/gnocchi/hub/src/entry-client.tsx new file mode 100644 index 00000000..c4f961d8 --- /dev/null +++ b/apps/gnocchi/hub/src/entry-client.tsx @@ -0,0 +1,11 @@ +import ReactDOM from 'react-dom/client'; +import { App } from './App.jsx'; +import 'virtual:uno.css'; + +// @ts-ignore +const snapshot = window.__SNAPSHOT__; + +ReactDOM.hydrateRoot( + document.getElementById('root')!, + , +); diff --git a/apps/gnocchi/hub/src/entry-server.tsx b/apps/gnocchi/hub/src/entry-server.tsx new file mode 100644 index 00000000..94589683 --- /dev/null +++ b/apps/gnocchi/hub/src/entry-server.tsx @@ -0,0 +1,13 @@ +import React from 'react'; +import 'virtual:uno.css'; +import ReactDOMServer from 'react-dom/server'; +import { App } from './App.jsx'; +import { HubRecipeData } from './types.js'; + +export type { HubRecipeData } from './types.js'; + +export function serverRender(snapshot: HubRecipeData, url: string) { + return ReactDOMServer.renderToStaticMarkup( + , + ); +} diff --git a/apps/gnocchi/hub/src/types.ts b/apps/gnocchi/hub/src/types.ts new file mode 100644 index 00000000..729e0d6b --- /dev/null +++ b/apps/gnocchi/hub/src/types.ts @@ -0,0 +1,11 @@ +export interface HubRecipeData { + id: string; + title: string; + prelude: any; + mainImageUrl: string; + ingredients: any[]; + instructions: any[]; + publisher: { + fullName: string; + }; +} diff --git a/apps/gnocchi/hub/tsconfig.json b/apps/gnocchi/hub/tsconfig.json new file mode 100644 index 00000000..4e82bc06 --- /dev/null +++ b/apps/gnocchi/hub/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../../tsconfig.json", + "compilerOptions": { + "jsx": "preserve", + "outDir": "./dist/server", + "rootDir": "./src", + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + }, + "types": ["vite/client"] + }, + "include": ["src"] +} diff --git a/apps/gnocchi/hub/uno.config.ts b/apps/gnocchi/hub/uno.config.ts new file mode 100644 index 00000000..f5d41c05 --- /dev/null +++ b/apps/gnocchi/hub/uno.config.ts @@ -0,0 +1,31 @@ +// uno.config.ts +import { defineConfig } from 'unocss'; +import variantGroup from '@unocss/transformer-variant-group'; +import atype from '@a-type/ui/uno-preset'; + +export default defineConfig({ + presets: [atype()], + transformers: [variantGroup()], + preflights: [ + { + getCSS: () => ` + @font-face { + font-family: "Inter"; + src: url("https://resources.biscuits.club/fonts/Inter-VariableFont_slnt,wght.ttf") format("truetype-variations"); + font-weight: 1 999; + font-style: oblique 0deg 5deg; + font-display: block; + } + + html, body, #root { + display: flex; + flex-direction: column; + } + + #root { + flex: 1; + } + `, + }, + ], +}); diff --git a/apps/gnocchi/hub/vite.config.ts b/apps/gnocchi/hub/vite.config.ts new file mode 100644 index 00000000..4b1c0922 --- /dev/null +++ b/apps/gnocchi/hub/vite.config.ts @@ -0,0 +1,38 @@ +import { viteCommonjs } from '@originjs/vite-plugin-commonjs'; +import react from '@vitejs/plugin-react-swc'; +import UnoCSS from 'unocss/vite'; +import { fileURLToPath } from 'url'; +import { defineConfig } from 'vite'; + +// https://vitejs.dev/config/ +export default defineConfig(({ command, mode }) => ({ + plugins: [UnoCSS(), react(), viteCommonjs()], + base: + mode === 'production' + ? 'https://recipes.gnocchi.biscuits.club/' + : 'http://localhost:6124/gnocchi/hubRecipe/', + optimizeDeps: { + exclude: ['@a-type/ui'], + include: [ + 'react/jsx-runtime', + 'react', + 'react-dom', + 'react-dom/client', + 'formik', + 'hoist-non-react-statics', + 'graphql', + ], + }, + resolve: { + conditions: + mode === 'production' + ? ['production', 'import', 'module', 'browser', 'default'] + : ['development', 'import', 'module', 'browser', 'default'], + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)), + }, + }, + build: { + sourcemap: true, + }, +})); diff --git a/apps/gnocchi/web/src/components/recipes/viewer/RecipeOverview.tsx b/apps/gnocchi/web/src/components/recipes/viewer/RecipeOverview.tsx index 8e678ff6..2d189c3c 100644 --- a/apps/gnocchi/web/src/components/recipes/viewer/RecipeOverview.tsx +++ b/apps/gnocchi/web/src/components/recipes/viewer/RecipeOverview.tsx @@ -44,6 +44,7 @@ import { AddImagePrompt } from '@/components/recipes/cook/AddImagePrompt.jsx'; import { CookingActionBar } from '@/components/recipes/cook/CookingActionBar.jsx'; import { useWakeLock } from '@/hooks/useWakeLock.js'; import { Icon } from '@/components/icons/Icon.jsx'; +import { RecipePublishControl } from './RecipePublishControl.jsx'; export interface RecipeOverviewProps { slug: string; @@ -100,6 +101,7 @@ function RecipeOverviewContent({ recipe }: { recipe: Recipe }) {

    {title}

    +
    diff --git a/apps/gnocchi/web/src/components/recipes/viewer/RecipePublishControl.tsx b/apps/gnocchi/web/src/components/recipes/viewer/RecipePublishControl.tsx new file mode 100644 index 00000000..dd5b15fd --- /dev/null +++ b/apps/gnocchi/web/src/components/recipes/viewer/RecipePublishControl.tsx @@ -0,0 +1,225 @@ +import { TextLink } from '@/components/nav/Link.jsx'; +import { hooks } from '@/stores/groceries/index.js'; +import { Button } from '@a-type/ui/components/button'; +import { Checkbox } from '@a-type/ui/components/checkbox'; +import { + Dialog, + DialogTrigger, + DialogContent, + DialogClose, + DialogActions, + DialogTitle, +} from '@a-type/ui/components/dialog'; +import { Tooltip } from '@a-type/ui/components/tooltip'; +import { P } from '@a-type/ui/components/typography'; +import { + graphql, + useCanSync, + useFeatureFlag, + useMutation, + useQuery, +} from '@biscuits/client'; +import { Recipe } from '@gnocchi.biscuits/verdant'; +import { format } from 'date-fns/esm'; +import { useState } from 'react'; +import { toast } from 'react-hot-toast'; + +export interface RecipePublishControlProps { + recipe: Recipe; +} + +const publishedQuery = graphql(` + query RecipePublishData($recipeId: ID!) { + publishedRecipe(id: $recipeId) { + id + publishedAt + url + } + } +`); + +const publishMutation = graphql(` + mutation PublishRecipe($input: PublishRecipeInput!) { + publishRecipe(input: $input) { + id + publishedAt + } + } +`); + +const unpublishMutation = graphql(` + mutation UnpublishRecipe($recipeId: ID!) { + unpublishRecipe(recipeId: $recipeId) { + id + publishedAt + } + } +`); + +export function RecipePublishControl({ recipe }: RecipePublishControlProps) { + const enabled = useFeatureFlag('hub'); + const { data, loading, refetch } = useQuery(publishedQuery, { + variables: { recipeId: recipe.get('id') }, + }); + + const { url } = hooks.useWatch(recipe); + const notAllowed = !!url; + + const canPublish = useCanSync(); + + if (!canPublish || !enabled) return null; + + if (loading || !data) { + return ( + + ); + } + + if (notAllowed) { + return ( + + + + ); + } + + const publishedRecipe = data.publishedRecipe; + const isPublished = !!publishedRecipe; + + return ( + + + + + {publishedRecipe ? ( + + ) : ( + + )} + + ); +} + +function PublishedContent({ + recipe, + publishedRecipe: { publishedAt, url }, + onChange, +}: { + recipe: Recipe; + publishedRecipe: { publishedAt: string; url: string }; + onChange?: () => void; +}) { + const { id } = hooks.useWatch(recipe); + const [unpublish] = useMutation(unpublishMutation, { + onCompleted: onChange, + }); + + const publishDate = new Date(publishedAt); + + return ( + + Manage publication +

    Published {format(publishDate, 'PPp')}

    + + View on the web + + + + + + + +
    + ); +} + +function UnpublishedContent({ + recipe, + onChange, +}: { + recipe: Recipe; + onChange?: () => void; +}) { + const { id, slug } = hooks.useWatch(recipe); + const [consent, setConsent] = useState(false); + const [publish, { loading: publishing }] = useMutation(publishMutation, { + onCompleted: onChange, + }); + + return ( + + Publish your recipe +
    +

    + Published recipes can be shared with others on the web. You retain + full rights to your recipe and can unpublish anytime +

    +
    + setConsent(c !== false)} + id="publish-consent" + /> + +
    +
    + + + + + + +
    + ); +} diff --git a/cdk/bin/cdk.ts b/cdk/bin/cdk.ts index 1e3fa8ec..7f61ce5c 100644 --- a/cdk/bin/cdk.ts +++ b/cdk/bin/cdk.ts @@ -1,8 +1,9 @@ #!/usr/bin/env node import 'source-map-support/register'; import * as cdk from 'aws-cdk-lib'; -import { CdkStack } from '../lib/cdk-stack.js'; +import { AppStack } from '../lib/AppStack.js'; import { apps } from '@biscuits/apps'; +import { SSGStack } from '../lib/SSGStack.js'; const app = new cdk.App(); @@ -37,7 +38,7 @@ const allApps = [ ]; for (const appManifest of allApps) { - new CdkStack(app, appManifest.id, { + new AppStack(app, appManifest.id, { ...common, appId: appManifest.id, tags: { @@ -45,3 +46,22 @@ for (const appManifest of allApps) { }, }); } + +const ssg = [ + { + id: 'gnocchi-hub', + subdomain: 'recipes.gnocchi', + renderPath: '/gnocchi/hubRecipe', + }, +]; + +for (const ssgManifest of ssg) { + new SSGStack(app, ssgManifest.id, { + ...common, + subdomain: ssgManifest.subdomain, + renderPath: ssgManifest.renderPath, + tags: { + subdomain: ssgManifest.subdomain, + }, + }); +} diff --git a/cdk/lib/cdk-stack.ts b/cdk/lib/AppStack.ts similarity index 89% rename from cdk/lib/cdk-stack.ts rename to cdk/lib/AppStack.ts index ca4c8273..fd5efb56 100644 --- a/cdk/lib/cdk-stack.ts +++ b/cdk/lib/AppStack.ts @@ -1,8 +1,6 @@ import * as cdk from 'aws-cdk-lib'; -import { CfnDistribution, PriceClass } from 'aws-cdk-lib/aws-cloudfront'; +import { PriceClass } from 'aws-cdk-lib/aws-cloudfront'; import { Construct } from 'constructs'; -import { S3Bucket } from './S3Bucket'; -import { CloudFrontDistribution } from './CloudfrontDistribution'; import { TLSCertificate } from './TLSCertificate'; import { CloudFrontToS3 } from '@aws-solutions-constructs/aws-cloudfront-s3'; import { BlockPublicAccess } from 'aws-cdk-lib/aws-s3'; @@ -10,13 +8,13 @@ import { addRepositoryVariable } from './github'; import { createDnsRecord } from './porkbun'; import { waitForCertificateValidation } from './aws'; -export interface CdkStackProps extends cdk.StackProps { +export interface AppStackProps extends cdk.StackProps { // add props here appId: string; } -export class CdkStack extends cdk.Stack { - constructor(scope: Construct, id: string, props: CdkStackProps) { +export class AppStack extends cdk.Stack { + constructor(scope: Construct, id: string, props: AppStackProps) { super(scope, id, props); // The code that defines your stack goes here diff --git a/cdk/lib/CloudfrontDistribution.ts b/cdk/lib/CloudfrontDistribution.ts deleted file mode 100644 index 00f47c59..00000000 --- a/cdk/lib/CloudfrontDistribution.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { Certificate } from 'aws-cdk-lib/aws-certificatemanager'; -import * as cloudfront from 'aws-cdk-lib/aws-cloudfront'; -import { S3Origin } from 'aws-cdk-lib/aws-cloudfront-origins'; -import { Effect, PolicyStatement, ServicePrincipal } from 'aws-cdk-lib/aws-iam'; -import { Bucket } from 'aws-cdk-lib/aws-s3'; -import { Construct } from 'constructs'; - -export class CloudFrontDistribution extends cloudfront.Distribution { - constructor( - scope: Construct, - bucket: Bucket, - certificate: Certificate, - appId: string, - ) { - super(scope, `${appId}_distribution`, { - defaultBehavior: { - origin: new S3Origin(bucket), - viewerProtocolPolicy: cloudfront.ViewerProtocolPolicy.REDIRECT_TO_HTTPS, - compress: true, - }, - domainNames: [`${appId}.biscuits.club`], - certificate, - // defaultRootObject: 'index.html', - priceClass: cloudfront.PriceClass.PRICE_CLASS_100, - comment: `${appId} app distribution`, - }); - - const oac = new cloudfront.CfnOriginAccessControl(this, `${appId}_oac`, { - originAccessControlConfig: { - name: `${appId}.biscuits.club-oac`, - originAccessControlOriginType: 's3', - signingBehavior: 'always', - signingProtocol: 'sigv4', - }, - }); - - const allowOriginAccessIdentityPolicy = new PolicyStatement({ - actions: ['s3:GetObject'], - principals: [new ServicePrincipal(this.distributionId)], - effect: Effect.ALLOW, - resources: [oac.attrId], - }); - - const allowCloudFrontReadOnlyPolicy = new PolicyStatement({ - actions: ['s3:GetObject'], - principals: [new ServicePrincipal('cloudfront.amazonaws.com')], - effect: Effect.ALLOW, - conditions: { - StringEquals: { - 'AWS:SourceArn': this.distributionId, - }, - }, - }); - - bucket.addToResourcePolicy(allowCloudFrontReadOnlyPolicy); - bucket.addToResourcePolicy(allowOriginAccessIdentityPolicy); - - const cfnDistribution = this.node - .defaultChild as cloudfront.CfnDistribution; - cfnDistribution.addPropertyOverride( - 'DistributionConfig.Origins.0.OriginAccessControlId', - oac.getAtt('Id'), - ); - // remove origin access identity - cfnDistribution.addPropertyDeletionOverride( - 'DistributionConfig.Origins.0.S3OriginConfig.OriginAccessIdentity', - ); - } -} diff --git a/cdk/lib/CloudfrontToServer.ts b/cdk/lib/CloudfrontToServer.ts new file mode 100644 index 00000000..91006d8d --- /dev/null +++ b/cdk/lib/CloudfrontToServer.ts @@ -0,0 +1,31 @@ +import { Certificate } from 'aws-cdk-lib/aws-certificatemanager'; +import * as cloudfront from 'aws-cdk-lib/aws-cloudfront'; +import { HttpOrigin } from 'aws-cdk-lib/aws-cloudfront-origins'; +import { Construct } from 'constructs'; + +export class CloudfrontToServer extends cloudfront.Distribution { + constructor( + scope: Construct, + server: { + origin: string; + path: string; + }, + certificate: Certificate, + subdomain: string, + ) { + super(scope, `${subdomain}_distribution`, { + defaultBehavior: { + origin: new HttpOrigin(server.origin, { + originPath: server.path, + }), + viewerProtocolPolicy: cloudfront.ViewerProtocolPolicy.REDIRECT_TO_HTTPS, + compress: true, + }, + domainNames: [`${subdomain}.biscuits.club`], + certificate, + // defaultRootObject: 'index.html', + priceClass: cloudfront.PriceClass.PRICE_CLASS_200, + comment: `${subdomain} app distribution`, + }); + } +} diff --git a/cdk/lib/S3Bucket.ts b/cdk/lib/S3Bucket.ts deleted file mode 100644 index 8fd20b43..00000000 --- a/cdk/lib/S3Bucket.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { RemovalPolicy } from 'aws-cdk-lib'; -import { BlockPublicAccess, Bucket } from 'aws-cdk-lib/aws-s3'; -import { Construct } from 'constructs'; - -export class S3Bucket extends Bucket { - constructor(scope: Construct, appId: string) { - super(scope, `${appId}_bucket`, { - // websiteIndexDocument: 'index.html', - blockPublicAccess: BlockPublicAccess.BLOCK_ALL, - versioned: false, - removalPolicy: RemovalPolicy.DESTROY, - bucketName: `${appId}.biscuits.club`, - // publicReadAccess: false, - }); - } -} diff --git a/cdk/lib/SSGStack.ts b/cdk/lib/SSGStack.ts new file mode 100644 index 00000000..0d95e9d3 --- /dev/null +++ b/cdk/lib/SSGStack.ts @@ -0,0 +1,35 @@ +import { CfnOutput, Stack, StackProps } from 'aws-cdk-lib'; +import { Construct } from 'constructs'; +import { TLSCertificate } from './TLSCertificate'; +import { CloudfrontToServer } from './CloudfrontToServer'; + +export interface SSGStackProps extends StackProps { + subdomain: string; + renderPath: string; +} + +export class SSGStack extends Stack { + constructor(scope: Construct, id: string, props: SSGStackProps) { + super(scope, id, props); + + const certificate = new TLSCertificate(this, props.subdomain); + + new CfnOutput(this, 'CertificateArn', { + value: certificate.certificateArn, + }); + + const distribution = new CloudfrontToServer( + this, + { + origin: `api.biscuits.club`, + path: props.renderPath, + }, + certificate, + props.subdomain, + ); + + new CfnOutput(this, 'DistributionId', { + value: distribution.distributionId, + }); + } +} diff --git a/package.json b/package.json index e3b14306..b4d9c98f 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "aws-cdk": "2.140.0", "cp-tpl": "1.0.9", "eslint": "^8", - "eslint-config-next": "14.0.3", + "eslint-plugin-react": "7.34.1", "husky": "^8.0.3", "kill-port": "2.0.1", "prettier": "3.2.5", diff --git a/packages/client/src/featureFlags.ts b/packages/client/src/featureFlags.ts index c2ec0505..1f06799f 100644 --- a/packages/client/src/featureFlags.ts +++ b/packages/client/src/featureFlags.ts @@ -1,7 +1,7 @@ import { useMe } from './graphql.js'; export const featureFlags = { - multipliedIngredients: false, + hub: false, } as const; export type FeatureFlagName = keyof typeof featureFlags; diff --git a/packages/client/src/graphql-env.d.ts b/packages/client/src/graphql-env.d.ts index 17dbf9bc..3936cd4a 100644 --- a/packages/client/src/graphql-env.d.ts +++ b/packages/client/src/graphql-env.d.ts @@ -1078,6 +1078,30 @@ export type introspection = { } ] }, + { + "name": "publishRecipe", + "type": { + "kind": "NON_NULL", + "ofType": { + "kind": "OBJECT", + "name": "PublishedRecipe", + "ofType": null + } + }, + "args": [ + { + "name": "input", + "type": { + "kind": "NON_NULL", + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PublishRecipeInput", + "ofType": null + } + } + } + ] + }, { "name": "removeFoodName", "type": { @@ -1156,6 +1180,52 @@ export type introspection = { } ] }, + { + "name": "setFeatureFlag", + "type": { + "kind": "NON_NULL", + "ofType": { + "kind": "OBJECT", + "name": "Plan", + "ofType": null + } + }, + "args": [ + { + "name": "enabled", + "type": { + "kind": "NON_NULL", + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + } + }, + { + "name": "flagName", + "type": { + "kind": "NON_NULL", + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + { + "name": "id", + "type": { + "kind": "NON_NULL", + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + ] + }, { "name": "setSendEmailUpdates", "type": { @@ -1260,6 +1330,30 @@ export type introspection = { } ] }, + { + "name": "unpublishRecipe", + "type": { + "kind": "NON_NULL", + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "args": [ + { + "name": "recipeId", + "type": { + "kind": "NON_NULL", + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + ] + }, { "name": "updateCategory", "type": { @@ -1912,6 +2006,77 @@ export type introspection = { ], "interfaces": [] }, + { + "kind": "INPUT_OBJECT", + "name": "PublishRecipeInput", + "inputFields": [ + { + "name": "id", + "type": { + "kind": "NON_NULL", + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + { + "name": "slug", + "type": { + "kind": "NON_NULL", + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + ] + }, + { + "kind": "OBJECT", + "name": "PublishedRecipe", + "fields": [ + { + "name": "id", + "type": { + "kind": "NON_NULL", + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + }, + "args": [] + }, + { + "name": "publishedAt", + "type": { + "kind": "NON_NULL", + "ofType": { + "kind": "SCALAR", + "name": "DateTime", + "ofType": null + } + }, + "args": [] + }, + { + "name": "url", + "type": { + "kind": "NON_NULL", + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "args": [] + } + ], + "interfaces": [] + }, { "kind": "OBJECT", "name": "Query", @@ -2262,6 +2427,27 @@ export type introspection = { } ] }, + { + "name": "publishedRecipe", + "type": { + "kind": "OBJECT", + "name": "PublishedRecipe", + "ofType": null + }, + "args": [ + { + "name": "id", + "type": { + "kind": "NON_NULL", + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + } + ] + }, { "name": "recipeScan", "type": { diff --git a/packages/db/src/migrations/index.ts b/packages/db/src/migrations/index.ts index e4d4eb6f..84309393 100644 --- a/packages/db/src/migrations/index.ts +++ b/packages/db/src/migrations/index.ts @@ -1,25 +1,27 @@ -import * as v0001 from './v0001.js'; -import * as v0002 from './v0002_add_member_limit.js'; +import * as v0001 from "./v0001.js"; +import * as v0002 from "./v0002_add_member_limit.js"; -import * as v0003 from './v0003_drop_unique_invite_constraint.js'; +import * as v0003 from "./v0003_drop_unique_invite_constraint.js"; -import * as v0004 from './v0004_push_notifications_and_changelog.js'; +import * as v0004 from "./v0004_push_notifications_and_changelog.js"; -import * as v0005 from './v0005_push_app_id.js'; +import * as v0005 from "./v0005_push_app_id.js"; -import * as v0006 from './v0006_foods.js'; +import * as v0006 from "./v0006_foods.js"; -import * as v0007 from './v0007_changelog_app_ids.js'; +import * as v0007 from "./v0007_changelog_app_ids.js"; -import * as v0008 from './v0008_more-indexes.js'; +import * as v0008 from "./v0008_more-indexes.js"; -import * as v0009 from './v0009_food_name_drop_id.js'; +import * as v0009 from "./v0009_food_name_drop_id.js"; -import * as v0010 from './v0010_add_user_preferences.js'; +import * as v0010 from "./v0010_add_user_preferences.js"; -import * as v0011 from './v0011_user_tos.js'; +import * as v0011 from "./v0011_user_tos.js"; -import * as v0012 from './v0012_user_notify_of_new_apps.js'; +import * as v0012 from "./v0012_user_notify_of_new_apps.js"; + +import * as v0013 from "./v0013_published_recipes.js"; export default { v0001, v0002, @@ -33,4 +35,5 @@ export default { v0010, v0011, v0012, + v0013, }; diff --git a/packages/db/src/migrations/v0013_published_recipes.ts b/packages/db/src/migrations/v0013_published_recipes.ts new file mode 100644 index 00000000..f7fb3677 --- /dev/null +++ b/packages/db/src/migrations/v0013_published_recipes.ts @@ -0,0 +1,34 @@ +import { Kysely, sql } from 'kysely'; + +// published recipes + +export async function up(db: Kysely) { + await db.schema + .createTable('PublishedRecipe') + .addColumn('id', 'text', (b) => b.primaryKey()) + .addColumn('createdAt', 'datetime', (col) => + col.notNull().defaultTo(sql`CURRENT_TIMESTAMP`), + ) + .addColumn('updatedAt', 'datetime', (col) => + col.notNull().defaultTo(sql`CURRENT_TIMESTAMP`), + ) + .addColumn('publishedAt', 'datetime') + .addColumn('publishedBy', 'text', (col) => + col.notNull().references('User.id'), + ) + .addColumn('planId', 'text', (col) => col.notNull()) + .addColumn('slug', 'text', (col) => col.notNull()) + .addUniqueConstraint('PublishedRecipe_planId_slug_unique', [ + 'planId', + 'slug', + ]) + .execute(); + + await db.schema + .createIndex('PublishedRecipe_slug') + .on('PublishedRecipe') + .columns(['planId', 'slug']) + .execute(); +} + +export async function down(db: Kysely) {} diff --git a/packages/db/src/tables.ts b/packages/db/src/tables.ts index 47c02664..043562cd 100644 --- a/packages/db/src/tables.ts +++ b/packages/db/src/tables.ts @@ -19,6 +19,7 @@ export interface Database { FoodName: FoodNameTable; FoodCategoryAssignment: FoodCategoryAssignmentTable; FoodCategory: FoodCategoryTable; + PublishedRecipe: PublishedRecipeTable; } export interface UserTable { @@ -92,7 +93,11 @@ export interface PlanTable { > | null; subscriptionExpiresAt: Date | null; subscriptionCanceledAt: Date | null; - featureFlags: ColumnType; + featureFlags: ColumnType< + Record, + Record | undefined, + Record + >; memberLimit: Generated; } @@ -239,3 +244,19 @@ export interface FoodCategoryTable { export type FoodCategory = Selectable; export type NewFoodCategory = Insertable; export type FoodCategoryUpdate = Updateable; + +export interface PublishedRecipeTable { + id: string; + createdAt: ColumnType; + updatedAt: ColumnType; + + publishedAt: Date; + publishedBy: string; + + planId: string; + slug: string; +} + +export type PublishedRecipe = Selectable; +export type NewPublishedRecipe = Insertable; +export type PublishedRecipeUpdate = Updateable; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5b4927f3..236a9b47 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,9 +20,9 @@ importers: eslint: specifier: ^8 version: 8.55.0 - eslint-config-next: - specifier: 14.0.3 - version: 14.0.3(eslint@8.55.0)(typescript@5.4.5) + eslint-plugin-react: + specifier: 7.34.1 + version: 7.34.1(eslint@8.55.0) husky: specifier: ^8.0.3 version: 8.0.3 @@ -39,86 +39,63 @@ importers: specifier: ^5.4.5 version: 5.4.5 - apps/bible/verdant: + apps/gnocchi/conversion: dependencies: - '@verdant-web/cli': - specifier: ^4.3.2 - version: 4.4.0 - '@verdant-web/common': - specifier: ^2.3.0 - version: 2.3.1 - '@verdant-web/react': - specifier: ^30.0.0 - version: 30.0.0(@verdant-web/store@3.6.3)(react@18.2.0) - '@verdant-web/store': - specifier: ^3.5.1 - version: 3.6.3 - cuid: - specifier: ^2.1.8 - version: 2.1.8 - react: - specifier: ^18.2.0 - version: 18.2.0 + convert-units: + specifier: 3.0.0-beta.5 + version: 3.0.0-beta.5 + parse-fraction: + specifier: ^1.2.1 + version: 1.2.1 + pluralize: + specifier: ^8.0.0 + version: 8.0.0 + devDependencies: + '@types/pluralize': + specifier: ^0.0.29 + version: 0.0.29 + vitest: + specifier: ^0.22.1 + version: 0.22.1 - apps/bible/web: + apps/gnocchi/hub: dependencies: '@a-type/ui': - specifier: 0.8.15 - version: 0.8.15(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + specifier: ^0.8.15 + version: 0.8.16(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@a-type/utils': - specifier: 1.1.0 + specifier: ^1.0.8 version: 1.1.0 - '@biscuits/client': - specifier: workspace:* - version: link:../../../packages/client - '@marginalia.biscuits/verdant': - specifier: workspace:* - version: link:../verdant - '@react-spring/web': - specifier: ^9.7.3 - version: 9.7.3(react-dom@18.2.0)(react@18.2.0) - '@tanstack/react-query': - specifier: 5.39.0 - version: 5.39.0(react@18.2.0) - '@verdant-web/react-router': - specifier: ^0.6.2 - version: 0.6.2(react@18.2.0) - classnames: - specifier: ^2.5.0 - version: 2.5.1 + '@tiptap/core': + specifier: ^2.2.4 + version: 2.4.0(@tiptap/pm@2.4.0) + '@tiptap/extension-document': + specifier: ^2.2.4 + version: 2.4.0(@tiptap/core@2.4.0) + '@tiptap/extension-link': + specifier: ^2.2.4 + version: 2.2.4(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0) + '@tiptap/extension-paragraph': + specifier: ^2.2.4 + version: 2.4.0(@tiptap/core@2.4.0) + '@tiptap/pm': + specifier: ^2.2.4 + version: 2.4.0 + '@tiptap/react': + specifier: ^2.2.4 + version: 2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0)(react-dom@18.2.0)(react@18.2.0) + '@tiptap/starter-kit': + specifier: ^2.2.4 + version: 2.4.0(@tiptap/pm@2.4.0) + prosemirror-model: + specifier: 1.19.4 + version: 1.19.4 react: specifier: 18.2.0 version: 18.2.0 react-dom: specifier: 18.2.0 version: 18.2.0(react@18.2.0) - react-hot-toast: - specifier: ^2.4.1 - version: 2.4.1(csstype@3.1.3)(react-dom@18.2.0)(react@18.2.0) - unocss: - specifier: 0.60.3 - version: 0.60.3(postcss@8.4.38)(rollup@2.79.1)(vite@5.2.11) - valtio: - specifier: ^1.13.2 - version: 1.13.2(@types/react@18.2.79)(react@18.2.0) - workbox-core: - specifier: ^7.1.0 - version: 7.1.0 - workbox-expiration: - specifier: ^7.1.0 - version: 7.1.0 - workbox-precaching: - specifier: ^7.1.0 - version: 7.1.0 - workbox-routing: - specifier: ^7.1.0 - version: 7.1.0 - workbox-strategies: - specifier: ^7.1.0 - version: 7.1.0 - workbox-window: - specifier: ^7.1.0 - version: 7.1.0 devDependencies: '@originjs/vite-plugin-commonjs': specifier: ^1.0.3 @@ -129,40 +106,27 @@ importers: '@types/react-dom': specifier: ^18.2.25 version: 18.2.25 - '@types/unist': - specifier: ^3.0.2 - version: 3.0.2 '@unocss/transformer-variant-group': specifier: ^0.58.0 version: 0.58.8 '@vitejs/plugin-react-swc': - specifier: 3.5.0 - version: 3.5.0(vite@5.2.11) + specifier: ^3.5.0 + version: 3.6.0(vite@5.2.11) + concurrently: + specifier: ^7.5.0 + version: 7.6.0 + dotenv: + specifier: ^16.0.1 + version: 16.3.1 + typescript: + specifier: ^5.4.5 + version: 5.4.5 + unocss: + specifier: ^0.58.0 + version: 0.58.8(postcss@8.4.38)(vite@5.2.11) vite: - specifier: 5.2.11 + specifier: ^5.0.10 version: 5.2.11(@types/node@20.12.7) - vite-plugin-pwa: - specifier: ^0.19.8 - version: 0.19.8(vite@5.2.11)(workbox-build@7.1.0)(workbox-window@7.1.0) - - apps/gnocchi/conversion: - dependencies: - convert-units: - specifier: 3.0.0-beta.5 - version: 3.0.0-beta.5 - parse-fraction: - specifier: ^1.2.1 - version: 1.2.1 - pluralize: - specifier: ^8.0.0 - version: 8.0.0 - devDependencies: - '@types/pluralize': - specifier: ^0.0.29 - version: 0.0.29 - vitest: - specifier: ^0.22.1 - version: 0.22.1 apps/gnocchi/scanning: dependencies: @@ -467,7 +431,7 @@ importers: version: 5.1.5 vite-plugin-checker: specifier: ^0.6.2 - version: 0.6.4(typescript@5.4.5)(vite@5.1.5) + version: 0.6.4(eslint@8.55.0)(typescript@5.4.5)(vite@5.1.5) vite-plugin-circular-dependency: specifier: ^0.2.1 version: 0.2.1(rollup@2.79.1) @@ -576,7 +540,7 @@ importers: version: 3.5.0(vite@5.2.11) vite: specifier: 5.2.11 - version: 5.2.11 + version: 5.2.11(@types/node@20.12.7) vite-plugin-pwa: specifier: ^0.19.8 version: 0.19.8(vite@5.2.11)(workbox-build@7.1.0)(workbox-window@7.1.0) @@ -815,10 +779,10 @@ importers: dependencies: '@a-type/ui': specifier: ^0.8.16 - version: 0.8.16(react-dom@18.3.1)(react@18.3.1) + version: 0.8.16(react-dom@18.2.0)(react@18.2.0) '@astrojs/check': specifier: ^0.5.10 - version: 0.5.10(typescript@5.4.5) + version: 0.5.10(prettier@3.2.5)(typescript@5.4.5) '@astrojs/mdx': specifier: ^2.3.1 version: 2.3.1(astro@4.7.1) @@ -902,7 +866,7 @@ importers: version: 1.3.4 '@apollo/client': specifier: ^3.9.9 - version: 3.9.9(@types/react@18.2.79)(graphql@16.8.1)(react-dom@18.3.1)(react@18.2.0) + version: 3.9.9(@types/react@18.2.79)(graphql@16.8.1)(react-dom@18.2.0)(react@18.2.0) '@biscuits/apps': specifier: workspace:* version: link:../apps @@ -930,7 +894,7 @@ importers: devDependencies: '@a-type/ui': specifier: ^0.8.16 - version: 0.8.16(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + version: 0.8.16(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@types/react': specifier: 18.2.79 version: 18.2.79 @@ -993,6 +957,12 @@ importers: '@a-type/utils': specifier: 1.1.0 version: 1.1.0 + '@aws-sdk/client-cloudfront': + specifier: ^3.583.0 + version: 3.583.0 + '@aws-sdk/client-s3': + specifier: 3.583.0 + version: 3.583.0 '@biscuits/apps': specifier: workspace:* version: link:../packages/apps @@ -1005,6 +975,9 @@ importers: '@biscuits/libraries': specifier: workspace:* version: link:../packages/libraries + '@gnocchi.biscuits/hub': + specifier: workspace:* + version: link:../apps/gnocchi/hub '@gnocchi.biscuits/scanning': specifier: workspace:* version: link:../apps/gnocchi/scanning @@ -1041,6 +1014,9 @@ importers: better-sqlite3: specifier: ^9.1.1 version: 9.1.1 + change-case: + specifier: 5.4.4 + version: 5.4.4 cookie: specifier: ^0.6.0 version: 0.6.0 @@ -1267,13 +1243,13 @@ packages: - encoding - supports-color - /@a-type/ui@0.8.15(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-8+bUAx2eZQULjARWeJqx65qck0xtqrKW66sUo0yg85qMoS2Rys5vt+J1PvQD/hq+YTwSer22Lhtwng6G/iTdeQ==} + /@a-type/ui@0.8.16(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-xU/3xMYVrLoFbNEHKwv5yN1YTIalM8BlwQqSh8BvlPOs933Zfw1BLYWHFIVq1VC4lhtK6qjFY5GjghoPITKeIg==} peerDependencies: react: ^18 react-dom: ^18 dependencies: - '@a-type/utils': 1.0.8 + '@a-type/utils': 1.1.0 '@radix-ui/react-accordion': 1.1.2(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-checkbox': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-collapsible': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) @@ -1293,16 +1269,16 @@ packages: '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-tooltip': 1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@react-spring/web': 9.7.3(react-dom@18.2.0)(react@18.2.0) - '@tiptap/core': 2.2.4(@tiptap/pm@2.2.4) - '@tiptap/extension-document': 2.2.4(@tiptap/core@2.2.4) - '@tiptap/extension-paragraph': 2.2.4(@tiptap/core@2.2.4) - '@tiptap/pm': 2.2.4 - '@tiptap/react': 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)(react-dom@18.2.0)(react@18.2.0) - '@tiptap/starter-kit': 2.2.4(@tiptap/pm@2.2.4) + '@tiptap/core': 2.4.0(@tiptap/pm@2.4.0) + '@tiptap/extension-document': 2.4.0(@tiptap/core@2.4.0) + '@tiptap/extension-paragraph': 2.4.0(@tiptap/core@2.4.0) + '@tiptap/pm': 2.4.0 + '@tiptap/react': 2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0)(react-dom@18.2.0)(react@18.2.0) + '@tiptap/starter-kit': 2.4.0(@tiptap/pm@2.4.0) '@use-gesture/react': 10.3.0(react@18.2.0) browser-image-resizer: 2.4.1 calendar-blocks: 0.3.1(react@18.2.0) - clsx: 2.1.1 + clsx: 2.1.0 color-interpolate: 1.0.5 color-parse: 2.0.2 color-space: 2.0.1 @@ -1317,42 +1293,42 @@ packages: - '@types/react-dom' dev: false - /@a-type/ui@0.8.16(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): + /@a-type/ui@0.8.16(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-xU/3xMYVrLoFbNEHKwv5yN1YTIalM8BlwQqSh8BvlPOs933Zfw1BLYWHFIVq1VC4lhtK6qjFY5GjghoPITKeIg==} peerDependencies: react: ^18 react-dom: ^18 dependencies: - '@a-type/utils': 1.0.8 + '@a-type/utils': 1.1.0 '@radix-ui/react-accordion': 1.1.2(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-checkbox': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-collapsible': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-context-menu': 2.1.5(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-context-menu': 2.1.5(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dialog': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-dropdown-menu': 2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dropdown-menu': 2.0.6(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-icons': 1.3.0(react@18.2.0) - '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-popover': 1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-radio-group': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-select': 2.0.0(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-menu': 2.0.6(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popover': 1.0.7(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-radio-group': 1.1.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-select': 2.0.0(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slider': 1.1.2(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-switch': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-tabs': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-tabs': 1.0.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-toast': 1.1.5(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-tooltip': 1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle-group': 1.0.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-tooltip': 1.0.7(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@react-spring/web': 9.7.3(react-dom@18.2.0)(react@18.2.0) - '@tiptap/core': 2.2.4(@tiptap/pm@2.2.4) - '@tiptap/extension-document': 2.2.4(@tiptap/core@2.2.4) - '@tiptap/extension-paragraph': 2.2.4(@tiptap/core@2.2.4) - '@tiptap/pm': 2.2.4 - '@tiptap/react': 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)(react-dom@18.2.0)(react@18.2.0) - '@tiptap/starter-kit': 2.2.4(@tiptap/pm@2.2.4) + '@tiptap/core': 2.4.0(@tiptap/pm@2.4.0) + '@tiptap/extension-document': 2.4.0(@tiptap/core@2.4.0) + '@tiptap/extension-paragraph': 2.4.0(@tiptap/core@2.4.0) + '@tiptap/pm': 2.4.0 + '@tiptap/react': 2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0)(react-dom@18.2.0)(react@18.2.0) + '@tiptap/starter-kit': 2.4.0(@tiptap/pm@2.4.0) '@use-gesture/react': 10.3.0(react@18.2.0) browser-image-resizer: 2.4.1 calendar-blocks: 0.3.1(react@18.2.0) - clsx: 2.1.1 + clsx: 2.1.0 color-interpolate: 1.0.5 color-parse: 2.0.2 color-space: 2.0.1 @@ -1365,103 +1341,53 @@ packages: transitivePeerDependencies: - '@types/react' - '@types/react-dom' - dev: false + dev: true - /@a-type/ui@0.8.16(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@a-type/ui@0.8.16(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-xU/3xMYVrLoFbNEHKwv5yN1YTIalM8BlwQqSh8BvlPOs933Zfw1BLYWHFIVq1VC4lhtK6qjFY5GjghoPITKeIg==} peerDependencies: react: ^18 react-dom: ^18 dependencies: '@a-type/utils': 1.1.0 - '@radix-ui/react-accordion': 1.1.2(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-checkbox': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-collapsible': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-context-menu': 2.1.5(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-dialog': 1.0.5(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-dropdown-menu': 2.0.6(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-accordion': 1.1.2(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-checkbox': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-collapsible': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-context-menu': 2.1.5(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dialog': 1.0.5(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dropdown-menu': 2.0.6(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-icons': 1.3.0(react@18.2.0) - '@radix-ui/react-menu': 2.0.6(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-popover': 1.0.7(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-radio-group': 1.1.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-select': 2.0.0(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-slider': 1.1.2(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-menu': 2.0.6(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popover': 1.0.7(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-radio-group': 1.1.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-select': 2.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slider': 1.1.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-switch': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-tabs': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-toast': 1.1.5(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-toggle-group': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-tooltip': 1.0.7(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@react-spring/web': 9.7.3(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-switch': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-tabs': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toast': 1.1.5(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle-group': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-tooltip': 1.0.7(react-dom@18.2.0)(react@18.2.0) + '@react-spring/web': 9.7.3(react-dom@18.2.0)(react@18.2.0) '@tiptap/core': 2.4.0(@tiptap/pm@2.4.0) '@tiptap/extension-document': 2.4.0(@tiptap/core@2.4.0) '@tiptap/extension-paragraph': 2.4.0(@tiptap/core@2.4.0) '@tiptap/pm': 2.4.0 - '@tiptap/react': 2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0)(react-dom@18.3.1)(react@18.2.0) + '@tiptap/react': 2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0)(react-dom@18.2.0)(react@18.2.0) '@tiptap/starter-kit': 2.4.0(@tiptap/pm@2.4.0) - '@use-gesture/react': 10.3.1(react@18.2.0) + '@use-gesture/react': 10.3.0(react@18.2.0) browser-image-resizer: 2.4.1 calendar-blocks: 0.3.1(react@18.2.0) - clsx: 2.1.1 + clsx: 2.1.0 color-interpolate: 1.0.5 color-parse: 2.0.2 color-space: 2.0.1 date-fns: 2.30.0 - formik: 2.4.5(react@18.2.0) + formik: 2.4.6(react@18.2.0) pluralize: 8.0.0 - prosemirror-model: 1.21.0 + prosemirror-model: 1.19.4 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - - '@types/react-dom' - dev: true - - /@a-type/ui@0.8.16(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-xU/3xMYVrLoFbNEHKwv5yN1YTIalM8BlwQqSh8BvlPOs933Zfw1BLYWHFIVq1VC4lhtK6qjFY5GjghoPITKeIg==} - peerDependencies: - react: ^18 - react-dom: ^18 - dependencies: - '@a-type/utils': 1.1.0 - '@radix-ui/react-accordion': 1.1.2(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-checkbox': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-collapsible': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-context-menu': 2.1.5(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-dialog': 1.0.5(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-dropdown-menu': 2.0.6(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-icons': 1.3.0(react@18.3.1) - '@radix-ui/react-menu': 2.0.6(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-popover': 1.0.7(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-radio-group': 1.1.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-select': 2.0.0(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slider': 1.1.2(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(react@18.3.1) - '@radix-ui/react-switch': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-tabs': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-toast': 1.1.5(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-toggle-group': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-tooltip': 1.0.7(react-dom@18.3.1)(react@18.3.1) - '@react-spring/web': 9.7.3(react-dom@18.3.1)(react@18.3.1) - '@tiptap/core': 2.4.0(@tiptap/pm@2.4.0) - '@tiptap/extension-document': 2.4.0(@tiptap/core@2.4.0) - '@tiptap/extension-paragraph': 2.4.0(@tiptap/core@2.4.0) - '@tiptap/pm': 2.4.0 - '@tiptap/react': 2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0)(react-dom@18.3.1)(react@18.3.1) - '@tiptap/starter-kit': 2.4.0(@tiptap/pm@2.4.0) - '@use-gesture/react': 10.3.1(react@18.3.1) - browser-image-resizer: 2.4.1 - calendar-blocks: 0.3.1(react@18.3.1) - clsx: 2.1.1 - color-interpolate: 1.0.5 - color-parse: 2.0.2 - color-space: 2.0.1 - date-fns: 2.30.0 - formik: 2.4.5(react@18.3.1) - pluralize: 8.0.0 - prosemirror-model: 1.21.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -1526,7 +1452,7 @@ packages: leven: 3.1.0 dev: true - /@apollo/client@3.9.9(@types/react@18.2.79)(graphql@16.8.1)(react-dom@18.3.1)(react@18.2.0): + /@apollo/client@3.9.9(@types/react@18.2.79)(graphql@16.8.1)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-/sMecU/M0WK9knrguts1lSLV8xFKzIgOMVb4mi6MOxgJXjliDB8PvOtmXhTqh2cVMMR4TzXgOnb+af/690zlQw==} peerDependencies: graphql: ^15.0.0 || ^16.0.0 @@ -1554,7 +1480,7 @@ packages: optimism: 0.18.0 prop-types: 15.8.1 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) rehackt: 0.0.6(@types/react@18.2.79)(react@18.2.0) response-iterator: 0.2.6 symbol-observable: 4.0.0 @@ -1565,13 +1491,13 @@ packages: - '@types/react' dev: false - /@astrojs/check@0.5.10(typescript@5.4.5): + /@astrojs/check@0.5.10(prettier@3.2.5)(typescript@5.4.5): resolution: {integrity: sha512-vliHXM9cu/viGeKiksUM4mXfO816ohWtawTl2ADPgTsd4nUMjFiyAl7xFZhF34yy4hq4qf7jvK1F2PlR3b5I5w==} hasBin: true peerDependencies: typescript: ^5.0.0 dependencies: - '@astrojs/language-server': 2.8.4(typescript@5.4.5) + '@astrojs/language-server': 2.8.4(prettier@3.2.5)(typescript@5.4.5) chokidar: 3.6.0 fast-glob: 3.3.2 kleur: 4.1.5 @@ -1590,7 +1516,7 @@ packages: resolution: {integrity: sha512-6B13lz5n6BrbTqCTwhXjJXuR1sqiX/H6rTxzlXx+lN1NnV4jgnq/KJldCQaUWJzPL5SiWahQyinxAbxQtwgPHA==} dev: false - /@astrojs/language-server@2.8.4(typescript@5.4.5): + /@astrojs/language-server@2.8.4(prettier@3.2.5)(typescript@5.4.5): resolution: {integrity: sha512-sJH5vGTBkhgA8+hdhzX78UUp4cFz4Mt7xkEkevD188OS5bDMkaue6hK+dtXWM47mnrXFveXA2u38K7S+5+IRjA==} hasBin: true peerDependencies: @@ -1610,10 +1536,11 @@ packages: '@volar/language-service': 2.1.6 '@volar/typescript': 2.1.6 fast-glob: 3.3.2 + prettier: 3.2.5 volar-service-css: 0.0.34(@volar/language-service@2.1.6) volar-service-emmet: 0.0.34(@volar/language-service@2.1.6) volar-service-html: 0.0.34(@volar/language-service@2.1.6) - volar-service-prettier: 0.0.34(@volar/language-service@2.1.6) + volar-service-prettier: 0.0.34(@volar/language-service@2.1.6)(prettier@3.2.5) volar-service-typescript: 0.0.34(@volar/language-service@2.1.6) volar-service-typescript-twoslash-queries: 0.0.34(@volar/language-service@2.1.6) vscode-html-languageservice: 5.2.0 @@ -1737,7 +1664,7 @@ packages: resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.567.0 + '@aws-sdk/types': 3.577.0 tslib: 1.14.1 dev: false @@ -1745,7 +1672,7 @@ packages: resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==} dependencies: '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.567.0 + '@aws-sdk/types': 3.577.0 tslib: 1.14.1 dev: false @@ -1761,7 +1688,7 @@ packages: '@aws-crypto/ie11-detection': 3.0.0 '@aws-crypto/supports-web-crypto': 3.0.0 '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.567.0 + '@aws-sdk/types': 3.577.0 '@aws-sdk/util-locate-window': 3.568.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 @@ -1797,7 +1724,7 @@ packages: /@aws-crypto/util@3.0.0: resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} dependencies: - '@aws-sdk/types': 3.567.0 + '@aws-sdk/types': 3.577.0 '@aws-sdk/util-utf8-browser': 3.259.0 tslib: 1.14.1 dev: false @@ -1852,127 +1779,13 @@ packages: - aws-crt dev: false - /@aws-sdk/client-s3@3.574.0: - resolution: {integrity: sha512-198QLFeJEs3xgCkLcGD8r0IVCR+BTjXGbVpDYC0DCU7vWjINR8igwwnuA5kbCHDALXvWmkX5MVuAlDuawsUn6w==} - engines: {node: '>=16.0.0'} - dependencies: - '@aws-crypto/sha1-browser': 3.0.0 - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.574.0(@aws-sdk/client-sts@3.574.0) - '@aws-sdk/client-sts': 3.574.0 - '@aws-sdk/core': 3.572.0 - '@aws-sdk/credential-provider-node': 3.572.0(@aws-sdk/client-sso-oidc@3.574.0)(@aws-sdk/client-sts@3.574.0) - '@aws-sdk/middleware-bucket-endpoint': 3.568.0 - '@aws-sdk/middleware-expect-continue': 3.572.0 - '@aws-sdk/middleware-flexible-checksums': 3.572.0 - '@aws-sdk/middleware-host-header': 3.567.0 - '@aws-sdk/middleware-location-constraint': 3.567.0 - '@aws-sdk/middleware-logger': 3.568.0 - '@aws-sdk/middleware-recursion-detection': 3.567.0 - '@aws-sdk/middleware-sdk-s3': 3.572.0 - '@aws-sdk/middleware-signing': 3.572.0 - '@aws-sdk/middleware-ssec': 3.567.0 - '@aws-sdk/middleware-user-agent': 3.572.0 - '@aws-sdk/region-config-resolver': 3.572.0 - '@aws-sdk/signature-v4-multi-region': 3.572.0 - '@aws-sdk/types': 3.567.0 - '@aws-sdk/util-endpoints': 3.572.0 - '@aws-sdk/util-user-agent-browser': 3.567.0 - '@aws-sdk/util-user-agent-node': 3.568.0 - '@aws-sdk/xml-builder': 3.567.0 - '@smithy/config-resolver': 2.2.0 - '@smithy/core': 1.4.2 - '@smithy/eventstream-serde-browser': 2.2.0 - '@smithy/eventstream-serde-config-resolver': 2.2.0 - '@smithy/eventstream-serde-node': 2.2.0 - '@smithy/fetch-http-handler': 2.5.0 - '@smithy/hash-blob-browser': 2.2.0 - '@smithy/hash-node': 2.2.0 - '@smithy/hash-stream-node': 2.2.0 - '@smithy/invalid-dependency': 2.2.0 - '@smithy/md5-js': 2.2.0 - '@smithy/middleware-content-length': 2.2.0 - '@smithy/middleware-endpoint': 2.5.1 - '@smithy/middleware-retry': 2.3.1 - '@smithy/middleware-serde': 2.3.0 - '@smithy/middleware-stack': 2.2.0 - '@smithy/node-config-provider': 2.3.0 - '@smithy/node-http-handler': 2.5.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/smithy-client': 2.5.1 - '@smithy/types': 2.12.0 - '@smithy/url-parser': 2.2.0 - '@smithy/util-base64': 2.3.0 - '@smithy/util-body-length-browser': 2.2.0 - '@smithy/util-body-length-node': 2.3.0 - '@smithy/util-defaults-mode-browser': 2.2.1 - '@smithy/util-defaults-mode-node': 2.3.1 - '@smithy/util-endpoints': 1.2.0 - '@smithy/util-retry': 2.2.0 - '@smithy/util-stream': 2.2.0 - '@smithy/util-utf8': 2.3.0 - '@smithy/util-waiter': 2.2.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - - /@aws-sdk/client-sso-oidc@3.574.0(@aws-sdk/client-sts@3.574.0): - resolution: {integrity: sha512-WcR8AnFhx7bqhYwfSl3OrF0Pu0LfHGgSOnmmORHqRF7ykguE09M/WUlCCjTGmZjJZ1we3uF5Xg8Jg12eiD+bmw==} - engines: {node: '>=16.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.574.0 - '@aws-sdk/core': 3.572.0 - '@aws-sdk/credential-provider-node': 3.572.0(@aws-sdk/client-sso-oidc@3.574.0)(@aws-sdk/client-sts@3.574.0) - '@aws-sdk/middleware-host-header': 3.567.0 - '@aws-sdk/middleware-logger': 3.568.0 - '@aws-sdk/middleware-recursion-detection': 3.567.0 - '@aws-sdk/middleware-user-agent': 3.572.0 - '@aws-sdk/region-config-resolver': 3.572.0 - '@aws-sdk/types': 3.567.0 - '@aws-sdk/util-endpoints': 3.572.0 - '@aws-sdk/util-user-agent-browser': 3.567.0 - '@aws-sdk/util-user-agent-node': 3.568.0 - '@smithy/config-resolver': 2.2.0 - '@smithy/core': 1.4.2 - '@smithy/fetch-http-handler': 2.5.0 - '@smithy/hash-node': 2.2.0 - '@smithy/invalid-dependency': 2.2.0 - '@smithy/middleware-content-length': 2.2.0 - '@smithy/middleware-endpoint': 2.5.1 - '@smithy/middleware-retry': 2.3.1 - '@smithy/middleware-serde': 2.3.0 - '@smithy/middleware-stack': 2.2.0 - '@smithy/node-config-provider': 2.3.0 - '@smithy/node-http-handler': 2.5.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/smithy-client': 2.5.1 - '@smithy/types': 2.12.0 - '@smithy/url-parser': 2.2.0 - '@smithy/util-base64': 2.3.0 - '@smithy/util-body-length-browser': 2.2.0 - '@smithy/util-body-length-node': 2.3.0 - '@smithy/util-defaults-mode-browser': 2.2.1 - '@smithy/util-defaults-mode-node': 2.3.1 - '@smithy/util-endpoints': 1.2.0 - '@smithy/util-middleware': 2.2.0 - '@smithy/util-retry': 2.2.0 - '@smithy/util-utf8': 2.3.0 - tslib: 2.6.2 - transitivePeerDependencies: - - '@aws-sdk/client-sts' - - aws-crt - dev: false - - /@aws-sdk/client-sso-oidc@3.583.0(@aws-sdk/client-sts@3.583.0): - resolution: {integrity: sha512-LO3wmrFXPi2kNE46lD1XATfRrvdNxXd4DlTFouoWmr7lvqoUkcbmtkV2r/XChZA2z0HiDauphC1e8b8laJVeSg==} + /@aws-sdk/client-cloudfront@3.583.0: + resolution: {integrity: sha512-If31utBG1aOPDbaJzMpq59jHZpFqj181KE9SHK394BnmsANnsUPmE8/wrMOBzD8saIGAMrWfPP5X7urweqv/ow==} engines: {node: '>=16.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sso-oidc': 3.583.0(@aws-sdk/client-sts@3.583.0) '@aws-sdk/client-sts': 3.583.0 '@aws-sdk/core': 3.582.0 '@aws-sdk/credential-provider-node': 3.583.0(@aws-sdk/client-sso-oidc@3.583.0)(@aws-sdk/client-sts@3.583.0) @@ -1985,6 +1798,7 @@ packages: '@aws-sdk/util-endpoints': 3.583.0 '@aws-sdk/util-user-agent-browser': 3.577.0 '@aws-sdk/util-user-agent-node': 3.577.0 + '@aws-sdk/xml-builder': 3.575.0 '@smithy/config-resolver': 3.0.0 '@smithy/core': 2.0.1 '@smithy/fetch-http-handler': 3.0.1 @@ -2009,66 +1823,89 @@ packages: '@smithy/util-endpoints': 2.0.0 '@smithy/util-middleware': 3.0.0 '@smithy/util-retry': 3.0.0 + '@smithy/util-stream': 3.0.1 '@smithy/util-utf8': 3.0.0 + '@smithy/util-waiter': 3.0.0 tslib: 2.6.2 transitivePeerDependencies: - - '@aws-sdk/client-sts' - aws-crt dev: false - /@aws-sdk/client-sso@3.572.0: - resolution: {integrity: sha512-S+xhScao5MD79AkrcHmFpEDk+CgoiuB/31WFcTcnrTio5TOUONAaT0QyscOIwRp7BZ7Aez7TBM+loTteJ+TQvg==} + /@aws-sdk/client-s3@3.583.0: + resolution: {integrity: sha512-pS7wncugSuIQ8RgtRIE9Dystdmd3mMnjfjiO1iA1UhGXkyAgoJzQ4jH0r+5X+eWmYHYQcfy9fUQXT2gqV3t9GA==} engines: {node: '>=16.0.0'} dependencies: + '@aws-crypto/sha1-browser': 3.0.0 '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.572.0 - '@aws-sdk/middleware-host-header': 3.567.0 - '@aws-sdk/middleware-logger': 3.568.0 - '@aws-sdk/middleware-recursion-detection': 3.567.0 - '@aws-sdk/middleware-user-agent': 3.572.0 - '@aws-sdk/region-config-resolver': 3.572.0 - '@aws-sdk/types': 3.567.0 - '@aws-sdk/util-endpoints': 3.572.0 - '@aws-sdk/util-user-agent-browser': 3.567.0 - '@aws-sdk/util-user-agent-node': 3.568.0 - '@smithy/config-resolver': 2.2.0 - '@smithy/core': 1.4.2 - '@smithy/fetch-http-handler': 2.5.0 - '@smithy/hash-node': 2.2.0 - '@smithy/invalid-dependency': 2.2.0 - '@smithy/middleware-content-length': 2.2.0 - '@smithy/middleware-endpoint': 2.5.1 - '@smithy/middleware-retry': 2.3.1 - '@smithy/middleware-serde': 2.3.0 - '@smithy/middleware-stack': 2.2.0 - '@smithy/node-config-provider': 2.3.0 - '@smithy/node-http-handler': 2.5.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/smithy-client': 2.5.1 - '@smithy/types': 2.12.0 - '@smithy/url-parser': 2.2.0 - '@smithy/util-base64': 2.3.0 - '@smithy/util-body-length-browser': 2.2.0 - '@smithy/util-body-length-node': 2.3.0 - '@smithy/util-defaults-mode-browser': 2.2.1 - '@smithy/util-defaults-mode-node': 2.3.1 - '@smithy/util-endpoints': 1.2.0 - '@smithy/util-middleware': 2.2.0 - '@smithy/util-retry': 2.2.0 - '@smithy/util-utf8': 2.3.0 + '@aws-sdk/client-sso-oidc': 3.583.0(@aws-sdk/client-sts@3.583.0) + '@aws-sdk/client-sts': 3.583.0 + '@aws-sdk/core': 3.582.0 + '@aws-sdk/credential-provider-node': 3.583.0(@aws-sdk/client-sso-oidc@3.583.0)(@aws-sdk/client-sts@3.583.0) + '@aws-sdk/middleware-bucket-endpoint': 3.577.0 + '@aws-sdk/middleware-expect-continue': 3.577.0 + '@aws-sdk/middleware-flexible-checksums': 3.577.0 + '@aws-sdk/middleware-host-header': 3.577.0 + '@aws-sdk/middleware-location-constraint': 3.577.0 + '@aws-sdk/middleware-logger': 3.577.0 + '@aws-sdk/middleware-recursion-detection': 3.577.0 + '@aws-sdk/middleware-sdk-s3': 3.582.0 + '@aws-sdk/middleware-signing': 3.577.0 + '@aws-sdk/middleware-ssec': 3.577.0 + '@aws-sdk/middleware-user-agent': 3.583.0 + '@aws-sdk/region-config-resolver': 3.577.0 + '@aws-sdk/signature-v4-multi-region': 3.582.0 + '@aws-sdk/types': 3.577.0 + '@aws-sdk/util-endpoints': 3.583.0 + '@aws-sdk/util-user-agent-browser': 3.577.0 + '@aws-sdk/util-user-agent-node': 3.577.0 + '@aws-sdk/xml-builder': 3.575.0 + '@smithy/config-resolver': 3.0.0 + '@smithy/core': 2.0.1 + '@smithy/eventstream-serde-browser': 3.0.0 + '@smithy/eventstream-serde-config-resolver': 3.0.0 + '@smithy/eventstream-serde-node': 3.0.0 + '@smithy/fetch-http-handler': 3.0.1 + '@smithy/hash-blob-browser': 3.0.0 + '@smithy/hash-node': 3.0.0 + '@smithy/hash-stream-node': 3.0.0 + '@smithy/invalid-dependency': 3.0.0 + '@smithy/md5-js': 3.0.0 + '@smithy/middleware-content-length': 3.0.0 + '@smithy/middleware-endpoint': 3.0.0 + '@smithy/middleware-retry': 3.0.1 + '@smithy/middleware-serde': 3.0.0 + '@smithy/middleware-stack': 3.0.0 + '@smithy/node-config-provider': 3.0.0 + '@smithy/node-http-handler': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/smithy-client': 3.0.1 + '@smithy/types': 3.0.0 + '@smithy/url-parser': 3.0.0 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.1 + '@smithy/util-defaults-mode-node': 3.0.1 + '@smithy/util-endpoints': 2.0.0 + '@smithy/util-retry': 3.0.0 + '@smithy/util-stream': 3.0.1 + '@smithy/util-utf8': 3.0.0 + '@smithy/util-waiter': 3.0.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt dev: false - /@aws-sdk/client-sso@3.583.0: - resolution: {integrity: sha512-FNJ2MmiBtZZwgkj4+GLVrzqwmD6D8FBptrFZk7PnGkSf7v1Q8txYNI6gY938RRhYJ4lBW4cNbhPvWoDxAl90Hw==} + /@aws-sdk/client-sso-oidc@3.583.0(@aws-sdk/client-sts@3.583.0): + resolution: {integrity: sha512-LO3wmrFXPi2kNE46lD1XATfRrvdNxXd4DlTFouoWmr7lvqoUkcbmtkV2r/XChZA2z0HiDauphC1e8b8laJVeSg==} engines: {node: '>=16.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.583.0 '@aws-sdk/core': 3.582.0 + '@aws-sdk/credential-provider-node': 3.583.0(@aws-sdk/client-sso-oidc@3.583.0)(@aws-sdk/client-sts@3.583.0) '@aws-sdk/middleware-host-header': 3.577.0 '@aws-sdk/middleware-logger': 3.577.0 '@aws-sdk/middleware-recursion-detection': 3.577.0 @@ -2105,52 +1942,51 @@ packages: '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 transitivePeerDependencies: + - '@aws-sdk/client-sts' - aws-crt dev: false - /@aws-sdk/client-sts@3.574.0: - resolution: {integrity: sha512-WNDSG9nipap/L1gGDkCQvU2u413HmVxMJKr41lBCibioz42Z4i6XkCr1etYwIjuVfGF6QPrsEsYLqRwlAC/BQg==} + /@aws-sdk/client-sso@3.583.0: + resolution: {integrity: sha512-FNJ2MmiBtZZwgkj4+GLVrzqwmD6D8FBptrFZk7PnGkSf7v1Q8txYNI6gY938RRhYJ4lBW4cNbhPvWoDxAl90Hw==} engines: {node: '>=16.0.0'} dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.574.0(@aws-sdk/client-sts@3.574.0) - '@aws-sdk/core': 3.572.0 - '@aws-sdk/credential-provider-node': 3.572.0(@aws-sdk/client-sso-oidc@3.574.0)(@aws-sdk/client-sts@3.574.0) - '@aws-sdk/middleware-host-header': 3.567.0 - '@aws-sdk/middleware-logger': 3.568.0 - '@aws-sdk/middleware-recursion-detection': 3.567.0 - '@aws-sdk/middleware-user-agent': 3.572.0 - '@aws-sdk/region-config-resolver': 3.572.0 - '@aws-sdk/types': 3.567.0 - '@aws-sdk/util-endpoints': 3.572.0 - '@aws-sdk/util-user-agent-browser': 3.567.0 - '@aws-sdk/util-user-agent-node': 3.568.0 - '@smithy/config-resolver': 2.2.0 - '@smithy/core': 1.4.2 - '@smithy/fetch-http-handler': 2.5.0 - '@smithy/hash-node': 2.2.0 - '@smithy/invalid-dependency': 2.2.0 - '@smithy/middleware-content-length': 2.2.0 - '@smithy/middleware-endpoint': 2.5.1 - '@smithy/middleware-retry': 2.3.1 - '@smithy/middleware-serde': 2.3.0 - '@smithy/middleware-stack': 2.2.0 - '@smithy/node-config-provider': 2.3.0 - '@smithy/node-http-handler': 2.5.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/smithy-client': 2.5.1 - '@smithy/types': 2.12.0 - '@smithy/url-parser': 2.2.0 - '@smithy/util-base64': 2.3.0 - '@smithy/util-body-length-browser': 2.2.0 - '@smithy/util-body-length-node': 2.3.0 - '@smithy/util-defaults-mode-browser': 2.2.1 - '@smithy/util-defaults-mode-node': 2.3.1 - '@smithy/util-endpoints': 1.2.0 - '@smithy/util-middleware': 2.2.0 - '@smithy/util-retry': 2.2.0 - '@smithy/util-utf8': 2.3.0 + '@aws-sdk/core': 3.582.0 + '@aws-sdk/middleware-host-header': 3.577.0 + '@aws-sdk/middleware-logger': 3.577.0 + '@aws-sdk/middleware-recursion-detection': 3.577.0 + '@aws-sdk/middleware-user-agent': 3.583.0 + '@aws-sdk/region-config-resolver': 3.577.0 + '@aws-sdk/types': 3.577.0 + '@aws-sdk/util-endpoints': 3.583.0 + '@aws-sdk/util-user-agent-browser': 3.577.0 + '@aws-sdk/util-user-agent-node': 3.577.0 + '@smithy/config-resolver': 3.0.0 + '@smithy/core': 2.0.1 + '@smithy/fetch-http-handler': 3.0.1 + '@smithy/hash-node': 3.0.0 + '@smithy/invalid-dependency': 3.0.0 + '@smithy/middleware-content-length': 3.0.0 + '@smithy/middleware-endpoint': 3.0.0 + '@smithy/middleware-retry': 3.0.1 + '@smithy/middleware-serde': 3.0.0 + '@smithy/middleware-stack': 3.0.0 + '@smithy/node-config-provider': 3.0.0 + '@smithy/node-http-handler': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/smithy-client': 3.0.1 + '@smithy/types': 3.0.0 + '@smithy/url-parser': 3.0.0 + '@smithy/util-base64': 3.0.0 + '@smithy/util-body-length-browser': 3.0.0 + '@smithy/util-body-length-node': 3.0.0 + '@smithy/util-defaults-mode-browser': 3.0.1 + '@smithy/util-defaults-mode-node': 3.0.1 + '@smithy/util-endpoints': 2.0.0 + '@smithy/util-middleware': 3.0.0 + '@smithy/util-retry': 3.0.0 + '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 transitivePeerDependencies: - aws-crt @@ -2204,19 +2040,6 @@ packages: - aws-crt dev: false - /@aws-sdk/core@3.572.0: - resolution: {integrity: sha512-DBmf94qfN0dfaLl5EnNcq6TakWfOtVXYifHoTbX+VBwESj3rlY4W+W4mAnvBgAqDjlLFy7bBljmx+vnjnV73lg==} - engines: {node: '>=16.0.0'} - dependencies: - '@smithy/core': 1.4.2 - '@smithy/protocol-http': 3.3.0 - '@smithy/signature-v4': 2.3.0 - '@smithy/smithy-client': 2.5.1 - '@smithy/types': 2.12.0 - fast-xml-parser: 4.2.5 - tslib: 2.6.2 - dev: false - /@aws-sdk/core@3.582.0: resolution: {integrity: sha512-ofmD96IQc9g1dbyqlCyxu5fCG7kIl9p1NoN5+vGBUyLdbmPCV3Pdg99nRHYEJuv2MgGx5AUFGDPMHcqbJpnZIw==} engines: {node: '>=16.0.0'} @@ -2230,16 +2053,6 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-env@3.568.0: - resolution: {integrity: sha512-MVTQoZwPnP1Ev5A7LG+KzeU6sCB8BcGkZeDT1z1V5Wt7GPq0MgFQTSSjhImnB9jqRSZkl1079Bt3PbO6lfIS8g==} - engines: {node: '>=16.0.0'} - dependencies: - '@aws-sdk/types': 3.567.0 - '@smithy/property-provider': 2.2.0 - '@smithy/types': 2.12.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/credential-provider-env@3.577.0: resolution: {integrity: sha512-Jxu255j0gToMGEiqufP8ZtKI8HW90lOLjwJ3LrdlD/NLsAY0tOQf1fWc53u28hWmmNGMxmCrL2p66IOgMDhDUw==} engines: {node: '>=16.0.0'} @@ -2250,21 +2063,6 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-http@3.568.0: - resolution: {integrity: sha512-gL0NlyI2eW17hnCrh45hZV+qjtBquB+Bckiip9R6DIVRKqYcoILyiFhuOgf2bXeF23gVh6j18pvUvIoTaFWs5w==} - engines: {node: '>=16.0.0'} - dependencies: - '@aws-sdk/types': 3.567.0 - '@smithy/fetch-http-handler': 2.5.0 - '@smithy/node-http-handler': 2.5.0 - '@smithy/property-provider': 2.2.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/smithy-client': 2.5.1 - '@smithy/types': 2.12.0 - '@smithy/util-stream': 2.2.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/credential-provider-http@3.582.0: resolution: {integrity: sha512-kGOUKw5ryPkDIYB69PjK3SicVLTbWB06ouFN2W1EvqUJpkQGPAUGzYcomKtt3mJaCTf/1kfoaHwARAl6KKSP8Q==} engines: {node: '>=16.0.0'} @@ -2280,28 +2078,6 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-ini@3.572.0(@aws-sdk/client-sso-oidc@3.574.0)(@aws-sdk/client-sts@3.574.0): - resolution: {integrity: sha512-05KzbAp77fEiQXqMeodXeMbT83FOqSyBrfSEMz6U8uBXeJCy8zPUjN3acqcbG55/HNJHUvg1cftqzy+fUz71gA==} - engines: {node: '>=16.0.0'} - peerDependencies: - '@aws-sdk/client-sts': 3.572.0 - dependencies: - '@aws-sdk/client-sts': 3.574.0 - '@aws-sdk/credential-provider-env': 3.568.0 - '@aws-sdk/credential-provider-process': 3.572.0 - '@aws-sdk/credential-provider-sso': 3.572.0(@aws-sdk/client-sso-oidc@3.574.0) - '@aws-sdk/credential-provider-web-identity': 3.568.0(@aws-sdk/client-sts@3.574.0) - '@aws-sdk/types': 3.567.0 - '@smithy/credential-provider-imds': 2.3.0 - '@smithy/property-provider': 2.2.0 - '@smithy/shared-ini-file-loader': 2.4.0 - '@smithy/types': 2.12.0 - tslib: 2.6.2 - transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - - aws-crt - dev: false - /@aws-sdk/credential-provider-ini@3.583.0(@aws-sdk/client-sso-oidc@3.583.0)(@aws-sdk/client-sts@3.583.0): resolution: {integrity: sha512-8I0oWNg/yps6ctjhEeL/qJ9BIa/+xXP7RPDQqFKZ2zBkWbmLLOoMWXRvl8uKUBD6qCe+DGmcu9skfVXeXSesEQ==} engines: {node: '>=16.0.0'} @@ -2324,28 +2100,6 @@ packages: - aws-crt dev: false - /@aws-sdk/credential-provider-node@3.572.0(@aws-sdk/client-sso-oidc@3.574.0)(@aws-sdk/client-sts@3.574.0): - resolution: {integrity: sha512-anlYZnpmVkfp9Gan+LcEkQvmRf/m0KcbR11th8sBEyI5lxMaHKXhnAtC/hEGT7e3L6rgNOrFYTPuSvllITD/Pg==} - engines: {node: '>=16.0.0'} - dependencies: - '@aws-sdk/credential-provider-env': 3.568.0 - '@aws-sdk/credential-provider-http': 3.568.0 - '@aws-sdk/credential-provider-ini': 3.572.0(@aws-sdk/client-sso-oidc@3.574.0)(@aws-sdk/client-sts@3.574.0) - '@aws-sdk/credential-provider-process': 3.572.0 - '@aws-sdk/credential-provider-sso': 3.572.0(@aws-sdk/client-sso-oidc@3.574.0) - '@aws-sdk/credential-provider-web-identity': 3.568.0(@aws-sdk/client-sts@3.574.0) - '@aws-sdk/types': 3.567.0 - '@smithy/credential-provider-imds': 2.3.0 - '@smithy/property-provider': 2.2.0 - '@smithy/shared-ini-file-loader': 2.4.0 - '@smithy/types': 2.12.0 - tslib: 2.6.2 - transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - - '@aws-sdk/client-sts' - - aws-crt - dev: false - /@aws-sdk/credential-provider-node@3.583.0(@aws-sdk/client-sso-oidc@3.583.0)(@aws-sdk/client-sts@3.583.0): resolution: {integrity: sha512-yBNypBXny7zJH85SzxDj8s1mbLXv9c/Vbq0qR3R3POj2idZ6ywB/qlIRC1XwBuv49Wvg8kA1wKXk3K3jrpcVIw==} engines: {node: '>=16.0.0'} @@ -2368,17 +2122,6 @@ packages: - aws-crt dev: false - /@aws-sdk/credential-provider-process@3.572.0: - resolution: {integrity: sha512-hXcOytf0BadSm/MMy7MV8mmY0+Jv3mkavsHNBx0R82hw5ollD0I3JyOAaCtdUpztF0I72F8K+q8SpJQZ+EwArw==} - engines: {node: '>=16.0.0'} - dependencies: - '@aws-sdk/types': 3.567.0 - '@smithy/property-provider': 2.2.0 - '@smithy/shared-ini-file-loader': 2.4.0 - '@smithy/types': 2.12.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/credential-provider-process@3.577.0: resolution: {integrity: sha512-Gin6BWtOiXxIgITrJ3Nwc+Y2P1uVT6huYR4EcbA/DJUPWyO0n9y5UFLewPvVbLkRn15JeEqErBLUrHclkiOKtw==} engines: {node: '>=16.0.0'} @@ -2390,22 +2133,6 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/credential-provider-sso@3.572.0(@aws-sdk/client-sso-oidc@3.574.0): - resolution: {integrity: sha512-iIlnpJiDXFp3XC4hJNSiNurnU24mr3iLB3HoNa9efr944bo6XBl9FQdk3NssIkqzSmgyoB2CEUx/daBHz4XSow==} - engines: {node: '>=16.0.0'} - dependencies: - '@aws-sdk/client-sso': 3.572.0 - '@aws-sdk/token-providers': 3.572.0(@aws-sdk/client-sso-oidc@3.574.0) - '@aws-sdk/types': 3.567.0 - '@smithy/property-provider': 2.2.0 - '@smithy/shared-ini-file-loader': 2.4.0 - '@smithy/types': 2.12.0 - tslib: 2.6.2 - transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - - aws-crt - dev: false - /@aws-sdk/credential-provider-sso@3.583.0(@aws-sdk/client-sso-oidc@3.583.0): resolution: {integrity: sha512-G/1EvL9tBezSiU+06tG4K/kOvFfPjnheT4JSXqjPM7+vjKzgp2jxp1J9MMd69zs4jVWon932zMeGgjrCplzMEg==} engines: {node: '>=16.0.0'} @@ -2422,19 +2149,6 @@ packages: - aws-crt dev: false - /@aws-sdk/credential-provider-web-identity@3.568.0(@aws-sdk/client-sts@3.574.0): - resolution: {integrity: sha512-ZJSmTmoIdg6WqAULjYzaJ3XcbgBzVy36lir6Y0UBMRGaxDgos1AARuX6EcYzXOl+ksLvxt/xMQ+3aYh1LWfKSw==} - engines: {node: '>=16.0.0'} - peerDependencies: - '@aws-sdk/client-sts': ^3.568.0 - dependencies: - '@aws-sdk/client-sts': 3.574.0 - '@aws-sdk/types': 3.567.0 - '@smithy/property-provider': 2.2.0 - '@smithy/types': 2.12.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/credential-provider-web-identity@3.577.0(@aws-sdk/client-sts@3.583.0): resolution: {integrity: sha512-ZGHGNRaCtJJmszb9UTnC7izNCtRUttdPlLdMkh41KPS32vfdrBDHs1JrpbZijItRj1xKuOXsiYSXLAaHGcLh8Q==} engines: {node: '>=16.0.0'} @@ -2448,13 +2162,13 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/lib-storage@3.574.0(@aws-sdk/client-s3@3.574.0): + /@aws-sdk/lib-storage@3.574.0(@aws-sdk/client-s3@3.583.0): resolution: {integrity: sha512-BbPbR0eMb+fdweMpZRYGXgEPdk0tPtoLyU350R5MthNVOYFRwUcTY4eVHLGuhpeVkod0iIH4NXs/YWZ9KyYXFQ==} engines: {node: '>=16.0.0'} peerDependencies: '@aws-sdk/client-s3': ^3.574.0 dependencies: - '@aws-sdk/client-s3': 3.574.0 + '@aws-sdk/client-s3': 3.583.0 '@smithy/abort-controller': 2.2.0 '@smithy/middleware-endpoint': 2.5.1 '@smithy/smithy-client': 2.5.1 @@ -2464,50 +2178,40 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/middleware-bucket-endpoint@3.568.0: - resolution: {integrity: sha512-uc/nbSpXv64ct/wV3Ksz0/bXAsEtXuoZu5J9FTcFnM7c2MSofa0YQrtrJ8cG65uGbdeiFoJwPA048BTG/ilhCA==} + /@aws-sdk/middleware-bucket-endpoint@3.577.0: + resolution: {integrity: sha512-twlkNX2VofM6kHXzDEiJOiYCc9tVABe5cbyxMArRWscIsCWG9mamPhC77ezG4XsN9dFEwVdxEYD5Crpm/5EUiw==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.567.0 + '@aws-sdk/types': 3.577.0 '@aws-sdk/util-arn-parser': 3.568.0 - '@smithy/node-config-provider': 2.3.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/types': 2.12.0 - '@smithy/util-config-provider': 2.3.0 + '@smithy/node-config-provider': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/types': 3.0.0 + '@smithy/util-config-provider': 3.0.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-expect-continue@3.572.0: - resolution: {integrity: sha512-+NKWVK295rOEANU/ohqEfNjkcEdZao7z6HxkMXX4gu4mDpSsVU8WhYr5hp5k3PUhtaiPU8M1rdfQBrZQc4uttw==} + /@aws-sdk/middleware-expect-continue@3.577.0: + resolution: {integrity: sha512-6dPp8Tv4F0of4un5IAyG6q++GrRrNQQ4P2NAMB1W0VO4JoEu1C8GievbbDLi88TFIFmtKpnHB0ODCzwnoe8JsA==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.567.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/types': 2.12.0 + '@aws-sdk/types': 3.577.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/types': 3.0.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-flexible-checksums@3.572.0: - resolution: {integrity: sha512-ysblGDRn1yy8TlKUrwhnFbl3RuMfbVW1rbtePClEYpC/1u9MsqPmm/fmWJJGKat7NclnsgpQyfSQ64DCuaEedg==} + /@aws-sdk/middleware-flexible-checksums@3.577.0: + resolution: {integrity: sha512-IHAUEipIfagjw92LV8SOSBiCF7ZnqfHcw14IkcZW2/mfrCy1Fh/k40MoS/t3Tro2tQ91rgQPwUoSgB/QCi2Org==} engines: {node: '>=16.0.0'} dependencies: '@aws-crypto/crc32': 3.0.0 '@aws-crypto/crc32c': 3.0.0 - '@aws-sdk/types': 3.567.0 - '@smithy/is-array-buffer': 2.2.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/types': 2.12.0 - '@smithy/util-utf8': 2.3.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-host-header@3.567.0: - resolution: {integrity: sha512-zQHHj2N3in9duKghH7AuRNrOMLnKhW6lnmb7dznou068DJtDr76w475sHp2TF0XELsOGENbbBsOlN/S5QBFBVQ==} - engines: {node: '>=16.0.0'} - dependencies: - '@aws-sdk/types': 3.567.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/types': 2.12.0 + '@aws-sdk/types': 3.577.0 + '@smithy/is-array-buffer': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/types': 3.0.0 + '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 dev: false @@ -2521,21 +2225,12 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/middleware-location-constraint@3.567.0: - resolution: {integrity: sha512-XiGTH4VxrJ5fj6zeF6UL5U5EuJwLqj9bHW5pB+EKfw0pmbnyqfRdYNt46v4GsQql2iVOq1Z/Fiv754nIItBI/A==} + /@aws-sdk/middleware-location-constraint@3.577.0: + resolution: {integrity: sha512-DKPTD2D2s+t2QUo/IXYtVa/6Un8GZ+phSTBkyBNx2kfZz4Kwavhl/JJzSqTV3GfCXkVdFu7CrjoX7BZ6qWeTUA==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.567.0 - '@smithy/types': 2.12.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-logger@3.568.0: - resolution: {integrity: sha512-BinH72RG7K3DHHC1/tCulocFv+ZlQ9SrPF9zYT0T1OT95JXuHhB7fH8gEABrc6DAtOdJJh2fgxQjPy5tzPtsrA==} - engines: {node: '>=16.0.0'} - dependencies: - '@aws-sdk/types': 3.567.0 - '@smithy/types': 2.12.0 + '@aws-sdk/types': 3.577.0 + '@smithy/types': 3.0.0 tslib: 2.6.2 dev: false @@ -2548,16 +2243,6 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/middleware-recursion-detection@3.567.0: - resolution: {integrity: sha512-rFk3QhdT4IL6O/UWHmNdjJiURutBCy+ogGqaNHf/RELxgXH3KmYorLwCe0eFb5hq8f6vr3zl4/iH7YtsUOuo1w==} - engines: {node: '>=16.0.0'} - dependencies: - '@aws-sdk/types': 3.567.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/types': 2.12.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/middleware-recursion-detection@3.577.0: resolution: {integrity: sha512-pn3ZVEd2iobKJlR3H+bDilHjgRnNrQ6HMmK9ZzZw89Ckn3Dcbv48xOv4RJvu0aU8SDLl/SNCxppKjeLDTPGBNA==} engines: {node: '>=16.0.0'} @@ -2568,51 +2253,40 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/middleware-sdk-s3@3.572.0: - resolution: {integrity: sha512-ygQL1G2hWoJXkUGL/Xr5q9ojXCH8hgt/oKsxJtc5U8ZXw3SRlL6pCVE7+aiD0l8mgIGbW0vrL08Oc/jYWlakdw==} + /@aws-sdk/middleware-sdk-s3@3.582.0: + resolution: {integrity: sha512-PJqQpLoLaZPRI4L/XZUeHkd9UVK8VAr9R38wv0osGeMTvzD9iwzzk0I2TtBqFda/5xEB1YgVYZwyqvmStXmttg==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.567.0 + '@aws-sdk/types': 3.577.0 '@aws-sdk/util-arn-parser': 3.568.0 - '@smithy/node-config-provider': 2.3.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/signature-v4': 2.3.0 - '@smithy/smithy-client': 2.5.1 - '@smithy/types': 2.12.0 - '@smithy/util-config-provider': 2.3.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/middleware-signing@3.572.0: - resolution: {integrity: sha512-/pEVgHnf8LsTG0hu9yqqvmLMknlKO5c19NM3J9qTWGLPfySi8tWrFuREAFKAxqJFgDw1IdFWd+dXIkodpbGwew==} - engines: {node: '>=16.0.0'} - dependencies: - '@aws-sdk/types': 3.567.0 - '@smithy/property-provider': 2.2.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/signature-v4': 2.3.0 - '@smithy/types': 2.12.0 - '@smithy/util-middleware': 2.2.0 + '@smithy/node-config-provider': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/signature-v4': 3.0.0 + '@smithy/smithy-client': 3.0.1 + '@smithy/types': 3.0.0 + '@smithy/util-config-provider': 3.0.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-ssec@3.567.0: - resolution: {integrity: sha512-lhpBwFi3Tcw+jlOdaCsg3lCAg4oOSJB00bW/aLTFeZWutwi9VexMmsddZllx99lN+LDeCjryNyVd2TCRCKwYhQ==} + /@aws-sdk/middleware-signing@3.577.0: + resolution: {integrity: sha512-QS/dh3+NqZbXtY0j/DZ867ogP413pG5cFGqBy9OeOhDMsolcwLrQbi0S0c621dc1QNq+er9ffaMhZ/aPkyXXIg==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.567.0 - '@smithy/types': 2.12.0 + '@aws-sdk/types': 3.577.0 + '@smithy/property-provider': 3.0.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/signature-v4': 3.0.0 + '@smithy/types': 3.0.0 + '@smithy/util-middleware': 3.0.0 tslib: 2.6.2 dev: false - /@aws-sdk/middleware-user-agent@3.572.0: - resolution: {integrity: sha512-R4bBbLp1ywtF1kJoOX1juDMztKPWeQHNj6XuTvtruFDn1RdfnBlbM3+9rguRfH5s4V+xfl8SSWchnyo2cI00xg==} + /@aws-sdk/middleware-ssec@3.577.0: + resolution: {integrity: sha512-i2BPJR+rp8xmRVIGc0h1kDRFcM2J9GnClqqpc+NLSjmYadlcg4mPklisz9HzwFVcRPJ5XcGf3U4BYs5G8+iTyg==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/types': 3.567.0 - '@aws-sdk/util-endpoints': 3.572.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/types': 2.12.0 + '@aws-sdk/types': 3.577.0 + '@smithy/types': 3.0.0 tslib: 2.6.2 dev: false @@ -2627,18 +2301,6 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/region-config-resolver@3.572.0: - resolution: {integrity: sha512-xkZMIxek44F4YW5r9otD1O5Y/kDkgAb6JNJePkP1qPVojrkCmin3OFYAOZgGm+T4DZAQ5rWhpaqTAWmnRumYfw==} - engines: {node: '>=16.0.0'} - dependencies: - '@aws-sdk/types': 3.567.0 - '@smithy/node-config-provider': 2.3.0 - '@smithy/types': 2.12.0 - '@smithy/util-config-provider': 2.3.0 - '@smithy/util-middleware': 2.2.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/region-config-resolver@3.577.0: resolution: {integrity: sha512-4ChCFACNwzqx/xjg3zgFcW8Ali6R9C95cFECKWT/7CUM1D0MGvkclSH2cLarmHCmJgU6onKkJroFtWp0kHhgyg==} engines: {node: '>=16.0.0'} @@ -2651,29 +2313,15 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/signature-v4-multi-region@3.572.0: - resolution: {integrity: sha512-FD6FIi8py1ZAR53NjD2VXKDvvQUhhZu7CDUfC9gjAa7JDtv+rJvM9ZuoiQjaDnzzqYxTr4pKqqjLsd6+8BCSWA==} + /@aws-sdk/signature-v4-multi-region@3.582.0: + resolution: {integrity: sha512-aFCOjjNqEX2l+V8QjOWy5F7CtHIC/RlYdBuv3No6yxn+pMvVUUe6zdMk2yHWcudVpHWsyvcZzAUBliAPeFLPsQ==} engines: {node: '>=16.0.0'} dependencies: - '@aws-sdk/middleware-sdk-s3': 3.572.0 - '@aws-sdk/types': 3.567.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/signature-v4': 2.3.0 - '@smithy/types': 2.12.0 - tslib: 2.6.2 - dev: false - - /@aws-sdk/token-providers@3.572.0(@aws-sdk/client-sso-oidc@3.574.0): - resolution: {integrity: sha512-IkSu8p32tQZhKqwmfLZLGfYwNhsS/HUQBLnDMHJlr9VifmDqlTurcr+DwMCaMimuFhcLeb45vqTymKf/ro/OBw==} - engines: {node: '>=16.0.0'} - peerDependencies: - '@aws-sdk/client-sso-oidc': 3.572.0 - dependencies: - '@aws-sdk/client-sso-oidc': 3.574.0(@aws-sdk/client-sts@3.574.0) - '@aws-sdk/types': 3.567.0 - '@smithy/property-provider': 2.2.0 - '@smithy/shared-ini-file-loader': 2.4.0 - '@smithy/types': 2.12.0 + '@aws-sdk/middleware-sdk-s3': 3.582.0 + '@aws-sdk/types': 3.577.0 + '@smithy/protocol-http': 4.0.0 + '@smithy/signature-v4': 3.0.0 + '@smithy/types': 3.0.0 tslib: 2.6.2 dev: false @@ -2691,14 +2339,6 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/types@3.567.0: - resolution: {integrity: sha512-JBznu45cdgQb8+T/Zab7WpBmfEAh77gsk99xuF4biIb2Sw1mdseONdoGDjEJX57a25TzIv/WUJ2oABWumckz1A==} - engines: {node: '>=16.0.0'} - dependencies: - '@smithy/types': 2.12.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/types@3.577.0: resolution: {integrity: sha512-FT2JZES3wBKN/alfmhlo+3ZOq/XJ0C7QOZcDNrpKjB0kqYoKjhVKZ/Hx6ArR0czkKfHzBBEs6y40ebIHx2nSmA==} engines: {node: '>=16.0.0'} @@ -2714,16 +2354,6 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/util-endpoints@3.572.0: - resolution: {integrity: sha512-AIEC7ItIWBqkJLtqcSd0HG8tvdh3zVwqnKPHNrcfFay0Xonqx3p/qTCDwGosh5CM5hDGzyOSRA5PkacEDBTz9w==} - engines: {node: '>=16.0.0'} - dependencies: - '@aws-sdk/types': 3.567.0 - '@smithy/types': 2.12.0 - '@smithy/util-endpoints': 1.2.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/util-endpoints@3.583.0: resolution: {integrity: sha512-ZC9mb2jq6BFXPYsUsD2tmYcnlmd+9PGNwnFNn8jk4abna5Jjk2wDknN81ybktmBR5ttN9W8ugmktuKtvAMIDCQ==} engines: {node: '>=16.0.0'} @@ -2741,15 +2371,6 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/util-user-agent-browser@3.567.0: - resolution: {integrity: sha512-cqP0uXtZ7m7hRysf3fRyJwcY1jCgQTpJy7BHB5VpsE7DXlXHD5+Ur5L42CY7UrRPrB6lc6YGFqaAOs5ghMcLyA==} - dependencies: - '@aws-sdk/types': 3.567.0 - '@smithy/types': 2.12.0 - bowser: 2.11.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/util-user-agent-browser@3.577.0: resolution: {integrity: sha512-zEAzHgR6HWpZOH7xFgeJLc6/CzMcx4nxeQolZxVZoB5pPaJd3CjyRhZN0xXeZB0XIRCWmb4yJBgyiugXLNMkLA==} dependencies: @@ -2759,21 +2380,6 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/util-user-agent-node@3.568.0: - resolution: {integrity: sha512-NVoZoLnKF+eXPBvXg+KqixgJkPSrerR6Gqmbjwqbv14Ini+0KNKB0/MXas1mDGvvEgtNkHI/Cb9zlJ3KXpti2A==} - engines: {node: '>=16.0.0'} - peerDependencies: - aws-crt: '>=1.0.0' - peerDependenciesMeta: - aws-crt: - optional: true - dependencies: - '@aws-sdk/types': 3.567.0 - '@smithy/node-config-provider': 2.3.0 - '@smithy/types': 2.12.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/util-user-agent-node@3.577.0: resolution: {integrity: sha512-XqvtFjbSMtycZTWVwDe8DRWovuoMbA54nhUoZwVU6rW9OSD6NZWGR512BUGHFaWzW0Wg8++Dj10FrKTG2XtqfA==} engines: {node: '>=16.0.0'} @@ -2795,11 +2401,11 @@ packages: tslib: 2.6.2 dev: false - /@aws-sdk/xml-builder@3.567.0: - resolution: {integrity: sha512-Db25jK9sZdGa7PEQTdm60YauUVbeYGsSEMQOHGP6ifbXfCknqgkPgWV16DqAKJUsbII0xgkJ9LpppkmYal3K/g==} + /@aws-sdk/xml-builder@3.575.0: + resolution: {integrity: sha512-cWgAwmbFYNCFzPwxL705+lWps0F3ZvOckufd2KKoEZUmtpVw9/txUXNrPySUXSmRTSRhoatIMABNfStWR043bQ==} engines: {node: '>=16.0.0'} dependencies: - '@smithy/types': 2.12.0 + '@smithy/types': 3.0.0 tslib: 2.6.2 dev: false @@ -2972,7 +2578,7 @@ packages: resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 @@ -3016,7 +2622,6 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.6 - dev: true /@babel/helper-builder-binary-assignment-operator-visitor@7.24.6: resolution: {integrity: sha512-+wnfqc5uHiMYtvRX7qu80Toef8BXeh4HHR1SPeonGb1SKPniNEd4a/nlaJJMv/OIEYvIVavvo0yR7u10Gqz0Iw==} @@ -3053,50 +2658,32 @@ packages: dependencies: '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-environment-visitor': 7.24.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.24.0) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-split-export-declaration': 7.24.6 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==} + /@babel/helper-create-class-features-plugin@7.24.6(@babel/core@7.24.5): + resolution: {integrity: sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.24.5 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.24.5 - semver: 6.3.1 - - /@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.24.6): - resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.24.5 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.6) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.24.5 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-function-name': 7.24.6 + '@babel/helper-member-expression-to-functions': 7.24.6 + '@babel/helper-optimise-call-expression': 7.24.6 + '@babel/helper-replace-supers': 7.24.6(@babel/core@7.24.5) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 + '@babel/helper-split-export-declaration': 7.24.6 semver: 6.3.1 - dev: false /@babel/helper-create-class-features-plugin@7.24.6(@babel/core@7.24.6): resolution: {integrity: sha512-djsosdPJVZE6Vsw3kk7IPRWethP94WHGOhQTc67SNXE0ZzMhHgALw8iGmYS0TD1bbMM0VDROy43od7/hN6WYcA==} @@ -3114,7 +2701,6 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.24.6 '@babel/helper-split-export-declaration': 7.24.6 semver: 6.3.1 - dev: true /@babel/helper-create-regexp-features-plugin@7.24.6(@babel/core@7.24.6): resolution: {integrity: sha512-C875lFBIWWwyv6MHZUG9HmRrlTDgOsLWZfYR0nW69gaKJNe0/Mpxx5r0EID2ZdHQkdUmQo2t0uNckTL08/1BgA==} @@ -3181,20 +2767,14 @@ packages: resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 - - /@babel/helper-member-expression-to-functions@7.24.5: - resolution: {integrity: sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 + dev: true /@babel/helper-member-expression-to-functions@7.24.6: resolution: {integrity: sha512-OTsCufZTxDUsv2/eDXanw/mUZHWOxSbEmC3pP8cgjcy5rgeVPWWMStnv274DV60JtHxTk0adT0QrCzC4M9NWGg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.6 - dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} @@ -3241,32 +2821,32 @@ packages: '@babel/helper-validator-identifier': 7.22.20 dev: true - /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.0): + /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.24.3 '@babel/helper-simple-access': 7.24.5 '@babel/helper-split-export-declaration': 7.24.5 '@babel/helper-validator-identifier': 7.24.5 - dev: true - /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} + /@babel/helper-module-transforms@7.24.6(@babel/core@7.24.0): + resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.24.5 - '@babel/helper-split-export-declaration': 7.24.5 - '@babel/helper-validator-identifier': 7.24.5 + '@babel/core': 7.24.0 + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-module-imports': 7.24.6 + '@babel/helper-simple-access': 7.24.6 + '@babel/helper-split-export-declaration': 7.24.6 + '@babel/helper-validator-identifier': 7.24.6 + dev: true /@babel/helper-module-transforms@7.24.6(@babel/core@7.24.5): resolution: {integrity: sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==} @@ -3298,14 +2878,14 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 + dev: true /@babel/helper-optimise-call-expression@7.24.6: resolution: {integrity: sha512-3SFDJRbx7KuPRl8XDUr8O7GAEB8iGyWPjLKJh/ywP/Iy9WOmEfMrsWbaZpvBu2HSYn4KQygIsz0O7m8y10ncMA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.6 - dev: true /@babel/helper-plugin-utils@7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} @@ -3320,6 +2900,7 @@ packages: /@babel/helper-plugin-utils@7.24.5: resolution: {integrity: sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==} engines: {node: '>=6.9.0'} + dev: false /@babel/helper-plugin-utils@7.24.6: resolution: {integrity: sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==} @@ -3344,33 +2925,21 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.0 - '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-environment-visitor': 7.24.6 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 dev: true - /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.5): - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + /@babel/helper-replace-supers@7.24.6(@babel/core@7.24.5): + resolution: {integrity: sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - - /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.6): - resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - dev: false + '@babel/helper-environment-visitor': 7.24.6 + '@babel/helper-member-expression-to-functions': 7.24.6 + '@babel/helper-optimise-call-expression': 7.24.6 /@babel/helper-replace-supers@7.24.6(@babel/core@7.24.6): resolution: {integrity: sha512-mRhfPwDqDpba8o1F8ESxsEkJMQkUF8ZIWrAc0FtWhxnjfextxMWxr22RtFizxxSYLjVHDeMgVsRq8BBZR2ikJQ==} @@ -3382,7 +2951,6 @@ packages: '@babel/helper-environment-visitor': 7.24.6 '@babel/helper-member-expression-to-functions': 7.24.6 '@babel/helper-optimise-call-expression': 7.24.6 - dev: true /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} @@ -3406,14 +2974,14 @@ packages: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 + dev: true /@babel/helper-skip-transparent-expression-wrappers@7.24.6: resolution: {integrity: sha512-jhbbkK3IUKc4T43WadP96a27oYti9gEf1LdyGSP2rHGH77kwLwfhO7TgwnWvxxQVmke0ImmCSS47vcuxEMGD3Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.6 - dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} @@ -3478,9 +3046,9 @@ packages: resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 + '@babel/template': 7.24.6 + '@babel/traverse': 7.24.6 + '@babel/types': 7.24.6 transitivePeerDependencies: - supports-color @@ -3550,7 +3118,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.6 /@babel/parser@7.24.1: resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} @@ -3727,7 +3295,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.6 dev: true /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.5): @@ -3737,7 +3305,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.6 /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.6): resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} @@ -3746,8 +3314,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.5 - dev: false + '@babel/helper-plugin-utils': 7.24.6 /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.6): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} @@ -3830,7 +3397,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.0 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.6 dev: true /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.5): @@ -3840,7 +3407,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.6 /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.6): resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} @@ -3849,8 +3416,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.6 - '@babel/helper-plugin-utils': 7.24.5 - dev: false + '@babel/helper-plugin-utils': 7.24.6 /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.6): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} @@ -4116,8 +3682,8 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.0 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-module-transforms': 7.24.6(@babel/core@7.24.0) + '@babel/helper-plugin-utils': 7.24.6 '@babel/helper-simple-access': 7.22.5 dev: true @@ -4416,7 +3982,7 @@ packages: '@babel/core': 7.24.0 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.24.0) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.6 '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.24.0) dev: true @@ -4427,9 +3993,9 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.6 '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.5) /@babel/plugin-transform-typescript@7.24.1(@babel/core@7.24.6): @@ -4439,11 +4005,10 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.6 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.6) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-annotate-as-pure': 7.24.6 + '@babel/helper-create-class-features-plugin': 7.24.6(@babel/core@7.24.6) + '@babel/helper-plugin-utils': 7.24.6 '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.6) - dev: false /@babel/plugin-transform-unicode-escapes@7.24.6(@babel/core@7.24.6): resolution: {integrity: sha512-bKl3xxcPbkQQo5eX9LjjDpU2xYHeEeNQbOhj0iPvetSzA+Tu9q/o5lujF4Sek60CM6MgYvOS/DJuwGbiEYAnLw==} @@ -4630,7 +4195,6 @@ packages: '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.6) '@babel/plugin-transform-modules-commonjs': 7.24.6(@babel/core@7.24.6) '@babel/plugin-transform-typescript': 7.24.1(@babel/core@7.24.6) - dev: false /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} @@ -4681,14 +4245,14 @@ packages: resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.5 + '@babel/code-frame': 7.24.6 + '@babel/generator': 7.24.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -4716,14 +4280,14 @@ packages: resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.5 + '@babel/code-frame': 7.24.6 + '@babel/generator': 7.24.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.24.6 + '@babel/types': 7.24.6 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -5720,7 +5284,6 @@ packages: dependencies: eslint: 8.55.0 eslint-visitor-keys: 3.4.3 - dev: false /@eslint-community/eslint-utils@4.4.0(eslint@9.1.1): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} @@ -5751,7 +5314,6 @@ packages: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - dev: false /@eslint/eslintrc@3.0.2: resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} @@ -5773,7 +5335,6 @@ packages: /@eslint/js@8.55.0: resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false /@eslint/js@9.1.1: resolution: {integrity: sha512-5WoDz3Y19Bg2BnErkZTp0en+c/i9PvgFS7MBe1+m60HjFr0hrphlAGp4yzI7pxpt4xShln4ZyYp4neJm8hmOkQ==} @@ -5800,29 +5361,6 @@ packages: '@floating-ui/dom': 1.6.5 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - - /@floating-ui/react-dom@2.1.0(react-dom@18.3.1)(react@18.2.0): - resolution: {integrity: sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - '@floating-ui/dom': 1.6.5 - react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@floating-ui/react-dom@2.1.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - '@floating-ui/dom': 1.6.5 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false /@floating-ui/utils@0.2.2: resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} @@ -5938,7 +5476,6 @@ packages: minimatch: 3.1.2 transitivePeerDependencies: - supports-color - dev: false /@humanwhocodes/config-array@0.13.0: resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} @@ -5957,7 +5494,6 @@ packages: /@humanwhocodes/object-schema@2.0.1: resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} - dev: false /@humanwhocodes/object-schema@2.0.3: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} @@ -6345,6 +5881,7 @@ packages: resolution: {integrity: sha512-j4K0n+DcmQYCVnSAM+UByTVfIHnYQy2ODozfQP+4RdwtRDfobrIvKq1K4Exb2koJ79HSSa7s6B2SA8T/1YR3RA==} dependencies: glob: 7.1.7 + dev: true /@noble/hashes@1.4.0: resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} @@ -6565,9 +6102,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-accordion@1.1.2(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-accordion@1.1.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-fDG7jcoNKVjSK6yfmuAs0EnPDro0WMXIhMtXdTBWqEioVW206ku+4Lw07e+13lUkFkpoEQ2PdeMIAGpdqEAmDg==} peerDependencies: '@types/react': '*' @@ -6582,44 +6118,16 @@ packages: dependencies: '@babel/runtime': 7.24.6 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collapsible': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-collection': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-collapsible': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-collection': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-accordion@1.1.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-fDG7jcoNKVjSK6yfmuAs0EnPDro0WMXIhMtXdTBWqEioVW206ku+4Lw07e+13lUkFkpoEQ2PdeMIAGpdqEAmDg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collapsible': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-collection': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(react@18.3.1) - '@radix-ui/react-id': 1.0.1(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -6641,9 +6149,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-arrow@1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-arrow@1.0.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: '@types/react': '*' @@ -6657,29 +6164,9 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.6 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@types/react': 18.2.79 + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-arrow@1.0.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-checkbox@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -6708,9 +6195,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-checkbox@1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-checkbox@1.0.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==} peerDependencies: '@types/react': '*' @@ -6727,40 +6213,13 @@ packages: '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-checkbox@1.0.4(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - '@radix-ui/react-use-previous': 1.0.1(react@18.3.1) - '@radix-ui/react-use-size': 1.0.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -6789,9 +6248,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-collapsible@1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-collapsible@1.0.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==} peerDependencies: '@types/react': '*' @@ -6809,39 +6267,12 @@ packages: '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-collapsible@1.0.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-id': 1.0.1(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -6866,9 +6297,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-collection@1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-collection@1.0.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: '@types/react': '*' @@ -6884,33 +6314,10 @@ packages: '@babel/runtime': 7.24.6 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-collection@1.0.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.79)(react@18.2.0): @@ -6926,19 +6333,6 @@ packages: '@types/react': 18.2.79 react: 18.2.0 - /@radix-ui/react-compose-refs@1.0.1(react@18.3.1): - resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.5 - react: 18.3.1 - dev: false - /@radix-ui/react-context-menu@2.1.5(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-R5XaDj06Xul1KGb+WP8qiOh7tKJNz2durpLBXAGZjSVtctcRFCuEvy2gtMwRJGePwQQE5nV77gs4FwRi8T+r2g==} peerDependencies: @@ -6965,7 +6359,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-context-menu@2.1.5(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-context-menu@2.1.5(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-R5XaDj06Xul1KGb+WP8qiOh7tKJNz2durpLBXAGZjSVtctcRFCuEvy2gtMwRJGePwQQE5nV77gs4FwRi8T+r2g==} peerDependencies: '@types/react': '*' @@ -6981,16 +6375,16 @@ packages: '@babel/runtime': 7.24.6 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-menu': 2.0.6(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-menu': 2.0.6(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-context-menu@2.1.5(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-context-menu@2.1.5(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-R5XaDj06Xul1KGb+WP8qiOh7tKJNz2durpLBXAGZjSVtctcRFCuEvy2gtMwRJGePwQQE5nV77gs4FwRi8T+r2g==} peerDependencies: '@types/react': '*' @@ -7005,13 +6399,13 @@ packages: dependencies: '@babel/runtime': 7.24.6 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-menu': 2.0.6(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-menu': 2.0.6(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-context@1.0.1(@types/react@18.2.79)(react@18.2.0): @@ -7027,19 +6421,6 @@ packages: '@types/react': 18.2.79 react: 18.2.0 - /@radix-ui/react-context@1.0.1(react@18.3.1): - resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.5 - react: 18.3.1 - dev: false - /@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} peerDependencies: @@ -7072,9 +6453,8 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0) - dev: false - /@radix-ui/react-dialog@1.0.5(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-dialog@1.0.5(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} peerDependencies: '@types/react': '*' @@ -7091,52 +6471,19 @@ packages: '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 aria-hidden: 1.2.4 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0) - dev: true - - /@radix-ui/react-dialog@1.0.5(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.5(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.5(react@18.3.1) dev: false /@radix-ui/react-direction@1.0.1(@types/react@18.2.79)(react@18.2.0): @@ -7152,19 +6499,6 @@ packages: '@types/react': 18.2.79 react: 18.2.0 - /@radix-ui/react-direction@1.0.1(react@18.3.1): - resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.5 - react: 18.3.1 - dev: false - /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} peerDependencies: @@ -7181,40 +6515,15 @@ packages: '@babel/runtime': 7.24.6 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 - '@types/react-dom': 18.2.25 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@radix-ui/react-dismissable-layer@1.0.5(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): - resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.79)(react@18.2.0) '@types/react': 18.2.79 + '@types/react-dom': 18.2.25 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true + react-dom: 18.2.0(react@18.2.0) - /@radix-ui/react-dismissable-layer@1.0.5(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-dismissable-layer@1.0.5(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} peerDependencies: '@types/react': '*' @@ -7229,12 +6538,12 @@ packages: dependencies: '@babel/runtime': 7.24.6 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.0.3(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.79)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -7264,7 +6573,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-dropdown-menu@2.0.6(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-dropdown-menu@2.0.6(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} peerDependencies: '@types/react': '*' @@ -7282,15 +6591,15 @@ packages: '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-menu': 2.0.6(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-menu': 2.0.6(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-dropdown-menu@2.0.6(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-dropdown-menu@2.0.6(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} peerDependencies: '@types/react': '*' @@ -7305,14 +6614,14 @@ packages: dependencies: '@babel/runtime': 7.24.6 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-id': 1.0.1(react@18.3.1) - '@radix-ui/react-menu': 2.0.6(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-menu': 2.0.6(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.79)(react@18.2.0): @@ -7328,19 +6637,6 @@ packages: '@types/react': 18.2.79 react: 18.2.0 - /@radix-ui/react-focus-guards@1.0.1(react@18.3.1): - resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - react: 18.3.1 - dev: false - /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} peerDependencies: @@ -7362,9 +6658,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-focus-scope@1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-focus-scope@1.0.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} peerDependencies: '@types/react': '*' @@ -7379,32 +6674,10 @@ packages: dependencies: '@babel/runtime': 7.24.6 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-focus-scope@1.0.4(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-icons@1.3.0(react@18.2.0): @@ -7414,14 +6687,6 @@ packages: dependencies: react: 18.2.0 - /@radix-ui/react-icons@1.3.0(react@18.3.1): - resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==} - peerDependencies: - react: ^16.x || ^17.x || ^18.x - dependencies: - react: 18.3.1 - dev: false - /@radix-ui/react-id@1.0.1(@types/react@18.2.79)(react@18.2.0): resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: @@ -7436,20 +6701,6 @@ packages: '@types/react': 18.2.79 react: 18.2.0 - /@radix-ui/react-id@1.0.1(react@18.3.1): - resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.5 - '@radix-ui/react-use-layout-effect': 1.0.1(react@18.3.1) - react: 18.3.1 - dev: false - /@radix-ui/react-menu@2.0.6(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} peerDependencies: @@ -7488,7 +6739,7 @@ packages: react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0) dev: false - /@radix-ui/react-menu@2.0.6(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-menu@2.0.6(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} peerDependencies: '@types/react': '*' @@ -7503,29 +6754,29 @@ packages: dependencies: '@babel/runtime': 7.24.6 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@types/react': 18.2.79 aria-hidden: 1.2.4 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0) dev: true - /@radix-ui/react-menu@2.0.6(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-menu@2.0.6(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} peerDependencies: '@types/react': '*' @@ -7540,25 +6791,25 @@ packages: dependencies: '@babel/runtime': 7.24.6 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.5(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(react@18.3.1) - '@radix-ui/react-popper': 1.1.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-roving-focus': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(react@18.3.1) + '@radix-ui/react-collection': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0) aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.5(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0) dev: false /@radix-ui/react-popover@1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -7596,7 +6847,7 @@ packages: react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0) dev: false - /@radix-ui/react-popover@1.0.7(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-popover@1.0.7(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==} peerDependencies: '@types/react': '*' @@ -7613,24 +6864,24 @@ packages: '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@types/react': 18.2.79 aria-hidden: 1.2.4 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0) dev: true - /@radix-ui/react-popover@1.0.7(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-popover@1.0.7(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==} peerDependencies: '@types/react': '*' @@ -7645,22 +6896,22 @@ packages: dependencies: '@babel/runtime': 7.24.6 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.5(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(react@18.3.1) - '@radix-ui/react-popper': 1.1.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.5(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0) dev: false /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -7691,9 +6942,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-popper@1.1.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-popper@1.1.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} peerDependencies: '@types/react': '*' @@ -7707,47 +6957,18 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.6 - '@floating-ui/react-dom': 2.1.0(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@floating-ui/react-dom': 2.1.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-popper@1.1.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@floating-ui/react-dom': 2.1.0(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-arrow': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(react@18.3.1) - '@radix-ui/react-use-rect': 1.0.1(react@18.3.1) - '@radix-ui/react-use-size': 1.0.1(react@18.3.1) - '@radix-ui/rect': 1.0.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -7769,9 +6990,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-portal@1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-portal@1.0.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} peerDependencies: '@types/react': '*' @@ -7785,29 +7005,9 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.6 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@types/react': 18.2.79 + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-portal@1.0.4(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -7830,9 +7030,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-presence@1.0.1(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-presence@1.0.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: '@types/react': '*' @@ -7848,29 +7047,8 @@ packages: '@babel/runtime': 7.24.6 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-presence@1.0.1(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -7892,9 +7070,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-primitive@1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-primitive@1.0.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -7909,28 +7086,8 @@ packages: dependencies: '@babel/runtime': 7.24.6 '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-primitive@1.0.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/react-slot': 1.0.2(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-progress@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -7985,7 +7142,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-radio-group@1.1.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-radio-group@1.1.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-x+yELayyefNeKeTx4fjK6j99Fs6c4qKm3aY38G3swQVTN6xMpsrbigC0uHs2L//g8q4qR7qOcww8430jJmi2ag==} peerDependencies: '@types/react': '*' @@ -8003,18 +7160,18 @@ packages: '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-radio-group@1.1.3(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-radio-group@1.1.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-x+yELayyefNeKeTx4fjK6j99Fs6c4qKm3aY38G3swQVTN6xMpsrbigC0uHs2L//g8q4qR7qOcww8430jJmi2ag==} peerDependencies: '@types/react': '*' @@ -8029,17 +7186,17 @@ packages: dependencies: '@babel/runtime': 7.24.6 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-roving-focus': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - '@radix-ui/react-use-previous': 1.0.1(react@18.3.1) - '@radix-ui/react-use-size': 1.0.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.79)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -8069,9 +7226,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-roving-focus@1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-roving-focus@1.0.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: '@types/react': '*' @@ -8086,44 +7242,16 @@ packages: dependencies: '@babel/runtime': 7.24.6 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-collection': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-roving-focus@1.0.4(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(react@18.3.1) - '@radix-ui/react-id': 1.0.1(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-select@2.0.0(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -8167,7 +7295,7 @@ packages: react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0) dev: false - /@radix-ui/react-select@2.0.0(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-select@2.0.0(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==} peerDependencies: '@types/react': '*' @@ -8183,31 +7311,31 @@ packages: '@babel/runtime': 7.24.6 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.79 aria-hidden: 1.2.4 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0) dev: true - /@radix-ui/react-select@2.0.0(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-select@2.0.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==} peerDependencies: '@types/react': '*' @@ -8223,27 +7351,27 @@ packages: '@babel/runtime': 7.24.6 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.5(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-focus-guards': 1.0.1(react@18.3.1) - '@radix-ui/react-focus-scope': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(react@18.3.1) - '@radix-ui/react-popper': 1.1.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(react@18.3.1) - '@radix-ui/react-use-previous': 1.0.1(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(react-dom@18.3.1)(react@18.3.1) + '@radix-ui/react-collection': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(react-dom@18.2.0)(react@18.2.0) aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.5(react@18.3.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0) dev: false /@radix-ui/react-slider@1.1.2(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -8275,9 +7403,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-slider@1.1.2(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-slider@1.1.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-NKs15MJylfzVsCagVSWKhGGLNR1W9qWs+HtgbmjjVUB3B9+lb3PYoXxVju3kOrpf0VKyVCtZp+iTwVoqpa1Chw==} peerDependencies: '@types/react': '*' @@ -8293,47 +7420,17 @@ packages: '@babel/runtime': 7.24.6 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-collection': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-slider@1.1.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-NKs15MJylfzVsCagVSWKhGGLNR1W9qWs+HtgbmjjVUB3B9+lb3PYoXxVju3kOrpf0VKyVCtZp+iTwVoqpa1Chw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/number': 1.0.1 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(react@18.3.1) - '@radix-ui/react-use-previous': 1.0.1(react@18.3.1) - '@radix-ui/react-use-size': 1.0.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-slot@1.0.2(@types/react@18.2.79)(react@18.2.0): @@ -8348,21 +7445,7 @@ packages: '@babel/runtime': 7.24.6 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@types/react': 18.2.79 - react: 18.2.0 - - /@radix-ui/react-slot@1.0.2(react@18.3.1): - resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - react: 18.3.1 - dev: false + react: 18.2.0 /@radix-ui/react-switch@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==} @@ -8389,9 +7472,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-switch@1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-switch@1.0.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==} peerDependencies: '@types/react': '*' @@ -8408,38 +7490,12 @@ packages: '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-switch@1.0.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - '@radix-ui/react-use-previous': 1.0.1(react@18.3.1) - '@radix-ui/react-use-size': 1.0.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-tabs@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -8470,7 +7526,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-tabs@1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-tabs@1.0.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==} peerDependencies: '@types/react': '*' @@ -8488,16 +7544,16 @@ packages: '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-tabs@1.0.4(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-tabs@1.0.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==} peerDependencies: '@types/react': '*' @@ -8512,15 +7568,15 @@ packages: dependencies: '@babel/runtime': 7.24.6 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(react@18.3.1) - '@radix-ui/react-id': 1.0.1(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-roving-focus': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-toast@1.1.5(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -8553,9 +7609,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-toast@1.1.5(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-toast@1.1.5(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-fRLn227WHIBRSzuRzGJ8W+5YALxofH23y0MlPLddaIpLpCDqdE0NZlS2NRQDRiptfxDeeCjgFIpexB1/zkxDlw==} peerDependencies: '@types/react': '*' @@ -8570,50 +7625,19 @@ packages: dependencies: '@babel/runtime': 7.24.6 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-collection': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@types/react': 18.2.79 + '@radix-ui/react-visually-hidden': 1.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-toast@1.1.5(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-fRLn227WHIBRSzuRzGJ8W+5YALxofH23y0MlPLddaIpLpCDqdE0NZlS2NRQDRiptfxDeeCjgFIpexB1/zkxDlw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.5(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.0.1(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.0.1(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -8643,7 +7667,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-toggle-group@1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-toggle-group@1.0.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==} peerDependencies: '@types/react': '*' @@ -8660,16 +7684,16 @@ packages: '@radix-ui/primitive': 1.0.1 '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-toggle': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-toggle-group@1.0.4(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-toggle-group@1.0.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==} peerDependencies: '@types/react': '*' @@ -8684,14 +7708,14 @@ packages: dependencies: '@babel/runtime': 7.24.6 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-direction': 1.0.1(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-roving-focus': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-toggle': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-toggle@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -8715,9 +7739,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-toggle@1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-toggle@1.0.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==} peerDependencies: '@types/react': '*' @@ -8732,32 +7755,10 @@ packages: dependencies: '@babel/runtime': 7.24.5 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-toggle@1.0.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.5 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): @@ -8792,7 +7793,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-tooltip@1.0.7(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-tooltip@1.0.7(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==} peerDependencies: '@types/react': '*' @@ -8809,21 +7810,21 @@ packages: '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-popper': 1.1.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-portal': 1.0.4(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0) '@types/react': 18.2.79 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-tooltip@1.0.7(react-dom@18.3.1)(react@18.3.1): + /@radix-ui/react-tooltip@1.0.7(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==} peerDependencies: '@types/react': '*' @@ -8838,19 +7839,19 @@ packages: dependencies: '@babel/runtime': 7.24.6 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(react@18.3.1) - '@radix-ui/react-context': 1.0.1(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.5(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(react@18.3.1) - '@radix-ui/react-popper': 1.1.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.79)(react@18.2.0): @@ -8866,19 +7867,6 @@ packages: '@types/react': 18.2.79 react: 18.2.0 - /@radix-ui/react-use-callback-ref@1.0.1(react@18.3.1): - resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.5 - react: 18.3.1 - dev: false - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.79)(react@18.2.0): resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: @@ -8893,20 +7881,6 @@ packages: '@types/react': 18.2.79 react: 18.2.0 - /@radix-ui/react-use-controllable-state@1.0.1(react@18.3.1): - resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.5 - '@radix-ui/react-use-callback-ref': 1.0.1(react@18.3.1) - react: 18.3.1 - dev: false - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.79)(react@18.2.0): resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: @@ -8921,20 +7895,6 @@ packages: '@types/react': 18.2.79 react: 18.2.0 - /@radix-ui/react-use-escape-keydown@1.0.3(react@18.3.1): - resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/react-use-callback-ref': 1.0.1(react@18.3.1) - react: 18.3.1 - dev: false - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.79)(react@18.2.0): resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: @@ -8948,19 +7908,6 @@ packages: '@types/react': 18.2.79 react: 18.2.0 - /@radix-ui/react-use-layout-effect@1.0.1(react@18.3.1): - resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.5 - react: 18.3.1 - dev: false - /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.79)(react@18.2.0): resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} peerDependencies: @@ -8974,19 +7921,6 @@ packages: '@types/react': 18.2.79 react: 18.2.0 - /@radix-ui/react-use-previous@1.0.1(react@18.3.1): - resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - react: 18.3.1 - dev: false - /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.79)(react@18.2.0): resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: @@ -9001,20 +7935,6 @@ packages: '@types/react': 18.2.79 react: 18.2.0 - /@radix-ui/react-use-rect@1.0.1(react@18.3.1): - resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/rect': 1.0.1 - react: 18.3.1 - dev: false - /@radix-ui/react-use-size@1.0.1(@types/react@18.2.79)(react@18.2.0): resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: @@ -9029,20 +7949,6 @@ packages: '@types/react': 18.2.79 react: 18.2.0 - /@radix-ui/react-use-size@1.0.1(react@18.3.1): - resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/react-use-layout-effect': 1.0.1(react@18.3.1) - react: 18.3.1 - dev: false - /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} peerDependencies: @@ -9062,9 +7968,8 @@ packages: '@types/react-dom': 18.2.25 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-visually-hidden@1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0): + /@radix-ui/react-visually-hidden@1.0.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} peerDependencies: '@types/react': '*' @@ -9078,29 +7983,9 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.6 - '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.3.1)(react@18.2.0) - '@types/react': 18.2.79 + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@radix-ui/react-visually-hidden@1.0.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - dependencies: - '@babel/runtime': 7.24.6 - '@radix-ui/react-primitive': 1.0.3(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 18.2.0(react@18.2.0) dev: false /@radix-ui/rect@1.0.1: @@ -9127,16 +8012,6 @@ packages: '@react-spring/types': 9.7.3 react: 18.2.0 - /@react-spring/animated@9.7.3(react@18.3.1): - resolution: {integrity: sha512-5CWeNJt9pNgyvuSzQH+uy2pvTg8Y4/OisoscZIR8/ZNLIOI+CatFBhGZpDGTF/OzdNFsAoGk3wiUYTwoJ0YIvw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@react-spring/shared': 9.7.3(react@18.3.1) - '@react-spring/types': 9.7.3 - react: 18.3.1 - dev: false - /@react-spring/core@9.6.1(react@18.2.0): resolution: {integrity: sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ==} peerDependencies: @@ -9159,17 +8034,6 @@ packages: '@react-spring/types': 9.7.3 react: 18.2.0 - /@react-spring/core@9.7.3(react@18.3.1): - resolution: {integrity: sha512-IqFdPVf3ZOC1Cx7+M0cXf4odNLxDC+n7IN3MDcVCTIOSBfqEcBebSv+vlY5AhM0zw05PDbjKrNmBpzv/AqpjnQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@react-spring/animated': 9.7.3(react@18.3.1) - '@react-spring/shared': 9.7.3(react@18.3.1) - '@react-spring/types': 9.7.3 - react: 18.3.1 - dev: false - /@react-spring/rafz@9.6.1: resolution: {integrity: sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ==} dev: false @@ -9192,15 +8056,6 @@ packages: '@react-spring/types': 9.7.3 react: 18.2.0 - /@react-spring/shared@9.7.3(react@18.3.1): - resolution: {integrity: sha512-NEopD+9S5xYyQ0pGtioacLhL2luflh6HACSSDUZOwLHoxA5eku1UPuqcJqjwSD6luKjjLfiLOspxo43FUHKKSA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@react-spring/types': 9.7.3 - react: 18.3.1 - dev: false - /@react-spring/three@9.6.1(@react-three/fiber@8.15.19)(react@18.2.0)(three@0.162.0): resolution: {integrity: sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA==} peerDependencies: @@ -9268,35 +8123,6 @@ packages: '@react-spring/types': 9.7.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - - /@react-spring/web@9.7.3(react-dom@18.3.1)(react@18.2.0): - resolution: {integrity: sha512-BXt6BpS9aJL/QdVqEIX9YoUy8CE6TJrU0mNCqSoxdXlIeNcEBWOfIyE6B14ENNsyQKS3wOWkiJfco0tCr/9tUg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@react-spring/animated': 9.7.3(react@18.2.0) - '@react-spring/core': 9.7.3(react@18.2.0) - '@react-spring/shared': 9.7.3(react@18.2.0) - '@react-spring/types': 9.7.3 - react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@react-spring/web@9.7.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-BXt6BpS9aJL/QdVqEIX9YoUy8CE6TJrU0mNCqSoxdXlIeNcEBWOfIyE6B14ENNsyQKS3wOWkiJfco0tCr/9tUg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@react-spring/animated': 9.7.3(react@18.3.1) - '@react-spring/core': 9.7.3(react@18.3.1) - '@react-spring/shared': 9.7.3(react@18.3.1) - '@react-spring/types': 9.7.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false /@react-three/drei@9.101.0(@react-three/fiber@8.15.19)(@types/react@18.2.79)(@types/three@0.162.0)(react-dom@18.2.0)(react@18.2.0)(three@0.162.0): resolution: {integrity: sha512-JuU8CKT0rbf7LP2XbDCqAEOdSSq5U3pk/BlxAlxZszRd7tByKhWZAEKY1QCZ/2pxBiIc0pWWR0rv8Me8BAQ6AQ==} @@ -9955,6 +8781,7 @@ packages: /@rushstack/eslint-patch@1.6.0: resolution: {integrity: sha512-2/U3GXA6YiPYQDLGwtGlnNgKYBSwCFIHf8Y9LUY5VATHdtbLlU0Y1R3QoBnT0aB4qv/BEiVVsj7LJXoQCgJ2vA==} + dev: true /@shikijs/core@1.4.0: resolution: {integrity: sha512-CxpKLntAi64h3j+TwWqVIQObPTED0FyXLHTTh3MKXtqiQNn2JGcMQQ362LftDbc9kYbDtrksNMNoVmVXzKFYUQ==} @@ -9980,52 +8807,27 @@ packages: tslib: 2.6.2 dev: false - /@smithy/chunked-blob-reader-native@2.2.0: - resolution: {integrity: sha512-VNB5+1oCgX3Fzs072yuRsUoC2N4Zg/LJ11DTxX3+Qu+Paa6AmbIF0E9sc2wthz9Psrk/zcOlTCyuposlIhPjZQ==} - dependencies: - '@smithy/util-base64': 2.3.0 - tslib: 2.6.2 - dev: false - - /@smithy/chunked-blob-reader@2.2.0: - resolution: {integrity: sha512-3GJNvRwXBGdkDZZOGiziVYzDpn4j6zfyULHMDKAGIUo72yHALpE9CbhfQp/XcLNVoc1byfMpn6uW5H2BqPjgaQ==} + /@smithy/chunked-blob-reader-native@3.0.0: + resolution: {integrity: sha512-VDkpCYW+peSuM4zJip5WDfqvg2Mo/e8yxOv3VF1m11y7B8KKMKVFtmZWDe36Fvk8rGuWrPZHHXZ7rR7uM5yWyg==} dependencies: + '@smithy/util-base64': 3.0.0 tslib: 2.6.2 dev: false - /@smithy/config-resolver@2.2.0: - resolution: {integrity: sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==} - engines: {node: '>=14.0.0'} + /@smithy/chunked-blob-reader@3.0.0: + resolution: {integrity: sha512-sbnURCwjF0gSToGlsBiAmd1lRCmSn72nu9axfJu5lIx6RUEgHu6GwTMbqCdhQSi0Pumcm5vFxsi9XWXb2mTaoA==} dependencies: - '@smithy/node-config-provider': 2.3.0 - '@smithy/types': 2.12.0 - '@smithy/util-config-provider': 2.3.0 - '@smithy/util-middleware': 2.2.0 tslib: 2.6.2 dev: false /@smithy/config-resolver@3.0.0: resolution: {integrity: sha512-2GzOfADwYLQugYkKQhIyZyQlM05K+tMKvRnc6eFfZcpJGRfKoMUMYdPlBKmqHwQFXQKBrGV6cxL9oymWgDzvFw==} engines: {node: '>=16.0.0'} - dependencies: - '@smithy/node-config-provider': 3.0.0 - '@smithy/types': 3.0.0 - '@smithy/util-config-provider': 3.0.0 - '@smithy/util-middleware': 3.0.0 - tslib: 2.6.2 - dev: false - - /@smithy/core@1.4.2: - resolution: {integrity: sha512-2fek3I0KZHWJlRLvRTqxTEri+qV0GRHrJIoLFuBMZB4EMg4WgeBGfF0X6abnrNYpq55KJ6R4D6x4f0vLnhzinA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/middleware-endpoint': 2.5.1 - '@smithy/middleware-retry': 2.3.1 - '@smithy/middleware-serde': 2.3.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/smithy-client': 2.5.1 - '@smithy/types': 2.12.0 - '@smithy/util-middleware': 2.2.0 + dependencies: + '@smithy/node-config-provider': 3.0.0 + '@smithy/types': 3.0.0 + '@smithy/util-config-provider': 3.0.0 + '@smithy/util-middleware': 3.0.0 tslib: 2.6.2 dev: false @@ -10043,17 +8845,6 @@ packages: tslib: 2.6.2 dev: false - /@smithy/credential-provider-imds@2.3.0: - resolution: {integrity: sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.3.0 - '@smithy/property-provider': 2.2.0 - '@smithy/types': 2.12.0 - '@smithy/url-parser': 2.2.0 - tslib: 2.6.2 - dev: false - /@smithy/credential-provider-imds@3.0.0: resolution: {integrity: sha512-lfmBiFQcA3FsDAPxNfY0L7CawcWtbyWsBOHo34nF095728JLkBX4Y9q/VPPE2r7fqMVK+drmDigqE2/SSQeVRA==} engines: {node: '>=16.0.0'} @@ -10065,47 +8856,47 @@ packages: tslib: 2.6.2 dev: false - /@smithy/eventstream-codec@2.2.0: - resolution: {integrity: sha512-8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw==} + /@smithy/eventstream-codec@3.0.0: + resolution: {integrity: sha512-PUtyEA0Oik50SaEFCZ0WPVtF9tz/teze2fDptW6WRXl+RrEenH8UbEjudOz8iakiMl3lE3lCVqYf2Y+znL8QFQ==} dependencies: '@aws-crypto/crc32': 3.0.0 - '@smithy/types': 2.12.0 - '@smithy/util-hex-encoding': 2.2.0 + '@smithy/types': 3.0.0 + '@smithy/util-hex-encoding': 3.0.0 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-browser@2.2.0: - resolution: {integrity: sha512-UaPf8jKbcP71BGiO0CdeLmlg+RhWnlN8ipsMSdwvqBFigl5nil3rHOI/5GE3tfiuX8LvY5Z9N0meuU7Rab7jWw==} - engines: {node: '>=14.0.0'} + /@smithy/eventstream-serde-browser@3.0.0: + resolution: {integrity: sha512-NB7AFiPN4NxP/YCAnrvYR18z2/ZsiHiF7VtG30gshO9GbFrIb1rC8ep4NGpJSWrz6P64uhPXeo4M0UsCLnZKqw==} + engines: {node: '>=16.0.0'} dependencies: - '@smithy/eventstream-serde-universal': 2.2.0 - '@smithy/types': 2.12.0 + '@smithy/eventstream-serde-universal': 3.0.0 + '@smithy/types': 3.0.0 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-config-resolver@2.2.0: - resolution: {integrity: sha512-RHhbTw/JW3+r8QQH7PrganjNCiuiEZmpi6fYUAetFfPLfZ6EkiA08uN3EFfcyKubXQxOwTeJRZSQmDDCdUshaA==} - engines: {node: '>=14.0.0'} + /@smithy/eventstream-serde-config-resolver@3.0.0: + resolution: {integrity: sha512-RUQG3vQ3LX7peqqHAbmayhgrF5aTilPnazinaSGF1P0+tgM3vvIRWPHmlLIz2qFqB9LqFIxditxc8O2Z6psrRw==} + engines: {node: '>=16.0.0'} dependencies: - '@smithy/types': 2.12.0 + '@smithy/types': 3.0.0 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-node@2.2.0: - resolution: {integrity: sha512-zpQMtJVqCUMn+pCSFcl9K/RPNtQE0NuMh8sKpCdEHafhwRsjP50Oq/4kMmvxSRy6d8Jslqd8BLvDngrUtmN9iA==} - engines: {node: '>=14.0.0'} + /@smithy/eventstream-serde-node@3.0.0: + resolution: {integrity: sha512-baRPdMBDMBExZXIUAoPGm/hntixjt/VFpU6+VmCyiYJYzRHRxoaI1MN+5XE+hIS8AJ2GCHLMFEIOLzq9xx1EgQ==} + engines: {node: '>=16.0.0'} dependencies: - '@smithy/eventstream-serde-universal': 2.2.0 - '@smithy/types': 2.12.0 + '@smithy/eventstream-serde-universal': 3.0.0 + '@smithy/types': 3.0.0 tslib: 2.6.2 dev: false - /@smithy/eventstream-serde-universal@2.2.0: - resolution: {integrity: sha512-pvoe/vvJY0mOpuF84BEtyZoYfbehiFj8KKWk1ds2AT0mTLYFVs+7sBJZmioOFdBXKd48lfrx1vumdPdmGlCLxA==} - engines: {node: '>=14.0.0'} + /@smithy/eventstream-serde-universal@3.0.0: + resolution: {integrity: sha512-HNFfShmotWGeAoW4ujP8meV9BZavcpmerDbPIjkJbxKbN8RsUcpRQ/2OyIxWNxXNH2GWCAxuSB7ynmIGJlQ3Dw==} + engines: {node: '>=16.0.0'} dependencies: - '@smithy/eventstream-codec': 2.2.0 - '@smithy/types': 2.12.0 + '@smithy/eventstream-codec': 3.0.0 + '@smithy/types': 3.0.0 tslib: 2.6.2 dev: false @@ -10129,22 +8920,12 @@ packages: tslib: 2.6.2 dev: false - /@smithy/hash-blob-browser@2.2.0: - resolution: {integrity: sha512-SGPoVH8mdXBqrkVCJ1Hd1X7vh1zDXojNN1yZyZTZsCno99hVue9+IYzWDjq/EQDDXxmITB0gBmuyPh8oAZSTcg==} - dependencies: - '@smithy/chunked-blob-reader': 2.2.0 - '@smithy/chunked-blob-reader-native': 2.2.0 - '@smithy/types': 2.12.0 - tslib: 2.6.2 - dev: false - - /@smithy/hash-node@2.2.0: - resolution: {integrity: sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==} - engines: {node: '>=14.0.0'} + /@smithy/hash-blob-browser@3.0.0: + resolution: {integrity: sha512-/Wbpdg+bwJvW7lxR/zpWAc1/x/YkcqguuF2bAzkJrvXriZu1vm8r+PUdE4syiVwQg7PPR2dXpi3CLBb9qRDaVQ==} dependencies: - '@smithy/types': 2.12.0 - '@smithy/util-buffer-from': 2.2.0 - '@smithy/util-utf8': 2.3.0 + '@smithy/chunked-blob-reader': 3.0.0 + '@smithy/chunked-blob-reader-native': 3.0.0 + '@smithy/types': 3.0.0 tslib: 2.6.2 dev: false @@ -10158,19 +8939,12 @@ packages: tslib: 2.6.2 dev: false - /@smithy/hash-stream-node@2.2.0: - resolution: {integrity: sha512-aT+HCATOSRMGpPI7bi7NSsTNVZE/La9IaxLXWoVAYMxHT5hGO3ZOGEMZQg8A6nNL+pdFGtZQtND1eoY084HgHQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.12.0 - '@smithy/util-utf8': 2.3.0 - tslib: 2.6.2 - dev: false - - /@smithy/invalid-dependency@2.2.0: - resolution: {integrity: sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==} + /@smithy/hash-stream-node@3.0.0: + resolution: {integrity: sha512-J0i7de+EgXDEGITD4fxzmMX8CyCNETTIRXlxjMiNUvvu76Xn3GJ31wQR85ynlPk2wI1lqoknAFJaD1fiNDlbIA==} + engines: {node: '>=16.0.0'} dependencies: - '@smithy/types': 2.12.0 + '@smithy/types': 3.0.0 + '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 dev: false @@ -10195,20 +8969,11 @@ packages: tslib: 2.6.2 dev: false - /@smithy/md5-js@2.2.0: - resolution: {integrity: sha512-M26XTtt9IIusVMOWEAhIvFIr9jYj4ISPPGJROqw6vXngO3IYJCnVVSMFn4Tx1rUTG5BiKJNg9u2nxmBiZC5IlQ==} - dependencies: - '@smithy/types': 2.12.0 - '@smithy/util-utf8': 2.3.0 - tslib: 2.6.2 - dev: false - - /@smithy/middleware-content-length@2.2.0: - resolution: {integrity: sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==} - engines: {node: '>=14.0.0'} + /@smithy/md5-js@3.0.0: + resolution: {integrity: sha512-Tm0vrrVzjlD+6RCQTx7D3Ls58S3FUH1ZCtU1MIh/qQmaOo1H9lMN2as6CikcEwgattnA9SURSdoJJ27xMcEfMA==} dependencies: - '@smithy/protocol-http': 3.3.0 - '@smithy/types': 2.12.0 + '@smithy/types': 3.0.0 + '@smithy/util-utf8': 3.0.0 tslib: 2.6.2 dev: false @@ -10247,21 +9012,6 @@ packages: tslib: 2.6.2 dev: false - /@smithy/middleware-retry@2.3.1: - resolution: {integrity: sha512-P2bGufFpFdYcWvqpyqqmalRtwFUNUA8vHjJR5iGqbfR6mp65qKOLcUd6lTr4S9Gn/enynSrSf3p3FVgVAf6bXA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.3.0 - '@smithy/protocol-http': 3.3.0 - '@smithy/service-error-classification': 2.1.5 - '@smithy/smithy-client': 2.5.1 - '@smithy/types': 2.12.0 - '@smithy/util-middleware': 2.2.0 - '@smithy/util-retry': 2.2.0 - tslib: 2.6.2 - uuid: 9.0.1 - dev: false - /@smithy/middleware-retry@3.0.1: resolution: {integrity: sha512-hBhSEuL841FhJBK/19WpaGk5YWSzFk/P2UaVjANGKRv3eYNO8Y1lANWgqnuPWjOyCEWMPr58vELFDWpxvRKANw==} engines: {node: '>=16.0.0'} @@ -10417,13 +9167,6 @@ packages: tslib: 2.6.2 dev: false - /@smithy/service-error-classification@2.1.5: - resolution: {integrity: sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.12.0 - dev: false - /@smithy/service-error-classification@3.0.0: resolution: {integrity: sha512-3BsBtOUt2Gsnc3X23ew+r2M71WwtpHfEDGhHYHSDg6q1t8FrWh15jT25DLajFV1H+PpxAJ6gqe9yYeRUsmSdFA==} engines: {node: '>=16.0.0'} @@ -10447,19 +9190,6 @@ packages: tslib: 2.6.2 dev: false - /@smithy/signature-v4@2.3.0: - resolution: {integrity: sha512-ui/NlpILU+6HAQBfJX8BBsDXuKSNrjTSuOYArRblcrErwKFutjrCNb/OExfVRyj9+26F9J+ZmfWT+fKWuDrH3Q==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/is-array-buffer': 2.2.0 - '@smithy/types': 2.12.0 - '@smithy/util-hex-encoding': 2.2.0 - '@smithy/util-middleware': 2.2.0 - '@smithy/util-uri-escape': 2.2.0 - '@smithy/util-utf8': 2.3.0 - tslib: 2.6.2 - dev: false - /@smithy/signature-v4@3.0.0: resolution: {integrity: sha512-kXFOkNX+BQHe2qnLxpMEaCRGap9J6tUGLzc3A9jdn+nD4JdMwCKTJ+zFwQ20GkY+mAXGatyTw3HcoUlR39HwmA==} engines: {node: '>=16.0.0'} @@ -10545,25 +9275,12 @@ packages: tslib: 2.6.2 dev: false - /@smithy/util-body-length-browser@2.2.0: - resolution: {integrity: sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==} - dependencies: - tslib: 2.6.2 - dev: false - /@smithy/util-body-length-browser@3.0.0: resolution: {integrity: sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==} dependencies: tslib: 2.6.2 dev: false - /@smithy/util-body-length-node@2.3.0: - resolution: {integrity: sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - /@smithy/util-body-length-node@3.0.0: resolution: {integrity: sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==} engines: {node: '>=16.0.0'} @@ -10587,13 +9304,6 @@ packages: tslib: 2.6.2 dev: false - /@smithy/util-config-provider@2.3.0: - resolution: {integrity: sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==} - engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - /@smithy/util-config-provider@3.0.0: resolution: {integrity: sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==} engines: {node: '>=16.0.0'} @@ -10601,17 +9311,6 @@ packages: tslib: 2.6.2 dev: false - /@smithy/util-defaults-mode-browser@2.2.1: - resolution: {integrity: sha512-RtKW+8j8skk17SYowucwRUjeh4mCtnm5odCL0Lm2NtHQBsYKrNW0od9Rhopu9wF1gHMfHeWF7i90NwBz/U22Kw==} - engines: {node: '>= 10.0.0'} - dependencies: - '@smithy/property-provider': 2.2.0 - '@smithy/smithy-client': 2.5.1 - '@smithy/types': 2.12.0 - bowser: 2.11.0 - tslib: 2.6.2 - dev: false - /@smithy/util-defaults-mode-browser@3.0.1: resolution: {integrity: sha512-nW5kEzdJn1Bn5TF+gOPHh2rcPli8JU9vSSXLbfg7uPnfR1TMRQqs9zlYRhIb87NeSxIbpdXOI94tvXSy+fvDYg==} engines: {node: '>= 10.0.0'} @@ -10623,19 +9322,6 @@ packages: tslib: 2.6.2 dev: false - /@smithy/util-defaults-mode-node@2.3.1: - resolution: {integrity: sha512-vkMXHQ0BcLFysBMWgSBLSk3+leMpFSyyFj8zQtv5ZyUBx8/owVh1/pPEkzmW/DR/Gy/5c8vjLDD9gZjXNKbrpA==} - engines: {node: '>= 10.0.0'} - dependencies: - '@smithy/config-resolver': 2.2.0 - '@smithy/credential-provider-imds': 2.3.0 - '@smithy/node-config-provider': 2.3.0 - '@smithy/property-provider': 2.2.0 - '@smithy/smithy-client': 2.5.1 - '@smithy/types': 2.12.0 - tslib: 2.6.2 - dev: false - /@smithy/util-defaults-mode-node@3.0.1: resolution: {integrity: sha512-TFk+Qb+elLc/MOhtSp+50fstyfZ6avQbgH2d96xUBpeScu+Al9elxv+UFAjaTHe0HQe5n+wem8ZLpXvU8lwV6Q==} engines: {node: '>= 10.0.0'} @@ -10649,15 +9335,6 @@ packages: tslib: 2.6.2 dev: false - /@smithy/util-endpoints@1.2.0: - resolution: {integrity: sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ==} - engines: {node: '>= 14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.3.0 - '@smithy/types': 2.12.0 - tslib: 2.6.2 - dev: false - /@smithy/util-endpoints@2.0.0: resolution: {integrity: sha512-+exaXzEY3DNt2qtA2OtRNSDlVrE4p32j1JSsQkzA5AdP0YtJNjkYbYhJxkFmPYcjI1abuwopOZCwUmv682QkiQ==} engines: {node: '>=16.0.0'} @@ -10697,15 +9374,6 @@ packages: tslib: 2.6.2 dev: false - /@smithy/util-retry@2.2.0: - resolution: {integrity: sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==} - engines: {node: '>= 14.0.0'} - dependencies: - '@smithy/service-error-classification': 2.1.5 - '@smithy/types': 2.12.0 - tslib: 2.6.2 - dev: false - /@smithy/util-retry@3.0.0: resolution: {integrity: sha512-nK99bvJiziGv/UOKJlDvFF45F00WgPLKVIGUfAK+mDhzVN2hb/S33uW2Tlhg5PVBoqY7tDVqL0zmu4OxAHgo9g==} engines: {node: '>=16.0.0'} @@ -10773,15 +9441,6 @@ packages: tslib: 2.6.2 dev: false - /@smithy/util-waiter@2.2.0: - resolution: {integrity: sha512-IHk53BVw6MPMi2Gsn+hCng8rFA3ZmR3Rk7GllxDUW9qFJl/hiSvskn7XldkECapQVkIg/1dHpMAxI9xSTaLLSA==} - engines: {node: '>=14.0.0'} - dependencies: - '@smithy/abort-controller': 2.2.0 - '@smithy/types': 2.12.0 - tslib: 2.6.2 - dev: false - /@smithy/util-waiter@3.0.0: resolution: {integrity: sha512-+fEXJxGDLCoqRKVSmo0auGxaqbiCo+8oph+4auefYjaNxjOLKSY2MxVQfRzo65PaZv4fr+5lWg+au7vSuJJ/zw==} engines: {node: '>=16.0.0'} @@ -11375,6 +10034,17 @@ packages: linkifyjs: 4.1.3 dev: false + /@tiptap/extension-link@2.2.4(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0): + resolution: {integrity: sha512-Qsx0cFZm4dxbkToXs5TcXbSoUdicv8db1gV1DYIZdETqjBm4wFjlzCUP7hPHFlvNfeSy1BzAMRt+RpeuiwvxWQ==} + peerDependencies: + '@tiptap/core': ^2.0.0 + '@tiptap/pm': ^2.0.0 + dependencies: + '@tiptap/core': 2.4.0(@tiptap/pm@2.4.0) + '@tiptap/pm': 2.4.0 + linkifyjs: 4.1.3 + dev: false + /@tiptap/extension-list-item@2.2.4(@tiptap/core@2.4.0): resolution: {integrity: sha512-lPLKGKsHpM9ClUa8n7GEUn8pG6HCYU0vFruIy3l2t6jZdHkrgBnYtVGMZ13K8UDnj/hlAlccxku0D0P4mA1Vrg==} peerDependencies: @@ -11486,12 +10156,12 @@ packages: prosemirror-keymap: 1.2.2 prosemirror-markdown: 1.13.0 prosemirror-menu: 1.2.4 - prosemirror-model: 1.21.0 + prosemirror-model: 1.19.4 prosemirror-schema-basic: 1.2.2 prosemirror-schema-list: 1.3.0 prosemirror-state: 1.4.3 prosemirror-tables: 1.3.7 - prosemirror-trailing-node: 2.0.8(prosemirror-model@1.21.0)(prosemirror-state@1.4.3)(prosemirror-view@1.33.6) + prosemirror-trailing-node: 2.0.8(prosemirror-model@1.19.4)(prosemirror-state@1.4.3)(prosemirror-view@1.33.6) prosemirror-transform: 1.9.0 prosemirror-view: 1.33.6 @@ -11511,7 +10181,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@tiptap/react@2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0)(react-dom@18.3.1)(react@18.2.0): + /@tiptap/react@2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-baxnIr6Dy+5iGagOEIKFeHzdl1ZRa6Cg+SJ3GDL/BVLpO6KiCM3Mm5ymB726UKP1w7icrBiQD2fGY3Bx8KaiSA==} peerDependencies: '@tiptap/core': ^2.0.0 @@ -11524,24 +10194,7 @@ packages: '@tiptap/extension-floating-menu': 2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0) '@tiptap/pm': 2.4.0 react: 18.2.0 - react-dom: 18.3.1(react@18.2.0) - dev: true - - /@tiptap/react@2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-baxnIr6Dy+5iGagOEIKFeHzdl1ZRa6Cg+SJ3GDL/BVLpO6KiCM3Mm5ymB726UKP1w7icrBiQD2fGY3Bx8KaiSA==} - peerDependencies: - '@tiptap/core': ^2.0.0 - '@tiptap/pm': ^2.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - dependencies: - '@tiptap/core': 2.4.0(@tiptap/pm@2.4.0) - '@tiptap/extension-bubble-menu': 2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0) - '@tiptap/extension-floating-menu': 2.4.0(@tiptap/core@2.4.0)(@tiptap/pm@2.4.0) - '@tiptap/pm': 2.4.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false + react-dom: 18.2.0(react@18.2.0) /@tiptap/starter-kit@2.2.4(@tiptap/pm@2.2.4): resolution: {integrity: sha512-Kbk7qUfIZg3+bNa3e/wBeDQt4jJB46uQgM+xy5NSY6H8NZP6gdmmap3aIrn9S/W/hGpxJl4RcXAeaT0CQji9XA==} @@ -11737,6 +10390,7 @@ packages: /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true /@types/jsonwebtoken@9.0.5: resolution: {integrity: sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==} @@ -11887,27 +10541,6 @@ packages: /@types/webxr@0.5.10: resolution: {integrity: sha512-n3u5sqXQJhf1CS68mw3Wf16FQ4cRPNBBwdYLFzq3UddiADOim1Pn3Y6PBdDilz1vOJF3ybLxJ8ZEDlLIzrOQZg==} - /@typescript-eslint/parser@6.13.2(eslint@8.55.0)(typescript@5.4.5): - resolution: {integrity: sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==} - 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.13.2 - '@typescript-eslint/types': 6.13.2 - '@typescript-eslint/typescript-estree': 6.13.2(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 6.13.2 - debug: 4.3.4 - eslint: 8.55.0 - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - dev: false - /@typescript-eslint/parser@6.13.2(eslint@9.1.1)(typescript@5.4.5): resolution: {integrity: sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==} engines: {node: ^16.0.0 || >=18.0.0} @@ -11935,10 +10568,12 @@ packages: dependencies: '@typescript-eslint/types': 6.13.2 '@typescript-eslint/visitor-keys': 6.13.2 + dev: true /@typescript-eslint/types@6.13.2: resolution: {integrity: sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==} engines: {node: ^16.0.0 || >=18.0.0} + dev: true /@typescript-eslint/typescript-estree@6.13.2(typescript@5.4.5): resolution: {integrity: sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==} @@ -11959,6 +10594,7 @@ packages: typescript: 5.4.5 transitivePeerDependencies: - supports-color + dev: true /@typescript-eslint/visitor-keys@6.13.2: resolution: {integrity: sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==} @@ -11966,10 +10602,10 @@ packages: dependencies: '@typescript-eslint/types': 6.13.2 eslint-visitor-keys: 3.4.3 + dev: true /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: false /@unocss/astro@0.58.5(rollup@2.79.1)(vite@5.1.5): resolution: {integrity: sha512-LtuVnj8oFAK9663OVhQO8KpdJFiOyyPsYfnOZlDCOFK3gHb/2WMrzdBwr1w8LoQF3bDedkFMKirVF7gWjyZiaw==} @@ -12003,6 +10639,22 @@ packages: - rollup dev: false + /@unocss/astro@0.58.8(vite@5.2.11): + resolution: {integrity: sha512-pAjsKuVg41dXNPWpFKx/SDxz198Miu/hqAL4lMkE2ITY+nFgqt9SH1lGS9P+VzElrHZ+Uqwmmtw8SjaT2EfCMA==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + vite: + optional: true + dependencies: + '@unocss/core': 0.58.8 + '@unocss/reset': 0.58.8 + '@unocss/vite': 0.58.8(vite@5.2.11) + vite: 5.2.11(@types/node@20.12.7) + transitivePeerDependencies: + - rollup + dev: true + /@unocss/astro@0.59.4(vite@5.0.10): resolution: {integrity: sha512-DU3OR5MMR1Uvvec4/wB9EetDASHRg19Moy6z/MiIhn8JWJ0QzWYgSeJcfUX8exomMYv6WUEQJL+CyLI34Wmn8w==} peerDependencies: @@ -12030,7 +10682,7 @@ packages: '@unocss/core': 0.59.4 '@unocss/reset': 0.59.4 '@unocss/vite': 0.59.4(vite@5.2.11) - vite: 5.2.11 + vite: 5.2.11(@types/node@20.12.7) transitivePeerDependencies: - rollup dev: false @@ -12046,7 +10698,7 @@ packages: '@unocss/core': 0.60.3 '@unocss/reset': 0.60.3 '@unocss/vite': 0.60.3(rollup@2.79.1)(vite@5.2.11) - vite: 5.2.11 + vite: 5.2.11(@types/node@20.12.7) transitivePeerDependencies: - rollup dev: false @@ -12093,7 +10745,6 @@ packages: perfect-debounce: 1.0.0 transitivePeerDependencies: - rollup - dev: false /@unocss/cli@0.59.4: resolution: {integrity: sha512-TT+WKedSifhsRqnpoYD2LfyYipVzEbzIU4DDGIaDNeDxGXYOGpb876zzkPDcvZSpI37IJ/efkkV7PGYpPBcQBQ==} @@ -12152,7 +10803,6 @@ packages: dependencies: '@unocss/core': 0.58.8 unconfig: 0.3.13 - dev: false /@unocss/config@0.59.4: resolution: {integrity: sha512-h3yhj+D5Ygn5R7gbK4wMrtXZX6FF5DF6YD517sSSb0XB3lxHD9PhhT4HaV1hpHknvu0cMFU3460M45+TN1TI0Q==} @@ -12201,7 +10851,6 @@ packages: resolution: {integrity: sha512-zQ7W3wTWWbJvG9T+1b9HqJGtEzcrc3d/TG7JJqdon6vBc64xA2AMf9DNRVlNdzkrU2Kl31TRd6bLST6iMncovw==} dependencies: '@unocss/core': 0.58.8 - dev: false /@unocss/extractor-arbitrary-variants@0.59.4: resolution: {integrity: sha512-RDe4FgMGJQ+tp9GLvhPHni7Cc2O0lHBRMElVlN8LoXJAdODMICdbrEPGJlEfrc+7x/QgVFoR895KpYJh3hIgGA==} @@ -12230,7 +10879,6 @@ packages: '@unocss/rule-utils': 0.58.8 gzip-size: 6.0.0 sirv: 2.0.4 - dev: false /@unocss/inspector@0.59.4: resolution: {integrity: sha512-QczJFNDiggmekkJyNcbcZIUVwlhvxz7ZwjnSf0w7K4znxfjKkZ1hNUbqLviM1HumkTKOdT27VISW7saN/ysO4w==} @@ -12277,7 +10925,6 @@ packages: fast-glob: 3.3.2 magic-string: 0.30.10 postcss: 8.4.38 - dev: false /@unocss/postcss@0.59.4(postcss@8.4.38): resolution: {integrity: sha512-KVz+AD7McHKp7VEWHbFahhyyVEo0oP/e1vnuNSuPlHthe+1V2zfH6lps+iJcvfL2072r5J+0PvD/1kOp5ryUSg==} @@ -12318,7 +10965,6 @@ packages: resolution: {integrity: sha512-QEKPDfoYxU2WqqTmd1JX72PDE5UuAHh3q9GgQEP7I6DRFeQ7H2xM62t3FLms5tdNRAALJnhl/jz5+Rajxp9ZQA==} dependencies: '@unocss/core': 0.58.8 - dev: false /@unocss/preset-attributify@0.59.4: resolution: {integrity: sha512-BeogWuYaIakC1gmOZFFCjFVWmu/m3AqEX8UYQS6tY6lAaK2L4Qf4AstYBlT2zAMxy9LNxPDxFQrvfSfFk5Klsg==} @@ -12359,7 +11005,6 @@ packages: ofetch: 1.3.4 transitivePeerDependencies: - supports-color - dev: false /@unocss/preset-icons@0.59.4: resolution: {integrity: sha512-Afjwh5oC4KRE8TNZDUkRK6hvvV1wKLrS1e5trniE0B0AM9HK3PBolQaIU7QmzPv6WQrog+MZgIwafg1eqsPUCA==} @@ -12394,7 +11039,6 @@ packages: '@unocss/core': 0.58.8 '@unocss/extractor-arbitrary-variants': 0.58.8 '@unocss/rule-utils': 0.58.8 - dev: false /@unocss/preset-mini@0.59.4: resolution: {integrity: sha512-ZLywGrXi1OCr4My5vX2rLUb5Xgx6ufR9WTQOvpQJGBdIV/jnZn/pyE5avCs476SnOq2K172lnd8mFmTK7/zArA==} @@ -12421,7 +11065,6 @@ packages: resolution: {integrity: sha512-Xmz1H4bMPpRlm/93RNRRBDzyjRdO5pkEKePQo+J3WXY+FfCrhE/BHopa7plNejoPd/k/4CtdFLuQCVRteHiZ+A==} dependencies: '@unocss/core': 0.58.8 - dev: false /@unocss/preset-tagify@0.59.4: resolution: {integrity: sha512-vWMdTUoghOSmTbdmZtERssffmdUdOuhh4vUdl0R8Kv6KxB0PkvEFCu2FItn97nRJdSPlZSFxxDkaOIg9w+STNQ==} @@ -12446,7 +11089,6 @@ packages: dependencies: '@unocss/core': 0.58.8 '@unocss/preset-mini': 0.58.8 - dev: false /@unocss/preset-typography@0.59.4: resolution: {integrity: sha512-ZX9bxZUqlXK1qEDzO5lkK96ICt9itR/oNyn/7mMc1JPqwj263LumQMn5silocgzoLSUXEeq//L6GylqYjkL8GA==} @@ -12477,7 +11119,6 @@ packages: '@unocss/preset-mini': 0.58.8 '@unocss/preset-wind': 0.58.8 '@unocss/rule-utils': 0.58.8 - dev: false /@unocss/preset-uno@0.59.4: resolution: {integrity: sha512-G1f8ZluplvXZ3bERj+sM/8zzY//XD++nNOlAQNKOANSVht3qEoJebrfEiMClNpA5qW5VWOZhEhPkh0M7GsXtnA==} @@ -12508,7 +11149,6 @@ packages: dependencies: '@unocss/core': 0.58.8 ofetch: 1.3.4 - dev: false /@unocss/preset-web-fonts@0.59.4: resolution: {integrity: sha512-ehutTjKHnf2KPmdatN42N9a8+y+glKSU3UlcBRNsVIIXVIlaBQuPVGZSPhnMtrKD17IgWylXq2K6RJK+ab0hZA==} @@ -12537,7 +11177,6 @@ packages: '@unocss/core': 0.58.8 '@unocss/preset-mini': 0.58.8 '@unocss/rule-utils': 0.58.8 - dev: false /@unocss/preset-wind@0.59.4: resolution: {integrity: sha512-CNX6w0ZpSQg/i1oF0/WKWzto8PtLqoknC5h8JmmcGb7VsyBQeV0oNnhbURxpbuMEhbv1MWVIGvk8a+P6y0rFkQ==} @@ -12560,7 +11199,6 @@ packages: /@unocss/reset@0.58.8: resolution: {integrity: sha512-6Cz92Ryer7QpFhxnOwyauwVJfDGhCNYvLHGqW8ScIicFEPK9AUXYys/zBRCIYO2489/kckZ5EG8a3NImS5h+9w==} - dev: false /@unocss/reset@0.59.4: resolution: {integrity: sha512-Upy4xzdWl4RChbLAXBq1BoR4WqxXMoIfjvtcwSZcZK2sylXCFAseSWnyzJFdSiXPqNfmMuNgPXgiSxiQB+cmNA==} @@ -12583,7 +11221,6 @@ packages: dependencies: '@unocss/core': 0.58.8 magic-string: 0.30.10 - dev: false /@unocss/rule-utils@0.59.4: resolution: {integrity: sha512-1qoLJlBWAkS4D4sg73990S1MT7E8E5md/YhopKjTQuEC9SyeVmEg+5pR/Xd8xhPKMqbcuBPl/DS8b6l/GQO56A==} @@ -12606,7 +11243,6 @@ packages: /@unocss/scope@0.58.8: resolution: {integrity: sha512-FpXGSWQU+XfguSPrFm9NfZYKmDikxu4KB+fvVzgHkN3e+UQ7QSHFHREbdc+E8x0HPMNkoNnYVaCr0qgIBUEKFA==} - dev: false /@unocss/scope@0.59.4: resolution: {integrity: sha512-wBQJ39kw4Tfj4km7AoGvSIobPKVnRZVsgc0bema5Y0PL3g1NeVQ/LopBI2zEJWdpxGXUWxSDsXm7BZo6qVlD/A==} @@ -12629,13 +11265,12 @@ packages: /@unocss/transformer-attributify-jsx-babel@0.58.8: resolution: {integrity: sha512-4+Ctwo57RiLcxoZtoRvS2XE6NHiVTolA8RW6dI5EQU6Z5n2XYPpkkUdSHcmXuFWuJ5ZD19FzUnCsxtBoPbr2Fw==} dependencies: - '@babel/core': 7.24.5 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) - '@babel/preset-typescript': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.6 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.6) + '@babel/preset-typescript': 7.24.1(@babel/core@7.24.6) '@unocss/core': 0.58.8 transitivePeerDependencies: - supports-color - dev: false /@unocss/transformer-attributify-jsx-babel@0.59.4: resolution: {integrity: sha512-xtCRSgeTaDBiNJLVX7oOSFe63JiFB5nrdK23PHn3IlZM9O7Bxx4ZxI3MQJtFZFQNE+INFko+DVyY1WiFEm1p/Q==} @@ -12668,7 +11303,6 @@ packages: resolution: {integrity: sha512-MFpbIJB9vsfKHHMJ04gObQ5EM1qySNPev3gysmvduBSQyHy6CRmUugTCWVStaZeepzYMASgOkFfx64xIyKAHpw==} dependencies: '@unocss/core': 0.58.8 - dev: false /@unocss/transformer-attributify-jsx@0.59.4: resolution: {integrity: sha512-m4b83utzKMfUQH/45V2QkjJoXd8Tu2pRP1nic91Xf7QRceyKDD+BxoTneo2JNC2K274cQu7HqqotnCm2aFfEGw==} @@ -12691,7 +11325,6 @@ packages: resolution: {integrity: sha512-bMC+sXeD8VjjcqRtDIflh823zpmVOWeEQecRPPvYr0EU6u41N4L4m4SPIqyichmV6nbVKfJOhw1s8kWdBfNI2g==} dependencies: '@unocss/core': 0.58.8 - dev: false /@unocss/transformer-compile-class@0.59.4: resolution: {integrity: sha512-Vgk2OCLPW0pU+Uzr1IgDtHVspSBb+gPrQFkV+5gxHk9ZdKi3oYKxLuufVWYDSwv7o9yfQGbYrMH9YLsjRsnA7Q==} @@ -12718,7 +11351,6 @@ packages: '@unocss/core': 0.58.8 '@unocss/rule-utils': 0.58.8 css-tree: 2.3.1 - dev: false /@unocss/transformer-directives@0.59.4: resolution: {integrity: sha512-nXUTEclUbs0vQ4KfLhKt4J/5SLSEq1az2FNlJmiXMmqmn75X89OrtCu2OJu9sGXhn+YyBApxgcSSdxmtpqMi1Q==} @@ -12777,13 +11409,33 @@ packages: '@unocss/transformer-directives': 0.58.5 chokidar: 3.5.3 fast-glob: 3.3.2 - magic-string: 0.30.8 - vite: 5.1.5 + magic-string: 0.30.8 + vite: 5.1.5 + transitivePeerDependencies: + - rollup + dev: true + + /@unocss/vite@0.58.8(rollup@2.79.1)(vite@5.2.7): + resolution: {integrity: sha512-Eh0cG1I/BivvhUPdFxPi/z7Q+LMDnjHgL/dIE6/tmJK9rerdGeOBCAXxEetZfvBrOhWVnsOW/ydesyAhkzRg3w==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + dependencies: + '@ampproject/remapping': 2.3.0 + '@rollup/pluginutils': 5.1.0(rollup@2.79.1) + '@unocss/config': 0.58.8 + '@unocss/core': 0.58.8 + '@unocss/inspector': 0.58.8 + '@unocss/scope': 0.58.8 + '@unocss/transformer-directives': 0.58.8 + chokidar: 3.6.0 + fast-glob: 3.3.2 + magic-string: 0.30.10 + vite: 5.2.7 transitivePeerDependencies: - rollup - dev: true + dev: false - /@unocss/vite@0.58.8(rollup@2.79.1)(vite@5.2.7): + /@unocss/vite@0.58.8(vite@5.2.11): resolution: {integrity: sha512-Eh0cG1I/BivvhUPdFxPi/z7Q+LMDnjHgL/dIE6/tmJK9rerdGeOBCAXxEetZfvBrOhWVnsOW/ydesyAhkzRg3w==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 @@ -12798,10 +11450,10 @@ packages: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.2.7 + vite: 5.2.11(@types/node@20.12.7) transitivePeerDependencies: - rollup - dev: false + dev: true /@unocss/vite@0.59.4(vite@5.0.10): resolution: {integrity: sha512-q7GN7vkQYn79n7vYIUlaa7gXGwc7pk0Qo3z3ZFwWGE43/DtZnn2Hwl5UjgBAgi9McA+xqHJEHRsJnI7HJPHUYA==} @@ -12838,7 +11490,7 @@ packages: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.2.11 + vite: 5.2.11(@types/node@20.12.7) transitivePeerDependencies: - rollup dev: false @@ -12858,17 +11510,13 @@ packages: chokidar: 3.6.0 fast-glob: 3.3.2 magic-string: 0.30.10 - vite: 5.2.11 + vite: 5.2.11(@types/node@20.12.7) transitivePeerDependencies: - rollup dev: false /@use-gesture/core@10.3.0: resolution: {integrity: sha512-rh+6MND31zfHcy9VU3dOZCqGY511lvGcfyJenN4cWZe0u1BH6brBpBddLVXhF2r4BMqWbvxfsbL7D287thJU2A==} - dev: false - - /@use-gesture/core@10.3.1: - resolution: {integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==} /@use-gesture/react@10.3.0(react@18.2.0): resolution: {integrity: sha512-3zc+Ve99z4usVP6l9knYVbVnZgfqhKah7sIG+PS2w+vpig2v2OLct05vs+ZXMzwxdNCMka8B+8WlOo0z6Pn6DA==} @@ -12877,25 +11525,6 @@ packages: dependencies: '@use-gesture/core': 10.3.0 react: 18.2.0 - dev: false - - /@use-gesture/react@10.3.1(react@18.2.0): - resolution: {integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==} - peerDependencies: - react: '>= 16.8.0' - dependencies: - '@use-gesture/core': 10.3.1 - react: 18.2.0 - dev: true - - /@use-gesture/react@10.3.1(react@18.3.1): - resolution: {integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==} - peerDependencies: - react: '>= 16.8.0' - dependencies: - '@use-gesture/core': 10.3.1 - react: 18.3.1 - dev: false /@vercel/analytics@0.1.11(react@18.2.0): resolution: {integrity: sha512-mj5CPR02y0BRs1tN3oZcBNAX9a8NxsIUl9vElDPcqxnMfP0RbRc9fI9Ud7+QDg/1Izvt5uMumsr+6YsmVHcyuw==} @@ -12973,8 +11602,8 @@ packages: /@verdant-web/s3-file-storage@1.0.18: resolution: {integrity: sha512-48I5nsUYmfRAS8uZCT6FFti/fbP61CXzzPvgjLpS6f1wxwvs0Q1FxoF3OSWsBfqhb1vqZsN5cSkrDabTfsgUyQ==} dependencies: - '@aws-sdk/client-s3': 3.574.0 - '@aws-sdk/lib-storage': 3.574.0(@aws-sdk/client-s3@3.574.0) + '@aws-sdk/client-s3': 3.583.0 + '@aws-sdk/lib-storage': 3.574.0(@aws-sdk/client-s3@3.583.0) '@verdant-web/server': 3.0.2 transitivePeerDependencies: - aws-crt @@ -13025,7 +11654,7 @@ packages: vite: ^4 || ^5 dependencies: '@swc/core': 1.5.5 - vite: 5.2.11 + vite: 5.2.11(@types/node@20.12.7) transitivePeerDependencies: - '@swc/helpers' dev: true @@ -13063,6 +11692,17 @@ packages: - '@swc/helpers' dev: true + /@vitejs/plugin-react-swc@3.6.0(vite@5.2.11): + resolution: {integrity: sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==} + peerDependencies: + vite: ^4 || ^5 + dependencies: + '@swc/core': 1.5.5 + vite: 5.2.11(@types/node@20.12.7) + transitivePeerDependencies: + - '@swc/helpers' + dev: true + /@vitejs/plugin-react-swc@3.6.0(vite@5.2.7): resolution: {integrity: sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==} peerDependencies: @@ -13452,19 +12092,12 @@ packages: engines: {node: '>=8'} dev: false - /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - dependencies: - call-bind: 1.0.5 - is-array-buffer: 3.0.2 - /array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 is-array-buffer: 3.0.4 - dev: true /array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} @@ -13474,10 +12107,10 @@ packages: resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.23.3 + get-intrinsic: 1.2.4 is-string: 1.0.7 /array-iterate@2.0.1: @@ -13487,55 +12120,64 @@ packages: /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + dev: true + + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 /array.prototype.findlastindex@1.2.3: resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 + dev: true /array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 /array.prototype.flatmap@1.3.2: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 - /array.prototype.tosorted@1.1.2: - resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + /array.prototype.toreversed@1.1.2: + resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 - /arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} - engines: {node: '>= 0.4'} + /array.prototype.tosorted@1.1.3: + resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-array-buffer: 3.0.2 - is-shared-array-buffer: 1.0.2 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 /arraybuffer.prototype.slice@1.0.3: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} @@ -13549,7 +12191,6 @@ packages: get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 - dev: true /asn1.js@5.4.1: resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} @@ -13566,6 +12207,7 @@ packages: /ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + dev: true /astring@1.8.6: resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} @@ -13634,7 +12276,7 @@ packages: tsconfck: 3.0.3(typescript@5.4.5) unist-util-visit: 5.0.0 vfile: 6.0.1 - vite: 5.2.11 + vite: 5.2.11(@types/node@20.12.7) vitefu: 0.2.5(vite@5.2.11) which-pm: 2.1.1 yargs-parser: 21.1.1 @@ -13666,6 +12308,7 @@ packages: resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} dependencies: has-symbols: 1.0.3 + dev: true /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -13675,10 +12318,6 @@ packages: engines: {node: '>= 4.0.0'} dev: true - /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} - /available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -13728,6 +12367,7 @@ packages: /axe-core@4.7.0: resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} engines: {node: '>=4'} + dev: true /axios@1.6.7: resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} @@ -13742,6 +12382,7 @@ packages: resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} dependencies: dequal: 2.0.3 + dev: true /axobject-query@4.0.0: resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} @@ -13995,14 +12636,6 @@ packages: dependencies: react: 18.2.0 - /calendar-blocks@0.3.1(react@18.3.1): - resolution: {integrity: sha512-Vwnjhm5bPjHIr+fZhJrBqrIGLPDiV4M5winYEAnRe9mG1yQjqf8OfGFrk1fryeoiZrbVcJOcm5xifi7KRjRO/A==} - peerDependencies: - react: '*' - dependencies: - react: 18.3.1 - dev: false - /call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: @@ -14119,6 +12752,10 @@ packages: snake-case: 3.0.4 tslib: 2.6.2 + /change-case@5.4.4: + resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + dev: false + /character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} dev: false @@ -14246,11 +12883,11 @@ packages: /clsx@2.1.0: resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} engines: {node: '>=6'} - dev: false /clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} + dev: false /collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} @@ -14580,6 +13217,7 @@ packages: /damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: true /dash-get@1.0.2: resolution: {integrity: sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==} @@ -14592,7 +13230,6 @@ packages: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true /data-view-byte-length@1.0.1: resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} @@ -14601,7 +13238,6 @@ packages: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true /data-view-byte-offset@1.0.0: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} @@ -14610,7 +13246,6 @@ packages: call-bind: 1.0.7 es-errors: 1.3.0 is-data-view: 1.0.1 - dev: true /dataloader@2.2.2: resolution: {integrity: sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==} @@ -14659,6 +13294,7 @@ packages: optional: true dependencies: ms: 2.1.3 + dev: true /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -14716,9 +13352,9 @@ packages: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 gopd: 1.0.1 - has-property-descriptors: 1.0.1 + has-property-descriptors: 1.0.2 /define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} @@ -14732,8 +13368,8 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: - define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 /defu@6.1.3: @@ -14858,7 +13494,6 @@ packages: engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 - dev: false /dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -15009,6 +13644,7 @@ packages: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 + dev: true /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} @@ -15023,50 +13659,6 @@ packages: cross-spawn: 7.0.3 dev: true - /es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.2 - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - es-set-tostringtag: 2.0.2 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.2 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - internal-slot: 1.0.6 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.12 - is-weakref: 1.0.2 - object-inspect: 1.13.1 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.0.1 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 - /es-abstract@1.23.3: resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} @@ -15117,7 +13709,6 @@ packages: typed-array-length: 1.0.6 unbox-primitive: 1.0.2 which-typed-array: 1.1.15 - dev: true /es-define-property@1.0.0: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} @@ -15133,19 +13724,39 @@ packages: resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} dependencies: asynciterator.prototype: 1.0.0 - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - es-set-tostringtag: 2.0.2 + es-abstract: 1.23.3 + es-set-tostringtag: 2.0.3 function-bind: 1.1.2 - get-intrinsic: 1.2.2 - globalthis: 1.0.3 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.2 + dev: true + + /es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 has-symbols: 1.0.3 - internal-slot: 1.0.6 + internal-slot: 1.0.7 iterator.prototype: 1.1.2 - safe-array-concat: 1.0.1 + safe-array-concat: 1.1.2 /es-module-lexer@1.5.2: resolution: {integrity: sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==} @@ -15156,15 +13767,6 @@ packages: engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 - dev: true - - /es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - has-tostringtag: 1.0.0 - hasown: 2.0.0 /es-set-tostringtag@2.0.3: resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} @@ -15173,12 +13775,11 @@ packages: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 hasown: 2.0.2 - dev: true /es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - hasown: 2.0.0 + hasown: 2.0.2 /es-to-primitive@1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} @@ -15748,31 +14349,6 @@ packages: engines: {node: '>=12'} dev: false - /eslint-config-next@14.0.3(eslint@8.55.0)(typescript@5.4.5): - resolution: {integrity: sha512-IKPhpLdpSUyKofmsXUfrvBC49JMUTdeaD8ZIH4v9Vk0sC1X6URTuTJCLtA0Vwuj7V/CQh0oISuSTvNn5//Buew==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@next/eslint-plugin-next': 14.0.3 - '@rushstack/eslint-patch': 1.6.0 - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.4.5) - eslint: 8.55.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.55.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0) - eslint-plugin-jsx-a11y: 6.8.0(eslint@8.55.0) - eslint-plugin-react: 7.33.2(eslint@8.55.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.55.0) - typescript: 5.4.5 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - supports-color - dev: false - /eslint-config-next@14.0.3(eslint@9.1.1)(typescript@5.4.5): resolution: {integrity: sha512-IKPhpLdpSUyKofmsXUfrvBC49JMUTdeaD8ZIH4v9Vk0sC1X6URTuTJCLtA0Vwuj7V/CQh0oISuSTvNn5//Buew==} peerDependencies: @@ -15790,7 +14366,7 @@ packages: eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@9.1.1) eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.1) eslint-plugin-jsx-a11y: 6.8.0(eslint@9.1.1) - eslint-plugin-react: 7.33.2(eslint@9.1.1) + eslint-plugin-react: 7.34.1(eslint@9.1.1) eslint-plugin-react-hooks: 4.6.0(eslint@9.1.1) typescript: 5.4.5 transitivePeerDependencies: @@ -15806,82 +14382,30 @@ packages: resolve: 1.22.8 transitivePeerDependencies: - supports-color - - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.55.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.55.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0) - fast-glob: 3.3.2 - get-tsconfig: 4.7.2 - is-core-module: 2.13.1 - is-glob: 4.0.3 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-node - - eslint-import-resolver-webpack - - supports-color - dev: false - - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@9.1.1): - 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: 9.1.1 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.1) - eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.1) - fast-glob: 3.3.2 - get-tsconfig: 4.7.2 - is-core-module: 2.13.1 - 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@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.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 + + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@9.1.1): + resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' dependencies: - '@typescript-eslint/parser': 6.13.2(eslint@8.55.0)(typescript@5.4.5) - debug: 3.2.7 - eslint: 8.55.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.55.0) + debug: 4.3.4 + enhanced-resolve: 5.15.0 + eslint: 9.1.1 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.1) + eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.1) + fast-glob: 3.3.2 + get-tsconfig: 4.7.2 + is-core-module: 2.13.1 + is-glob: 4.0.3 transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack - supports-color - dev: false + dev: true /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.1): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} @@ -15913,41 +14437,6 @@ packages: - supports-color dev: true - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0): - resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} - 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.13.2(eslint@8.55.0)(typescript@5.4.5) - 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.55.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.55.0) - hasown: 2.0.0 - is-core-module: 2.13.1 - 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: false - /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.13.2)(eslint-import-resolver-typescript@3.6.1)(eslint@9.1.1): resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} @@ -15983,31 +14472,6 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@8.55.0): - resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - '@babel/runtime': 7.24.5 - aria-query: 5.3.0 - array-includes: 3.1.7 - array.prototype.flatmap: 1.3.2 - ast-types-flow: 0.0.8 - axe-core: 4.7.0 - axobject-query: 3.2.1 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.15 - eslint: 8.55.0 - hasown: 2.0.0 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - dev: false - /eslint-plugin-jsx-a11y@6.8.0(eslint@9.1.1): resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} engines: {node: '>=4.0'} @@ -16033,15 +14497,6 @@ packages: object.fromentries: 2.0.7 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.55.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 8.55.0 - dev: false - /eslint-plugin-react-hooks@4.6.0(eslint@9.1.1): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} @@ -16051,17 +14506,19 @@ packages: eslint: 9.1.1 dev: true - /eslint-plugin-react@7.33.2(eslint@8.55.0): - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + /eslint-plugin-react@7.34.1(eslint@8.55.0): + resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: array-includes: 3.1.7 + array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.2 + array.prototype.toreversed: 1.1.2 + array.prototype.tosorted: 1.1.3 doctrine: 2.1.0 - es-iterator-helpers: 1.0.15 + es-iterator-helpers: 1.0.19 eslint: 8.55.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 @@ -16073,20 +14530,22 @@ packages: prop-types: 15.8.1 resolve: 2.0.0-next.5 semver: 6.3.1 - string.prototype.matchall: 4.0.10 + string.prototype.matchall: 4.0.11 dev: false - /eslint-plugin-react@7.33.2(eslint@9.1.1): - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + /eslint-plugin-react@7.34.1(eslint@9.1.1): + resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: array-includes: 3.1.7 + array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.2 + array.prototype.toreversed: 1.1.2 + array.prototype.tosorted: 1.1.3 doctrine: 2.1.0 - es-iterator-helpers: 1.0.15 + es-iterator-helpers: 1.0.19 eslint: 9.1.1 estraverse: 5.3.0 jsx-ast-utils: 3.3.5 @@ -16098,7 +14557,7 @@ packages: prop-types: 15.8.1 resolve: 2.0.0-next.5 semver: 6.3.1 - string.prototype.matchall: 4.0.10 + string.prototype.matchall: 4.0.11 dev: true /eslint-scope@7.2.2: @@ -16107,7 +14566,6 @@ packages: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - dev: false /eslint-scope@8.0.1: resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} @@ -16171,7 +14629,6 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color - dev: false /eslint@9.1.1: resolution: {integrity: sha512-b4cRQ0BeZcSEzPpY2PjFY70VbO32K7BStTGtBsnIGdTSEEQzBi8hPBcGQmTG2zUvFr9uLe0TK42bw8YszuHEqg==} @@ -16232,7 +14689,6 @@ packages: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) eslint-visitor-keys: 3.4.3 - dev: false /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -16472,7 +14928,6 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.2.0 - dev: false /file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} @@ -16553,7 +15008,6 @@ packages: flatted: 3.2.9 keyv: 4.5.4 rimraf: 3.0.2 - dev: false /flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} @@ -16607,21 +15061,6 @@ packages: react-fast-compare: 2.0.4 tiny-warning: 1.0.3 tslib: 2.6.2 - - /formik@2.4.5(react@18.3.1): - resolution: {integrity: sha512-Gxlht0TD3vVdzMDHwkiNZqJ7Mvg77xQNfmBRrNtvzcHZs72TJppSTDKHpImCMJZwcWPBJ8jSQQ95GJzXFf1nAQ==} - peerDependencies: - react: '>=16.8.0' - dependencies: - '@types/hoist-non-react-statics': 3.3.5 - deepmerge: 2.2.1 - hoist-non-react-statics: 3.3.2 - lodash: 4.17.21 - lodash-es: 4.17.21 - react: 18.3.1 - react-fast-compare: 2.0.4 - tiny-warning: 1.0.3 - tslib: 2.6.2 dev: false /formik@2.4.6(react@18.2.0): @@ -16638,7 +15077,6 @@ packages: react-fast-compare: 2.0.4 tiny-warning: 1.0.3 tslib: 2.6.2 - dev: false /forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} @@ -16708,9 +15146,9 @@ packages: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 functions-have-names: 1.2.3 /functions-have-names@1.2.3: @@ -16810,13 +15248,6 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - /get-symbol-description@1.0.2: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} @@ -16824,7 +15255,6 @@ packages: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 - dev: true /get-them-args@1.3.2: resolution: {integrity: sha512-LRn8Jlk+DwZE4GTlDbT3Hikd1wSHgLMme/+7ddlqKd7ldwR6LjJgTVWzBnR01wnYGe4KgrXjg287RaI22UHmAw==} @@ -16834,6 +15264,7 @@ packages: resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} dependencies: resolve-pkg-maps: 1.0.0 + dev: true /get-tsconfig@4.7.5: resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} @@ -16870,6 +15301,7 @@ packages: 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==} @@ -16890,26 +15322,18 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.20.2 - dev: false /globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} dev: true - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.1 - /globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 gopd: 1.0.1 - dev: true /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -16921,6 +15345,7 @@ packages: ignore: 5.3.0 merge2: 1.4.1 slash: 3.0.0 + dev: true /globby@13.2.2: resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} @@ -17008,7 +15433,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 /gql.tada@1.2.1(graphql@16.8.1): resolution: {integrity: sha512-Nx8x3g9WLT23eu9aL/4TTFDBwm7CBGVd4F2Jp2H5oOjDpuWv12i1mTLKReQwn2V1ZP+jG8V0ATXzFQZt1pxSgw==} @@ -17023,7 +15448,6 @@ packages: /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - dev: false /graphql-scalars@1.22.4(graphql@16.8.1): resolution: {integrity: sha512-ILnv7jq5VKHLUyoaTFX7lgYrjCd6vTee9i8/B+D4zJKJT5TguOl0KkpPEbXHjmeor8AZYrVsrYUHdqRBMX1pjA==} @@ -17111,7 +15535,7 @@ packages: /has-property-descriptors@1.0.1: resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 /has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} @@ -17130,12 +15554,6 @@ packages: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - /has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} @@ -17466,14 +15884,6 @@ packages: resolution: {integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==} dev: false - /internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - hasown: 2.0.0 - side-channel: 1.0.4 - /internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} @@ -17481,7 +15891,6 @@ packages: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.0.6 - dev: true /invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} @@ -17504,20 +15913,12 @@ packages: is-decimal: 2.0.1 dev: false - /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.13 - /is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - dev: true /is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} @@ -17529,7 +15930,7 @@ packages: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -17546,8 +15947,8 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 /is-buffer@2.0.5: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} @@ -17575,13 +15976,12 @@ packages: engines: {node: '>= 0.4'} dependencies: is-typed-array: 1.1.13 - dev: true /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 /is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} @@ -17616,7 +16016,7 @@ packages: /is-finalizationregistry@1.0.2: resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} @@ -17658,20 +16058,15 @@ packages: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} dev: true - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - /is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} - dev: true /is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} @@ -17712,8 +16107,8 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 /is-regexp@1.0.0: resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} @@ -17723,17 +16118,11 @@ packages: /is-set@2.0.2: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - dependencies: - call-bind: 1.0.5 - /is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - dev: true /is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} @@ -17752,7 +16141,7 @@ packages: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 /is-symbol@1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} @@ -17760,12 +16149,6 @@ packages: dependencies: has-symbols: 1.0.3 - /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} - dependencies: - which-typed-array: 1.1.15 - /is-typed-array@1.1.13: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} @@ -17792,13 +16175,13 @@ packages: /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 /is-weakset@2.0.2: resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.7 + get-intrinsic: 1.2.4 /is-what@4.1.16: resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} @@ -17834,10 +16217,10 @@ packages: resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} dependencies: define-properties: 1.2.1 - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.4 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.4 - set-function-name: 2.0.1 + set-function-name: 2.0.2 /its-fine@1.1.1(react@18.2.0): resolution: {integrity: sha512-v1Ia1xl20KbuSGlwoaGsW0oxsw8Be+TrXweidxD9oT/1lAh6O3K3/GIM95Tt6WCiv6W+h2M7RB1TwdoAjQyyKw==} @@ -17979,6 +16362,7 @@ packages: hasBin: true dependencies: minimist: 1.2.8 + dev: true /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} @@ -18148,12 +16532,14 @@ packages: /language-subtag-registry@0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} + dev: true /language-tags@1.0.9: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} dependencies: language-subtag-registry: 0.3.22 + dev: true /lerp@1.0.3: resolution: {integrity: sha512-70Rh4rCkJDvwWiTsyZ1HmJGvnyfFah4m6iTux29XmasRiZPDBpT9Cfa4ai73+uLZxnlKruUS62jj2lb11wURiA==} @@ -19285,7 +17671,7 @@ packages: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 @@ -19294,31 +17680,32 @@ packages: resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 /object.fromentries@2.0.7: resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 /object.groupby@1.0.1: resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + es-abstract: 1.23.3 + get-intrinsic: 1.2.4 + dev: true /object.hasown@1.1.3: resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} dependencies: define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 /object.omit@3.0.0: resolution: {integrity: sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ==} @@ -19338,9 +17725,9 @@ packages: resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 + es-abstract: 1.23.3 /ofetch@1.3.3: resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} @@ -19813,7 +18200,7 @@ packages: /prosemirror-changeset@2.2.1: resolution: {integrity: sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==} dependencies: - prosemirror-transform: 1.8.0 + prosemirror-transform: 1.9.0 /prosemirror-collab@1.3.1: resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==} @@ -19825,14 +18212,14 @@ packages: dependencies: prosemirror-model: 1.19.4 prosemirror-state: 1.4.3 - prosemirror-transform: 1.8.0 + prosemirror-transform: 1.9.0 /prosemirror-dropcursor@1.8.1: resolution: {integrity: sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==} dependencies: prosemirror-state: 1.4.3 - prosemirror-transform: 1.8.0 - prosemirror-view: 1.33.1 + prosemirror-transform: 1.9.0 + prosemirror-view: 1.33.6 /prosemirror-gapcursor@1.3.2: resolution: {integrity: sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==} @@ -19840,15 +18227,16 @@ packages: prosemirror-keymap: 1.2.2 prosemirror-model: 1.19.4 prosemirror-state: 1.4.3 - prosemirror-view: 1.33.1 + prosemirror-view: 1.33.6 /prosemirror-history@1.3.2: resolution: {integrity: sha512-/zm0XoU/N/+u7i5zepjmZAEnpvjDtzoPWW6VmKptcAnPadN/SStsBjMImdCEbb3seiNTpveziPTIrXQbHLtU1g==} dependencies: prosemirror-state: 1.4.3 - prosemirror-transform: 1.8.0 - prosemirror-view: 1.33.1 + prosemirror-transform: 1.9.0 + prosemirror-view: 1.33.6 rope-sequence: 1.3.4 + dev: false /prosemirror-history@1.4.0: resolution: {integrity: sha512-UUiGzDVcqo1lovOPdi9YxxUps3oBFWAIYkXLu3Ot+JPv1qzVogRbcizxK3LhHmtaUxclohgiOVesRw5QSlMnbQ==} @@ -19862,7 +18250,7 @@ packages: resolution: {integrity: sha512-z1GRP2vhh5CihYMQYsJSa1cOwXb3SYxALXOIfAkX8nZserARtl9LiL+CEl+T+OFIsXc3mJIHKhbsmRzC0HDAXA==} dependencies: prosemirror-state: 1.4.3 - prosemirror-transform: 1.8.0 + prosemirror-transform: 1.9.0 dev: false /prosemirror-inputrules@1.4.0: @@ -19895,7 +18283,7 @@ packages: dependencies: crelt: 1.0.6 prosemirror-commands: 1.5.2 - prosemirror-history: 1.3.2 + prosemirror-history: 1.4.0 prosemirror-state: 1.4.3 /prosemirror-model@1.19.4: @@ -19918,14 +18306,14 @@ packages: dependencies: prosemirror-model: 1.19.4 prosemirror-state: 1.4.3 - prosemirror-transform: 1.8.0 + prosemirror-transform: 1.9.0 /prosemirror-state@1.4.3: resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==} dependencies: prosemirror-model: 1.19.4 - prosemirror-transform: 1.8.0 - prosemirror-view: 1.33.1 + prosemirror-transform: 1.9.0 + prosemirror-view: 1.33.6 /prosemirror-tables@1.3.7: resolution: {integrity: sha512-oEwX1wrziuxMtwFvdDWSFHVUWrFJWt929kVVfHvtTi8yvw+5ppxjXZkMG/fuTdFo+3DXyIPSKfid+Be1npKXDA==} @@ -19933,8 +18321,8 @@ packages: prosemirror-keymap: 1.2.2 prosemirror-model: 1.19.4 prosemirror-state: 1.4.3 - prosemirror-transform: 1.8.0 - prosemirror-view: 1.33.1 + prosemirror-transform: 1.9.0 + prosemirror-view: 1.33.6 /prosemirror-trailing-node@2.0.7(prosemirror-model@1.19.4)(prosemirror-state@1.4.3)(prosemirror-view@1.33.1): resolution: {integrity: sha512-8zcZORYj/8WEwsGo6yVCRXFMOfBo0Ub3hCUvmoWIZYfMP26WqENU0mpEP27w7mt8buZWuGrydBewr0tOArPb1Q==} @@ -19951,7 +18339,7 @@ packages: prosemirror-view: 1.33.1 dev: false - /prosemirror-trailing-node@2.0.8(prosemirror-model@1.21.0)(prosemirror-state@1.4.3)(prosemirror-view@1.33.6): + /prosemirror-trailing-node@2.0.8(prosemirror-model@1.19.4)(prosemirror-state@1.4.3)(prosemirror-view@1.33.6): resolution: {integrity: sha512-ujRYhSuhQb1Jsarh1IHqb2KoSnRiD7wAMDGucP35DN7j5af6X7B18PfdPIrbwsPTqIAj0fyOvxbuPsWhNvylmA==} peerDependencies: prosemirror-model: ^1.19.0 @@ -19960,7 +18348,7 @@ packages: dependencies: '@remirror/core-constants': 2.0.2 escape-string-regexp: 4.0.0 - prosemirror-model: 1.21.0 + prosemirror-model: 1.19.4 prosemirror-state: 1.4.3 prosemirror-view: 1.33.6 @@ -19968,6 +18356,7 @@ packages: resolution: {integrity: sha512-BaSBsIMv52F1BVVMvOmp1yzD3u65uC3HTzCBQV1WDPqJRQ2LuHKcyfn0jwqodo8sR9vVzMzZyI+Dal5W9E6a9A==} dependencies: prosemirror-model: 1.19.4 + dev: false /prosemirror-transform@1.9.0: resolution: {integrity: sha512-5UXkr1LIRx3jmpXXNKDhv8OyAOeLTGuXNwdVfg8x27uASna/wQkr9p6fD3eupGOi4PLJfbezxTyi/7fSJypXHg==} @@ -19979,7 +18368,8 @@ packages: dependencies: prosemirror-model: 1.19.4 prosemirror-state: 1.4.3 - prosemirror-transform: 1.8.0 + prosemirror-transform: 1.9.0 + dev: false /prosemirror-view@1.33.6: resolution: {integrity: sha512-zRLUNgLIQfd8IfGprsXxWTjdA8xEAFJe8cDNrOptj6Mop9sj+BMeVbJvceyAYCm5G2dOdT2prctH7K9dfnpIMw==} @@ -20077,38 +18467,18 @@ packages: peerDependencies: react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 dependencies: - prop-types: 15.8.1 - react: 18.2.0 - dev: false - - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 - dependencies: - loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.2 - dev: false - - /react-dom@18.3.1(react@18.2.0): - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 - dependencies: - loose-envify: 1.4.0 + prop-types: 15.8.1 react: 18.2.0 - scheduler: 0.23.2 + dev: false - /react-dom@18.3.1(react@18.3.1): - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: - react: ^18.3.1 + react: ^18.2.0 dependencies: loose-envify: 1.4.0 - react: 18.3.1 + react: 18.2.0 scheduler: 0.23.2 - dev: false /react-fast-compare@2.0.4: resolution: {integrity: sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==} @@ -20191,21 +18561,6 @@ packages: react-style-singleton: 2.2.1(@types/react@18.2.79)(react@18.2.0) tslib: 2.6.2 - /react-remove-scroll-bar@2.3.6(react@18.3.1): - resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - react: 18.3.1 - react-style-singleton: 2.2.1(react@18.3.1) - tslib: 2.6.2 - dev: false - /react-remove-scroll@2.5.5(@types/react@18.2.79)(react@18.2.0): resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} engines: {node: '>=10'} @@ -20224,24 +18579,6 @@ packages: use-callback-ref: 1.3.2(@types/react@18.2.79)(react@18.2.0) use-sidecar: 1.1.2(@types/react@18.2.79)(react@18.2.0) - /react-remove-scroll@2.5.5(react@18.3.1): - resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - react: 18.3.1 - react-remove-scroll-bar: 2.3.6(react@18.3.1) - react-style-singleton: 2.2.1(react@18.3.1) - tslib: 2.6.2 - use-callback-ref: 1.3.2(react@18.3.1) - use-sidecar: 1.1.2(react@18.3.1) - dev: false - /react-style-singleton@2.2.1(@types/react@18.2.79)(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} @@ -20258,22 +18595,6 @@ packages: react: 18.2.0 tslib: 2.6.2 - /react-style-singleton@2.2.1(react@18.3.1): - resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - get-nonce: 1.0.1 - invariant: 2.2.4 - react: 18.3.1 - tslib: 2.6.2 - dev: false - /react-use-measure@2.1.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==} peerDependencies: @@ -20291,13 +18612,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: false - /read-package-json-fast@3.0.2: resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -20340,11 +18654,11 @@ packages: resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - globalthis: 1.0.3 + es-abstract: 1.23.3 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 which-builtin-type: 1.1.3 /regenerate-unicode-properties@10.1.1: @@ -20371,14 +18685,6 @@ packages: '@babel/runtime': 7.24.6 dev: true - /regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - set-function-name: 2.0.1 - /regexp.prototype.flags@1.5.2: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} @@ -20387,7 +18693,6 @@ packages: define-properties: 1.2.1 es-errors: 1.3.0 set-function-name: 2.0.2 - dev: true /regexpu-core@5.3.2: resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} @@ -20534,6 +18839,7 @@ packages: /resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true /resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} @@ -20715,15 +19021,6 @@ packages: tslib: 2.6.2 dev: true - /safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} - engines: {node: '>=0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - has-symbols: 1.0.3 - isarray: 2.0.5 - /safe-array-concat@1.1.2: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} @@ -20732,7 +19029,6 @@ packages: get-intrinsic: 1.2.4 has-symbols: 1.0.3 isarray: 2.0.5 - dev: true /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -20740,13 +19036,6 @@ packages: /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-regex: 1.1.4 - /safe-regex-test@1.0.3: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} @@ -20754,7 +19043,6 @@ packages: call-bind: 1.0.7 es-errors: 1.3.0 is-regex: 1.1.4 - dev: true /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -20881,14 +19169,6 @@ packages: gopd: 1.0.1 has-property-descriptors: 1.0.2 - /set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.1 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.1 - /set-function-name@2.0.2: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} @@ -20897,7 +19177,6 @@ packages: es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - dev: true /setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -20988,7 +19267,6 @@ packages: es-errors: 1.3.0 get-intrinsic: 1.2.4 object-inspect: 1.13.1 - dev: true /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -21047,6 +19325,7 @@ packages: /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + dev: true /slash@4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} @@ -21193,19 +19472,6 @@ packages: strip-ansi: 7.1.0 dev: false - /string.prototype.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - has-symbols: 1.0.3 - internal-slot: 1.0.6 - regexp.prototype.flags: 1.5.1 - set-function-name: 2.0.1 - side-channel: 1.0.4 - /string.prototype.matchall@4.0.11: resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} engines: {node: '>= 0.4'} @@ -21222,15 +19488,6 @@ packages: regexp.prototype.flags: 1.5.2 set-function-name: 2.0.2 side-channel: 1.0.6 - dev: true - - /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 /string.prototype.trim@1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} @@ -21240,14 +19497,6 @@ packages: define-properties: 1.2.1 es-abstract: 1.23.3 es-object-atoms: 1.0.0 - dev: true - - /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 /string.prototype.trimend@1.0.8: resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} @@ -21255,14 +19504,6 @@ packages: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true - - /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 /string.prototype.trimstart@1.0.8: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} @@ -21271,7 +19512,6 @@ packages: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 - dev: true /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -21442,6 +19682,7 @@ packages: /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + dev: true /tar-fs@2.1.1: resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} @@ -21728,6 +19969,7 @@ packages: typescript: '>=4.2.0' dependencies: typescript: 5.4.5 + dev: true /ts-invariant@0.10.3: resolution: {integrity: sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==} @@ -21787,6 +20029,7 @@ packages: json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 + dev: true /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -21913,7 +20156,6 @@ packages: /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - dev: false /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} @@ -21933,14 +20175,6 @@ packages: mime-types: 2.1.35 dev: true - /typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.13 - /typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} @@ -21948,16 +20182,6 @@ packages: call-bind: 1.0.7 es-errors: 1.3.0 is-typed-array: 1.1.13 - dev: true - - /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.13 /typed-array-byte-length@1.0.1: resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} @@ -21968,17 +20192,6 @@ packages: gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 - dev: true - - /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.13 /typed-array-byte-offset@1.0.2: resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} @@ -21990,14 +20203,6 @@ packages: gopd: 1.0.1 has-proto: 1.0.3 is-typed-array: 1.1.13 - dev: true - - /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - is-typed-array: 1.1.13 /typed-array-length@1.0.6: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} @@ -22009,7 +20214,6 @@ packages: has-proto: 1.0.3 is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 - dev: true /typesafe-path@0.2.2: resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} @@ -22049,7 +20253,7 @@ packages: /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - call-bind: 1.0.5 + call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -22311,6 +20515,45 @@ packages: - supports-color dev: false + /unocss@0.58.8(postcss@8.4.38)(vite@5.2.11): + resolution: {integrity: sha512-oMWCEgwvxJcF1BZxxkbTyTd83xtArsza3DModUrJrPndnpOVVz9fZ5g6wcrDbVpv6+cvRrgMCeKMlWKt9WIIsA==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/webpack': 0.58.8 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@unocss/webpack': + optional: true + vite: + optional: true + dependencies: + '@unocss/astro': 0.58.8(vite@5.2.11) + '@unocss/cli': 0.58.8(rollup@2.79.1) + '@unocss/core': 0.58.8 + '@unocss/extractor-arbitrary-variants': 0.58.8 + '@unocss/postcss': 0.58.8(postcss@8.4.38) + '@unocss/preset-attributify': 0.58.8 + '@unocss/preset-icons': 0.58.8 + '@unocss/preset-mini': 0.58.8 + '@unocss/preset-tagify': 0.58.8 + '@unocss/preset-typography': 0.58.8 + '@unocss/preset-uno': 0.58.8 + '@unocss/preset-web-fonts': 0.58.8 + '@unocss/preset-wind': 0.58.8 + '@unocss/reset': 0.58.8 + '@unocss/transformer-attributify-jsx': 0.58.8 + '@unocss/transformer-attributify-jsx-babel': 0.58.8 + '@unocss/transformer-compile-class': 0.58.8 + '@unocss/transformer-directives': 0.58.8 + '@unocss/transformer-variant-group': 0.58.8 + '@unocss/vite': 0.58.8(vite@5.2.11) + vite: 5.2.11(@types/node@20.12.7) + transitivePeerDependencies: + - postcss + - rollup + - supports-color + dev: true + /unocss@0.59.4(postcss@8.4.38)(vite@5.0.10): resolution: {integrity: sha512-QmCVjRObvVu/gsGrJGVt0NnrdhFFn314BUZn2WQyXV9rIvHLRmG5bIu0j5vibJkj7ZhFchTrnTM1pTFXP1xt5g==} engines: {node: '>=14'} @@ -22382,7 +20625,7 @@ packages: '@unocss/transformer-directives': 0.59.4 '@unocss/transformer-variant-group': 0.59.4 '@unocss/vite': 0.59.4(vite@5.2.11) - vite: 5.2.11 + vite: 5.2.11(@types/node@20.12.7) transitivePeerDependencies: - postcss - rollup @@ -22421,7 +20664,7 @@ packages: '@unocss/transformer-directives': 0.60.3 '@unocss/transformer-variant-group': 0.60.3 '@unocss/vite': 0.60.3(rollup@2.79.1)(vite@5.2.11) - vite: 5.2.11 + vite: 5.2.11(@types/node@20.12.7) transitivePeerDependencies: - postcss - rollup @@ -22489,20 +20732,6 @@ packages: react: 18.2.0 tslib: 2.6.2 - /use-callback-ref@1.3.2(react@18.3.1): - resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - react: 18.3.1 - tslib: 2.6.2 - dev: false - /use-sidecar@1.1.2(@types/react@18.2.79)(react@18.2.0): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} @@ -22518,21 +20747,6 @@ packages: react: 18.2.0 tslib: 2.6.2 - /use-sidecar@1.1.2(react@18.3.1): - resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - detect-node-es: 1.1.0 - react: 18.3.1 - tslib: 2.6.2 - dev: false - /use-sync-external-store@1.2.0(react@18.2.0): resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} peerDependencies: @@ -22663,7 +20877,7 @@ packages: - terser dev: true - /vite-plugin-checker@0.6.4(typescript@5.4.5)(vite@5.1.5): + /vite-plugin-checker@0.6.4(eslint@8.55.0)(typescript@5.4.5)(vite@5.1.5): resolution: {integrity: sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==} engines: {node: '>=14.16'} peerDependencies: @@ -22699,6 +20913,7 @@ packages: chalk: 4.1.2 chokidar: 3.5.3 commander: 8.3.0 + eslint: 8.55.0 fast-glob: 3.3.2 fs-extra: 11.2.0 npm-run-path: 4.0.1 @@ -22755,7 +20970,7 @@ packages: debug: 4.3.4 fast-glob: 3.3.2 pretty-bytes: 6.1.1 - vite: 5.2.11 + vite: 5.2.11(@types/node@20.12.7) workbox-build: 7.1.0 workbox-window: 7.1.0 transitivePeerDependencies: @@ -22799,7 +21014,7 @@ packages: debug: 4.3.4 fast-glob: 3.3.2 pretty-bytes: 6.1.1 - vite: 5.2.11 + vite: 5.2.11(@types/node@20.12.7) workbox-build: 7.1.0 workbox-window: 7.1.0 transitivePeerDependencies: @@ -22933,40 +21148,6 @@ packages: fsevents: 2.3.3 dev: true - /vite@5.2.11: - resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.20.2 - postcss: 8.4.38 - rollup: 4.17.2 - optionalDependencies: - fsevents: 2.3.3 - /vite@5.2.11(@types/node@20.12.7): resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -23001,7 +21182,6 @@ packages: rollup: 4.17.2 optionalDependencies: fsevents: 2.3.3 - dev: true /vite@5.2.7: resolution: {integrity: sha512-k14PWOKLI6pMaSzAuGtT+Cf0YmIx12z9YGon39onaJNy8DLBfBJrzg9FQEmkAM5lpHBZs9wksWAsyF/HkpEwJA==} @@ -23045,7 +21225,7 @@ packages: vite: optional: true dependencies: - vite: 5.2.11 + vite: 5.2.11(@types/node@20.12.7) dev: false /vitest@0.22.1: @@ -23185,7 +21365,7 @@ packages: vscode-uri: 3.0.8 dev: false - /volar-service-prettier@0.0.34(@volar/language-service@2.1.6): + /volar-service-prettier@0.0.34(@volar/language-service@2.1.6)(prettier@3.2.5): resolution: {integrity: sha512-BNfJ8FwfPi1Wm/JkuzNjraOLdtKieGksNT/bDyquygVawv1QUzO2HB1hiMKfZGdcSFG5ZL9R0j7bBfRTfXA2gg==} peerDependencies: '@volar/language-service': ~2.1.0 @@ -23197,6 +21377,7 @@ packages: optional: true dependencies: '@volar/language-service': 2.1.6 + prettier: 3.2.5 vscode-uri: 3.0.8 dev: false @@ -23385,7 +21566,7 @@ packages: engines: {node: '>= 0.4'} dependencies: function.prototype.name: 1.1.6 - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 is-async-function: 2.0.0 is-date-object: 1.0.5 is-finalizationregistry: 1.0.2 @@ -23426,16 +21607,6 @@ packages: path-exists: 4.0.0 dev: false - /which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - /which-typed-array@1.1.15: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} diff --git a/server/package.json b/server/package.json index e8abf270..12bfeffb 100644 --- a/server/package.json +++ b/server/package.json @@ -18,10 +18,13 @@ "dependencies": { "@a-type/auth": "0.5.4", "@a-type/utils": "1.1.0", + "@aws-sdk/client-cloudfront": "^3.583.0", + "@aws-sdk/client-s3": "3.583.0", "@biscuits/apps": "workspace:*", "@biscuits/db": "workspace:*", "@biscuits/error": "workspace:*", "@biscuits/libraries": "workspace:*", + "@gnocchi.biscuits/hub": "workspace:*", "@gnocchi.biscuits/scanning": "workspace:*", "@googlemaps/google-maps-services-js": "^3.3.42", "@pothos/core": "^3.41.0", @@ -34,6 +37,7 @@ "@verdant-web/server": "3.0.2", "@whatwg-node/server": "^0.9.22", "better-sqlite3": "^9.1.1", + "change-case": "5.4.4", "cookie": "^0.6.0", "dataloader": "^2.2.2", "date-fns": "^3.6.0", diff --git a/server/src/config/deployedContext.ts b/server/src/config/deployedContext.ts index 3cde6f37..420b44cb 100644 --- a/server/src/config/deployedContext.ts +++ b/server/src/config/deployedContext.ts @@ -3,3 +3,6 @@ export const DEPLOYED_ORIGIN = export const UI_ORIGIN = process.env.UI_ORIGIN || 'http://localhost:6123'; export const PORT = process.env.PORT || DEPLOYED_ORIGIN.split(':')[2]; export const ENVIRONMENT = process.env.NODE_ENV || 'development'; + +export const GNOCCHI_HUB_ORIGIN = + process.env.GNOCCHI_HUB_ORIGIN || 'http://localhost:6124/gnocchi/hubRecipe'; diff --git a/server/src/config/secrets.ts b/server/src/config/secrets.ts index 59e49bb1..0b67d68f 100644 --- a/server/src/config/secrets.ts +++ b/server/src/config/secrets.ts @@ -5,6 +5,7 @@ export const STRIPE_WEBHOOK_SECRET = process.env.STRIPE_WEBHOOK_SECRET!; export const SESSION_SECRET = process.env.SESSION_SECRET!; export const OPENWEATHER_API_KEY = process.env.OPENWEATHER_API_KEY!; export const GOOGLE_MAPS_API_KEY = process.env.GOOGLE_MAPS_API_KEY!; +export const GNOCCHI_HUB_CLOUDFRONT_ID = process.env.GNOCCHI_HUB_CLOUDFRONT_ID; const TEST = process.env.TEST; diff --git a/server/src/graphql/builder.ts b/server/src/graphql/builder.ts index ddc322f7..f8d422c7 100644 --- a/server/src/graphql/builder.ts +++ b/server/src/graphql/builder.ts @@ -9,6 +9,7 @@ import { FoodCategory, Plan, PlanInvitation, + PublishedRecipe, User, } from '@biscuits/db'; import { LibraryInfo } from '@verdant-web/server'; @@ -76,6 +77,7 @@ export const builder = new SchemaBuilder<{ ExtractorData['detailedIngredients'] >[number]; RecipeScanDetailedStep: NonNullable[number]; + PublishedRecipe: PublishedRecipe & { __typename: 'PublishedRecipe' }; // Common Utils WeatherForecast: WeatherForecast; @@ -150,6 +152,10 @@ export const builder = new SchemaBuilder<{ RecipeScanInput: { url: string; }; + PublishRecipeInput: { + id: string; + slug: string; + }; // Common Utils WeatherForecastInput: WeatherForecastInput; diff --git a/server/src/graphql/dataloaders/index.ts b/server/src/graphql/dataloaders/index.ts index e21eb45b..4e0de1fa 100644 --- a/server/src/graphql/dataloaders/index.ts +++ b/server/src/graphql/dataloaders/index.ts @@ -10,9 +10,9 @@ export function keyIndexes(ids: readonly string[]) { return Object.fromEntries(ids.map((id, index) => [id, index])); } -export function createResults(ids: readonly string[]) { +export function createResults(ids: readonly string[], defaultValue?: T) { return new Array(ids.length).fill( - new BiscuitsError(BiscuitsError.Code.NotFound), + defaultValue ?? new BiscuitsError(BiscuitsError.Code.NotFound), ); } diff --git a/server/src/graphql/types/gnocchi/hub.ts b/server/src/graphql/types/gnocchi/hub.ts new file mode 100644 index 00000000..868916e8 --- /dev/null +++ b/server/src/graphql/types/gnocchi/hub.ts @@ -0,0 +1,138 @@ +import { BiscuitsError } from '@biscuits/error'; +import { GNOCCHI_HUB_ORIGIN } from '../../../config/deployedContext.js'; +import { builder } from '../../builder.js'; +import { assignTypeName, hasTypeName } from '../../relay.js'; + +builder.queryFields((t) => ({ + publishedRecipe: t.field({ + type: 'PublishedRecipe', + authScopes: { + member: true, + }, + nullable: true, + args: { + id: t.arg.id({ + required: true, + }), + }, + resolve: async (_, { id }, ctx) => { + const planId = ctx.session?.planId; + if (!planId) { + throw new BiscuitsError( + BiscuitsError.Code.Forbidden, + 'You must be a member to view a published recipe', + ); + } + + const publishedRecipe = await ctx.db + .selectFrom('PublishedRecipe') + .selectAll() + .where('id', '=', id) + .where('planId', '=', planId) + .executeTakeFirst(); + + if (!publishedRecipe) return null; + + return assignTypeName('PublishedRecipe')(publishedRecipe); + }, + }), +})); + +builder.mutationFields((t) => ({ + publishRecipe: t.field({ + type: 'PublishedRecipe', + authScopes: { + member: true, + }, + args: { + input: t.arg({ + type: 'PublishRecipeInput', + required: true, + }), + }, + resolve: async (_, { input }, ctx) => { + const { id, slug } = input; + const planId = ctx.session?.planId; + const userId = ctx.session?.userId; + if (!planId || !userId) { + throw new BiscuitsError( + BiscuitsError.Code.Forbidden, + 'You must be a member to publish a recipe', + ); + } + + const recipe = await ctx.db + .insertInto('PublishedRecipe') + .values({ + id, + planId, + slug, + publishedAt: new Date(), + publishedBy: userId, + }) + .returningAll() + .executeTakeFirstOrThrow(); + + return assignTypeName('PublishedRecipe')(recipe); + }, + }), + + unpublishRecipe: t.field({ + type: 'ID', + authScopes: { + member: true, + }, + args: { + recipeId: t.arg.id({ + required: true, + }), + }, + resolve: async (_, { recipeId }, ctx) => { + const planId = ctx.session?.planId; + if (!planId) { + throw new BiscuitsError( + BiscuitsError.Code.Forbidden, + 'You must be a member to unpublish a recipe', + ); + } + + await ctx.db + .deleteFrom('PublishedRecipe') + .where('id', '=', recipeId) + .where('planId', '=', planId) + .execute(); + + return recipeId; + }, + }), +})); + +builder.objectType('PublishedRecipe', { + description: 'A published recipe', + + isTypeOf: hasTypeName('PublishedRecipe'), + fields: (t) => ({ + id: t.exposeID('id'), + publishedAt: t.expose('publishedAt', { + type: 'DateTime', + }), + url: t.string({ + resolve: (source, _, ctx) => { + return GNOCCHI_HUB_ORIGIN + `/${source.planId}/${source.slug}`; + }, + }), + }), +}); + +builder.inputType('PublishRecipeInput', { + fields: (t) => ({ + id: t.id({ + description: 'The ID of the recipe to publish', + required: true, + }), + slug: t.string({ + description: 'The slug for the published recipe', + required: true, + }), + }), +}); diff --git a/server/src/graphql/types/gnocchi/index.ts b/server/src/graphql/types/gnocchi/index.ts index 6fab2582..8fff4411 100644 --- a/server/src/graphql/types/gnocchi/index.ts +++ b/server/src/graphql/types/gnocchi/index.ts @@ -1,3 +1,4 @@ import './food.js'; import './foodCategory.js'; import './recipeScan.js'; +import './hub.js'; diff --git a/server/src/graphql/types/plan.ts b/server/src/graphql/types/plan.ts index 980e9058..dafe5a5c 100644 --- a/server/src/graphql/types/plan.ts +++ b/server/src/graphql/types/plan.ts @@ -30,7 +30,7 @@ builder.queryFields((t) => ({ }, }), plans: t.connection({ - type: 'Plan', + type: Plan, authScopes: { productAdmin: true, }, @@ -202,6 +202,59 @@ builder.mutationFields((t) => ({ return { planId }; }, }), + setFeatureFlag: t.field({ + type: 'Plan', + authScopes: { + productAdmin: true, + }, + args: { + planId: t.arg.globalID({ + required: true, + }), + flagName: t.arg({ + type: 'String', + required: true, + }), + enabled: t.arg({ + type: 'Boolean', + required: true, + }), + }, + resolve: async (_, { planId, flagName, enabled }, ctx) => { + const { id } = planId; + const currentPlan = await ctx.db + .selectFrom('Plan') + .select(['featureFlags']) + .where('id', '=', id) + .executeTakeFirst(); + + if (!currentPlan) { + throw new BiscuitsError(BiscuitsError.Code.NotFound); + } + + let flags = currentPlan?.featureFlags ?? {}; + flags[flagName] = enabled; + + const plan = await ctx.db + .updateTable('Plan') + .set({ + featureFlags: flags, + }) + .where('id', '=', id) + .returningAll() + .executeTakeFirst(); + + if (!plan) { + logger.urgent('Failed to update plan feature flags', { + planId: id, + featureFlags: flags, + }); + throw new BiscuitsError(BiscuitsError.Code.Unexpected); + } + + return assignTypeName('Plan')(plan); + }, + }), })); export const Plan = builder.loadableNodeRef('Plan', { @@ -487,11 +540,8 @@ Plan.implement({ return []; } } else { - const flags = plan.featureFlags ?? []; - if (!Array.isArray(flags)) { - return []; - } - return flags; + const planFlags = plan.featureFlags ?? {}; + return Object.keys(planFlags).filter((key) => !!planFlags[key]); } }, }), diff --git a/server/src/routers/gnocchi.ts b/server/src/routers/gnocchi.ts new file mode 100644 index 00000000..2be61f88 --- /dev/null +++ b/server/src/routers/gnocchi.ts @@ -0,0 +1,105 @@ +import { Router } from 'itty-router'; +import * as path from 'path'; +import * as fsSync from 'fs'; +import * as fs from 'fs/promises'; +import { serverRender, type HubRecipeData } from '@gnocchi.biscuits/hub'; +import { verdantServer } from '../verdant/verdant.js'; +import { getLibraryName } from '@biscuits/libraries'; +import { db } from '@biscuits/db'; + +export const gnocchiRouter = Router({ + base: '/gnocchi', +}); + +const hubPath = path.join( + process.cwd(), + '..', + 'apps', + 'gnocchi', + 'hub', + 'dist', +); +const hubClientPath = path.join(hubPath, 'client'); + +const indexTemplate = fsSync.readFileSync( + path.join(hubClientPath, 'index.html'), + 'utf8', +); + +const assetFileTypes: Record = { + '.css': 'text/css', + '.js': 'application/javascript', + '.json': 'application/json', + '.ico': 'image/x-icon', + '.png': 'image/png', + '.jpg': 'image/jpeg', + '.jpeg': 'image/jpeg', + '.svg': 'image/svg+xml', + '.gif': 'image/gif', + '.webp': 'image/webp', + '.woff': 'font/woff', + '.woff2': 'font/woff2', +}; + +async function staticFile(req: Request) { + const url = new URL(req.url); + const filePath = path.join( + hubClientPath, + url.pathname.replace('/gnocchi/hubRecipe/', '/'), + ); + + const file = await fs.readFile(filePath, 'utf-8'); + return new Response(file, { + headers: { + 'Content-Type': assetFileTypes[path.extname(filePath)] ?? 'text/plain', + }, + }); +} + +gnocchiRouter.get('/hubRecipe/assets/*', staticFile); + +gnocchiRouter.get('/hubRecipe/:planId/:recipeSlug', async (req) => { + const { planId, recipeSlug } = req.params; + + const recipe = await db + .selectFrom('PublishedRecipe') + .leftJoin('User', 'PublishedRecipe.publishedBy', 'User.id') + .select(['PublishedRecipe.id', 'User.fullName as publisherFullName']) + .where('slug', '=', recipeSlug) + .where('PublishedRecipe.planId', '=', planId) + .executeTakeFirst(); + + if (!recipe) { + return new Response('Recipe not found', { status: 404 }); + } + + const snapshot = await verdantServer.getDocumentSnapshot( + getLibraryName({ planId, app: 'gnocchi', access: 'members', userId: '' }), + 'recipes', + recipe.id, + ); + + const data: HubRecipeData = { + id: recipe.id, + title: snapshot.title, + prelude: snapshot.prelude, + mainImageUrl: snapshot.mainImage?.url, + ingredients: snapshot.ingredients, + instructions: snapshot.instructions, + publisher: { + fullName: recipe.publisherFullName, + }, + }; + + const appHtml = serverRender(data, req.url); + const html = indexTemplate + .replace('', appHtml) + .replace(`{/*snapshot*/}`, JSON.stringify(data)); + return new Response(html, { + headers: { + 'Content-Type': 'text/html', + }, + }); +}); + +gnocchiRouter.get('/hubRecipe/*', staticFile); diff --git a/server/src/routers/transfer.ts b/server/src/routers/transfer.ts deleted file mode 100644 index 91596304..00000000 --- a/server/src/routers/transfer.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { assert } from '@a-type/utils'; -import { apps, isValidAppId } from '@biscuits/apps'; -import { BiscuitsError } from '@biscuits/error'; -import { randomUUID } from 'crypto'; -import { Router } from 'itty-router'; - -// temporary functionality to transfer a user's verdant data -// from gnocchi.club to biscuits.club - -export const transferRouter = Router({ - base: '/transfer', -}); - -const fileCache = new Map(); - -transferRouter.post('/', async (req) => { - // the request should come with a file containing the user's data. - // we store that in memory while the user navigates to the - // new app domain and then retrieves it from the other route by - // the ID we give it. - const data = await req.formData(); - const file = data.get('file'); - const appId = data.get('appId'); - - if (!file) { - throw new BiscuitsError( - BiscuitsError.Code.BadRequest, - 'file must be provided', - ); - } - - if (typeof file === 'string') { - throw new BiscuitsError( - BiscuitsError.Code.BadRequest, - 'file must be a file, not a string', - ); - } - - if (!appId) { - throw new BiscuitsError( - BiscuitsError.Code.BadRequest, - 'appId must be provided', - ); - } - - if (typeof appId !== 'string') { - throw new BiscuitsError( - BiscuitsError.Code.BadRequest, - 'appId must be a string', - ); - } - - if (!isValidAppId(appId)) { - throw new BiscuitsError( - BiscuitsError.Code.BadRequest, - `appId must be one of ${apps.map((app) => app.id).join(', ')}`, - ); - } - - const appManifest = apps.find((app) => app.id === appId); - assert(!!appManifest, 'Missing app manifest for ' + appId); - - const id = randomUUID(); - fileCache.set(id, file); - - // remove file after 1 hour - setTimeout( - () => { - fileCache.delete(id); - }, - 1000 * 60 * 60, - ); - - return new Response(null, { - status: 302, - headers: { - Location: `${appManifest.devOriginOverride}?transferId=${id}`, - }, - }); -}); - -transferRouter.get('/:id', async (req, params) => { - const id = params.id; - const file = fileCache.get(id); - if (!file) { - throw new BiscuitsError(BiscuitsError.Code.NotFound, 'file not found'); - } - - fileCache.delete(id); - - return new Response(file, { - headers: { - 'Content-Type': 'application/json', - }, - }); -}); diff --git a/server/src/server.ts b/server/src/server.ts index 1def2ce7..1e4356af 100644 --- a/server/src/server.ts +++ b/server/src/server.ts @@ -13,8 +13,8 @@ import { stripeRouter } from './routers/stripe.js'; import { graphqlRouter } from './routers/graphql.js'; import { writeSchema } from './tasks/writeSchema.js'; import { AuthError } from '@a-type/auth'; -import { transferRouter } from './routers/transfer.js'; import { killPortProcess } from 'kill-port-process'; +import { gnocchiRouter } from './routers/gnocchi.js'; console.log('Starting server...'); @@ -68,7 +68,7 @@ router .all('/verdant/*', verdantRouter.fetch) .all('/stripe/*', stripeRouter.fetch) .all('/graphql/*', graphqlRouter.fetch) - .all('/transfer/*', transferRouter.fetch); + .all('/gnocchi/*', gnocchiRouter.fetch); const ittyServer = createServerAdapter((request) => router.fetch(request)); diff --git a/server/src/services/cloudfront.ts b/server/src/services/cloudfront.ts new file mode 100644 index 00000000..602865d3 --- /dev/null +++ b/server/src/services/cloudfront.ts @@ -0,0 +1,24 @@ +import { + CloudFront, + CreateInvalidationCommand, +} from '@aws-sdk/client-cloudfront'; + +export const cloudfront = new CloudFront(); + +export async function createInvalidation( + distributionId: string, + paths: string[], +) { + const command = new CreateInvalidationCommand({ + DistributionId: distributionId, + InvalidationBatch: { + CallerReference: `biscuits-${Date.now()}`, + Paths: { + Quantity: paths.length, + Items: paths, + }, + }, + }); + + return cloudfront.send(command); +} diff --git a/server/src/verdant/changeHander.ts b/server/src/verdant/changeHander.ts index 3a1341be..c0874471 100644 --- a/server/src/verdant/changeHander.ts +++ b/server/src/verdant/changeHander.ts @@ -1,9 +1,7 @@ -import { DocumentBaseline, Operation, decomposeOid } from '@verdant-web/common'; -import { sendPush } from '../services/webPush.js'; -import type { AppId } from '@biscuits/apps'; +import { DocumentBaseline, Operation } from '@verdant-web/common'; import { parseLibraryName } from '@biscuits/libraries'; -import { db } from '@biscuits/db'; import { changeHandlers } from './changeHandlers/index.js'; +import { logger } from '../logger.js'; export type ChangeData = { planId: string; @@ -12,11 +10,15 @@ export type ChangeData = { operations: Operation[]; baselines: DocumentBaseline[]; }; -export type ChangeHandler = ( - data: ChangeData, - get: () => T, - schedule: (payload: T) => void, -) => Promise; +export type ChangeHandler = { + match: (data: ChangeData) => boolean; + process: ( + data: ChangeData, + get: () => T, + schedule: (payload: T) => void, + ) => Promise; + effect: (planId: string, userId: string, payload: T) => void; +}; class VerdantChangeListener { private debounceTimeSeconds = 10; @@ -27,12 +29,11 @@ class VerdantChangeListener { planId: string; userId: string; payload: any; + listenerIndex: number; } >(); - constructor( - private appListeners: Partial>>, - ) {} + constructor(private appListeners: ChangeHandler[]) {} update = async ( { @@ -46,24 +47,42 @@ class VerdantChangeListener { baselines: DocumentBaseline[], ) => { const { app, planId } = parseLibraryName(libraryId); - const listener = this.appListeners[app as AppId]; - if (listener) { - const get = () => - this.pendingNotifications.get(`${libraryId}:${userId}`)?.payload; - const schedule = () => { - const existing = this.pendingNotifications.get( - `${libraryId}:${userId}`, + const data = { + planId, + appId: app, + userId, + operations, + baselines, + }; + for (let i = 0; i < this.appListeners.length; i++) { + const listener = this.appListeners[i]; + if (listener.match(data)) { + const get = () => + this.pendingNotifications.get(`${libraryId}:${userId}`)?.payload; + const schedule = (payload: any) => { + const existing = this.pendingNotifications.get( + `${libraryId}:${userId}`, + ); + if (existing) { + clearTimeout(existing.timeout); + existing.payload = payload; + existing.timeout = this.schedule(`${libraryId}:${userId}`); + } else { + this.pendingNotifications.set(`${libraryId}:${userId}`, { + planId, + userId, + payload, + timeout: this.schedule(`${libraryId}:${userId}`), + listenerIndex: i, + }); + } + }; + await listener.process( + { planId, appId: app, userId, operations, baselines }, + get, + schedule, ); - if (existing) { - clearTimeout(existing.timeout); - } - this.schedule(`${libraryId}:${userId}`); - }; - await listener( - { planId, appId: app, userId, operations, baselines }, - get, - schedule, - ); + } } }; @@ -75,41 +94,20 @@ class VerdantChangeListener { const notification = this.pendingNotifications.get(key); if (!notification) return; + const listener = this.appListeners[notification.listenerIndex]; + if (!listener) { + logger.urgent( + `No listener found for ${key} (index: ${notification.listenerIndex}). Something's off.`, + ); + } + this.pendingNotifications.delete(key); - // send a notification to all other users in the plan - const planId = notification.planId; - const subscriptions = await db - .selectFrom('PushSubscription') - .leftJoin('User', 'PushSubscription.userId', 'User.id') - .where('User.planId', '=', planId) - .select([ - 'PushSubscription.p256dh', - 'PushSubscription.auth', - 'PushSubscription.endpoint', - 'User.friendlyName', - 'User.fullName', - 'User.id as userId', - ]) - .execute(); - const sender = subscriptions.find( - (sub) => sub.userId === notification.userId, - ); - const senderName = sender?.friendlyName ?? sender?.fullName ?? 'Someone'; - console.info( - `Sending push notification for changes to ${notification.planId} by ${notification.userId}`, + listener.effect( + notification.planId, + notification.userId, + notification.payload, ); - for (const sub of subscriptions) { - // do not send to originator of change - if (sub.userId === notification.userId) continue; - - if (sub.auth && sub.p256dh) { - await sendPush(sub, { - originatorName: senderName, - payload: notification.payload, - }); - } - } }; } diff --git a/server/src/verdant/changeHandlers/gnocchi.ts b/server/src/verdant/changeHandlers/gnocchi.ts index b4e75bb9..1b098f46 100644 --- a/server/src/verdant/changeHandlers/gnocchi.ts +++ b/server/src/verdant/changeHandlers/gnocchi.ts @@ -1,40 +1,130 @@ import { decomposeOid } from '@verdant-web/common'; import { ChangeHandler } from '../changeHander.js'; +import { db } from '@biscuits/db'; +import { sendPush } from '../../services/webPush.js'; +import { GNOCCHI_HUB_CLOUDFRONT_ID } from '../../config/secrets.js'; +import { logger } from '../../logger.js'; +import { createInvalidation } from '../../services/cloudfront.js'; -export const handleChanges: ChangeHandler<{ +export const gnocchiListNotifications: ChangeHandler<{ createdItemCount: number; purchasedItemCount: number; -}> = async (info, get, schedule) => { - // looking at operations on "item" entities that match the criteria... - // 1. "initialize" op type - // 2. "set" on "purchasedAt" field - let createdItemCount = 0; - let purchasedItemCount = 0; - for (const { data, oid } of info.operations) { - const { collection, subId } = decomposeOid(oid); - // only interested in top-level item changes - if (collection !== 'items' || subId) continue; - - if (data.op === 'initialize') { - createdItemCount++; - } else if (data.op === 'set' && data.name === 'purchasedAt') { - purchasedItemCount++; +}> = { + match: (data) => data.appId === 'gnocchi', + process: async (info, get, schedule) => { + // looking at operations on "item" entities that match the criteria... + // 1. "initialize" op type + // 2. "set" on "purchasedAt" field + let createdItemCount = 0; + let purchasedItemCount = 0; + for (const { data, oid } of info.operations) { + const { collection, subId } = decomposeOid(oid); + // only interested in top-level item changes + if (collection !== 'items' || subId) continue; + + if (data.op === 'initialize') { + createdItemCount++; + } else if ( + data.op === 'set' && + data.name === 'purchasedAt' && + !!data.value + ) { + purchasedItemCount++; + } + } + + if (createdItemCount || purchasedItemCount) { + console.log('list changes detected'); + const existing = get(); + if (existing) { + schedule({ + createdItemCount: existing.createdItemCount + createdItemCount, + purchasedItemCount: existing.purchasedItemCount + purchasedItemCount, + }); + } else { + schedule({ + createdItemCount, + purchasedItemCount, + }); + } } - } - - if (createdItemCount || purchasedItemCount) { - console.log('list changes detected'); - const existing = get(); - if (existing) { - schedule({ - createdItemCount: existing.createdItemCount + createdItemCount, - purchasedItemCount: existing.purchasedItemCount + purchasedItemCount, - }); - } else { - schedule({ - createdItemCount, - purchasedItemCount, - }); + }, + effect: async (planId, userId, payload) => { + // send a notification to all other users in the plan + const subscriptions = await db + .selectFrom('PushSubscription') + .leftJoin('User', 'PushSubscription.userId', 'User.id') + .where('User.planId', '=', planId) + .select([ + 'PushSubscription.p256dh', + 'PushSubscription.auth', + 'PushSubscription.endpoint', + 'User.friendlyName', + 'User.fullName', + 'User.id as userId', + ]) + .execute(); + const sender = subscriptions.find((sub) => sub.userId === userId); + const senderName = sender?.friendlyName ?? sender?.fullName ?? 'Someone'; + console.info( + `Sending push notification for changes to ${planId} by ${userId}`, + ); + for (const sub of subscriptions) { + // do not send to originator of change + if (sub.userId === userId) continue; + + if (sub.auth && sub.p256dh) { + await sendPush(sub, { + originatorName: senderName, + payload, + }); + } + } + }, +}; + +export const gnocchiRecipeInvalidate: ChangeHandler<{ + recipeId: string; +}> = { + match: (data) => data.appId === 'gnocchi', + process: async (info, get, schedule) => { + // looking at operations on "recipe" entities that match the criteria... + // 1. "set" op type + // 2. "updatedAt" field + for (const { data, oid } of info.operations) { + const { collection, subId } = decomposeOid(oid); + if (collection !== 'recipes' || subId) continue; + + if (data.op === 'set' && data.name === 'updatedAt') { + console.log('recipe update detected'); + schedule({ + recipeId: oid, + }); + } + } + }, + effect: async (planId, userId, { recipeId }) => { + if (!GNOCCHI_HUB_CLOUDFRONT_ID) { + logger.warn( + 'No CloudFront distribution ID for Gnocchi Hub; cannot invalidate recipe.', + ); + return; + } + + // is this recipe published? + const recipe = await db + .selectFrom('PublishedRecipe') + .where('id', '=', recipeId) + .select(['publishedAt', 'slug']) + .executeTakeFirst(); + + if (recipe) { + // invalidate the recipe in CloudFront + console.info(`Invalidating recipe ${recipeId} for ${planId}`); + + createInvalidation(GNOCCHI_HUB_CLOUDFRONT_ID, [ + `/recipes/${recipe.slug}`, + ]); } - } + }, }; diff --git a/server/src/verdant/changeHandlers/index.ts b/server/src/verdant/changeHandlers/index.ts index 148199e5..0ca0fca2 100644 --- a/server/src/verdant/changeHandlers/index.ts +++ b/server/src/verdant/changeHandlers/index.ts @@ -1,5 +1,3 @@ -import { handleChanges as gnocchi } from './gnocchi.js'; +import { gnocchiListNotifications } from './gnocchi.js'; -export const changeHandlers = { - gnocchi, -}; +export const changeHandlers = [gnocchiListNotifications]; diff --git a/web/public/videos/gnocchi-compressed.mp4 b/web/public/videos/gnocchi-compressed.mp4 index f0b2172a..376a48a5 100644 Binary files a/web/public/videos/gnocchi-compressed.mp4 and b/web/public/videos/gnocchi-compressed.mp4 differ diff --git a/web/public/videos/gnocchi.mp4 b/web/public/videos/gnocchi.mp4 deleted file mode 100644 index af13db5c..00000000 Binary files a/web/public/videos/gnocchi.mp4 and /dev/null differ diff --git a/web/public/videos/trip-tick.mp4 b/web/public/videos/trip-tick.mp4 deleted file mode 100644 index ecc2f168..00000000 Binary files a/web/public/videos/trip-tick.mp4 and /dev/null differ diff --git a/web/src/pages/admin/AdminPage.tsx b/web/src/pages/admin/AdminPage.tsx index 634bf8ae..1685e3c8 100644 --- a/web/src/pages/admin/AdminPage.tsx +++ b/web/src/pages/admin/AdminPage.tsx @@ -27,6 +27,9 @@ export function AdminPage({}: AdminPageProps) { + + Plans + Foods diff --git a/web/src/pages/admin/AdminPlansPage.tsx b/web/src/pages/admin/AdminPlansPage.tsx new file mode 100644 index 00000000..c1e4d775 --- /dev/null +++ b/web/src/pages/admin/AdminPlansPage.tsx @@ -0,0 +1,158 @@ +import { Button } from '@a-type/ui/components/button'; +import { Checkbox } from '@a-type/ui/components/checkbox'; +import { + Dialog, + DialogContent, + DialogActions, + DialogTitle, + DialogClose, +} from '@a-type/ui/components/dialog'; +import { + featureFlags, + graphql, + useMutation, + useSuspenseQuery, +} from '@biscuits/client'; +import { useSearchParams } from '@verdant-web/react-router'; + +export interface AdminPlansPageProps {} + +const plans = graphql(` + query AdminPlans($after: ID) { + plans(first: 50, after: $after) { + edges { + node { + id + subscriptionStatus + featureFlags + members { + id + email + role + } + } + } + pageInfo { + hasNextPage + endCursor + } + } + } +`); + +const setFlagMutation = graphql(` + mutation SetFlag($planId: ID!, $flagName: String!, $enabled: Boolean!) { + setFeatureFlag(planId: $planId, flagName: $flagName, enabled: $enabled) { + id + featureFlags + } + } +`); + +export function AdminPlansPage({}: AdminPlansPageProps) { + const [search, setSearch] = useSearchParams(); + const selectedId = search.get('planId'); + + const { data, fetchMore } = useSuspenseQuery(plans, { + variables: { + after: undefined, + }, + refetchWritePolicy: 'merge', + }); + + const loadMore = () => { + fetchMore({ + variables: { + after: data.plans.pageInfo.endCursor, + }, + }); + }; + + const [setFlag] = useMutation(setFlagMutation); + + const selected = data.plans.edges.find( + ({ node }) => node.id === selectedId, + )?.node; + + return ( +
    +
      + {data.plans.edges.map(({ node }) => ( +
    • + + {node.id} | {node.subscriptionStatus} + +
        + {node.members.map((member) => ( +
      • + {member.email} ({member.role}) +
      • + ))} +
      + +
    • + ))} +
    + {data.plans.pageInfo.hasNextPage && ( + + )} + { + if (!open) + setSearch((old) => { + old.delete('planId'); + return old; + }); + }} + > + + {selected?.id} +
      + {selected?.members.map((member) => ( +
    • + {member.email} ({member.role}) +
    • + ))} +
    +

    Feature Flags

    +
      + {Object.keys(featureFlags).map((flag) => ( +
    • + { + await setFlag({ + variables: { + planId: selectedId!, + flagName: flag, + enabled: !!checked, + }, + }); + }} + />{' '} + {flag} +
    • + ))} +
    + + + + + +
    +
    +
    + ); +} + +export default AdminPlansPage; diff --git a/web/src/pages/index.tsx b/web/src/pages/index.tsx index 6f634cd1..a8418a40 100644 --- a/web/src/pages/index.tsx +++ b/web/src/pages/index.tsx @@ -60,6 +60,10 @@ const routes = makeRoutes([ path: '/admin', component: lazy(() => import('./admin/AdminPage.js')), children: [ + { + path: 'plans', + component: lazy(() => import('./admin/AdminPlansPage.js')), + }, { path: 'foods', component: lazy(() => import('./admin/AdminFoodsPage.js')),