2
0

Use minio for presigned urls and remove aws sdk

This commit is contained in:
Baptiste Arnaud
2023-08-30 09:08:05 +02:00
parent 5d402d9a38
commit 9a79bc38ee
16 changed files with 236 additions and 327 deletions

View File

@ -52,7 +52,6 @@
"@upstash/ratelimit": "^0.4.3",
"@upstash/redis": "^1.22.0",
"@use-gesture/react": "^10.2.27",
"aws-sdk": "2.1415.0",
"browser-image-compression": "2.0.2",
"canvas-confetti": "1.6.0",
"codemirror": "6.0.1",

View File

@ -1,7 +1,7 @@
import { useToast } from '@/hooks/useToast'
import { Button, ButtonProps, chakra } from '@chakra-ui/react'
import { ChangeEvent, useState } from 'react'
import { uploadFiles } from '@typebot.io/lib'
import { uploadFiles } from '@typebot.io/lib/uploadFiles'
import { compressFile } from '@/helpers/compressFile'
type UploadButtonProps = {

View File

@ -90,11 +90,17 @@ export const TypebotProvider = ({
{ typebotId: typebotId as string },
{
enabled: isDefined(typebotId),
onError: (error) =>
onError: (error) => {
if (error.data?.httpStatus === 404) {
showToast({ status: 'info', description: "Couldn't find typebot" })
push('/typebots')
return
}
showToast({
title: 'Error while fetching typebot. Refresh the page.',
description: error.message,
}),
})
},
}
)
@ -103,11 +109,13 @@ export const TypebotProvider = ({
{ typebotId: typebotId as string },
{
enabled: isDefined(typebotId),
onError: (error) =>
onError: (error) => {
if (error.data?.httpStatus === 404) return
showToast({
title: 'Error while fetching published typebot',
description: error.message,
}),
})
},
}
)
@ -134,12 +142,7 @@ export const TypebotProvider = ({
useEffect(() => {
if (!typebot && isDefined(localTypebot)) setLocalTypebot(undefined)
if (isFetchingTypebot) return
if (!typebot) {
showToast({ status: 'info', description: "Couldn't find typebot" })
push('/typebots')
return
}
if (isFetchingTypebot || !typebot) return
if (
typebot.id !== localTypebot?.id ||
new Date(typebot.updatedAt).getTime() >

View File

@ -25,7 +25,7 @@ const handler = async (
const filePath = req.query.filePath as string | undefined
const fileType = req.query.fileType as string | undefined
if (!filePath || !fileType) return badRequest(res)
const presignedUrl = generatePresignedUrl({ fileType, filePath })
const presignedUrl = await generatePresignedUrl({ fileType, filePath })
return res.status(200).send({ presignedUrl })
}

View File

@ -6232,17 +6232,7 @@
"type": "object",
"properties": {
"presignedUrl": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"fields": {}
},
"required": [
"url"
],
"additionalProperties": false
"type": "string"
},
"hasReachedStorageLimit": {
"type": "boolean"

View File

@ -49,6 +49,6 @@
"dotenv-cli": "^7.2.1",
"tsx": "3.12.5",
"typescript": "4.9.5",
"webpack": "5.76.1"
"url": "^0.11.1"
}
}

View File

@ -18,7 +18,6 @@
"@typebot.io/prisma": "workspace:*",
"ai": "2.1.32",
"@udecode/plate-common": "^21.1.5",
"aws-sdk": "2.1415.0",
"bot-engine": "workspace:*",
"chrono-node": "^2.6.4",
"cors": "2.8.5",

View File

@ -32,10 +32,7 @@ export const getUploadUrl = publicProcedure
)
.output(
z.object({
presignedUrl: z.object({
url: z.string(),
fields: z.any(),
}),
presignedUrl: z.string(),
hasReachedStorageLimit: z.boolean(),
})
)
@ -63,14 +60,9 @@ export const getUploadUrl = publicProcedure
message: 'File upload block not found',
})
const sizeLimit = fileUploadBlock.options.sizeLimit
? Math.min(fileUploadBlock.options.sizeLimit, 500)
: 10
const presignedUrl = generatePresignedUrl({
const presignedUrl = await generatePresignedUrl({
fileType,
filePath,
sizeLimit: sizeLimit * 1024 * 1024,
})
return {

View File

@ -4,7 +4,7 @@ import { useTypebot } from '@/providers/TypebotProvider'
import { InputSubmitContent } from '@/types'
import { defaultFileInputOptions, FileInputBlock } from '@typebot.io/schemas'
import React, { ChangeEvent, FormEvent, useState, DragEvent } from 'react'
import { uploadFiles } from '@typebot.io/lib'
import { uploadFiles } from '@typebot.io/lib/uploadFiles'
type Props = {
block: FileInputBlock

View File

@ -4,7 +4,7 @@ import { guessApiHost } from '@/utils/guessApiHost'
import { FileInputBlock } from '@typebot.io/schemas'
import { defaultFileInputOptions } from '@typebot.io/schemas/features/blocks/inputs/file'
import { createSignal, Match, Show, Switch } from 'solid-js'
import { uploadFiles } from '@typebot.io/lib'
import { uploadFiles } from '@typebot.io/lib/uploadFiles'
import { Button } from '@/components/Button'
import { Spinner } from '@/components/Spinner'

View File

@ -14,7 +14,7 @@ export const deleteFilesFromBucket = async ({
const minioClient = new Client({
endPoint: env.S3_ENDPOINT,
port: env.S3_PORT,
useSSL: env.S3_SSL ?? true,
useSSL: env.S3_SSL,
accessKey: env.S3_ACCESS_KEY,
secretKey: env.S3_SECRET_KEY,
region: env.S3_REGION,

View File

@ -1,46 +1,32 @@
import { env } from '@typebot.io/env'
import { config, Endpoint, S3 } from 'aws-sdk'
import { Client } from 'minio'
type GeneratePresignedUrlProps = {
filePath: string
fileType?: string
sizeLimit?: number
}
const tenMB = 10 * 1024 * 1024
const tenMinutes = 10 * 60
export const generatePresignedUrl = ({
export const generatePresignedUrl = async ({
filePath,
fileType,
sizeLimit = tenMB,
}: GeneratePresignedUrlProps): S3.PresignedPost => {
}: GeneratePresignedUrlProps): Promise<string> => {
if (!env.S3_ENDPOINT || !env.S3_ACCESS_KEY || !env.S3_SECRET_KEY)
throw new Error(
'S3 not properly configured. Missing one of those variables: S3_ENDPOINT, S3_ACCESS_KEY, S3_SECRET_KEY'
)
config.update({
accessKeyId: env.S3_ACCESS_KEY,
secretAccessKey: env.S3_SECRET_KEY,
const minioClient = new Client({
endPoint: env.S3_ENDPOINT,
port: env.S3_PORT,
useSSL: env.S3_SSL,
accessKey: env.S3_ACCESS_KEY,
secretKey: env.S3_SECRET_KEY,
region: env.S3_REGION,
sslEnabled: env.S3_SSL ?? true,
})
const protocol = env.S3_SSL ?? true ? 'https' : 'http'
const s3 = new S3({
endpoint: new Endpoint(
`${protocol}://${env.S3_ENDPOINT}${env.S3_PORT ? `:${env.S3_PORT}` : ''}`
),
})
const presignedUrl = s3.createPresignedPost({
Bucket: env.S3_BUCKET ?? 'typebot',
Fields: {
key: filePath,
'Content-Type': fileType,
},
Expires: tenMinutes,
Conditions: [['content-length-range', 0, sizeLimit]],
return minioClient.presignedUrl('PUT', env.S3_BUCKET, filePath, tenMinutes, {
'Content-Type': fileType,
})
return presignedUrl
}

View File

@ -12,14 +12,12 @@
"@typebot.io/schemas": "workspace:*",
"@typebot.io/tsconfig": "workspace:*",
"@types/nodemailer": "6.4.8",
"aws-sdk": "2.1415.0",
"next": "13.4.3",
"nodemailer": "6.9.3",
"typescript": "5.1.6",
"@typebot.io/env": "workspace:*"
},
"peerDependencies": {
"aws-sdk": "2.1152.0",
"next": "13.0.0",
"nodemailer": "6.7.8"
},

View File

@ -0,0 +1,49 @@
import { sendRequest } from './utils'
type UploadFileProps = {
basePath?: string
files: {
file: File
path: string
}[]
onUploadProgress?: (percent: number) => void
}
type UrlList = (string | null)[]
export const uploadFiles = async ({
basePath = '/api',
files,
onUploadProgress,
}: UploadFileProps): Promise<UrlList> => {
const urls = []
let i = 0
for (const { file, path } of files) {
onUploadProgress && onUploadProgress((i / files.length) * 100)
i += 1
const { data } = await sendRequest<{
presignedUrl: string
hasReachedStorageLimit: boolean
}>(
`${basePath}/storage/upload-url?filePath=${encodeURIComponent(
path
)}&fileType=${file.type}`
)
if (!data?.presignedUrl) continue
const url = data.presignedUrl
if (data.hasReachedStorageLimit) urls.push(null)
else {
const upload = await fetch(url, {
method: 'PUT',
body: file,
})
if (!upload.ok) continue
urls.push(url.split('?')[0])
}
}
return urls
}

View File

@ -196,57 +196,6 @@ export const generateId = (idDesiredLength: number): string => {
.join('')
}
type UploadFileProps = {
basePath?: string
files: {
file: File
path: string
}[]
onUploadProgress?: (percent: number) => void
}
type UrlList = (string | null)[]
export const uploadFiles = async ({
basePath = '/api',
files,
onUploadProgress,
}: UploadFileProps): Promise<UrlList> => {
const urls = []
let i = 0
for (const { file, path } of files) {
onUploadProgress && onUploadProgress((i / files.length) * 100)
i += 1
const { data } = await sendRequest<{
presignedUrl: { url: string; fields: any }
hasReachedStorageLimit: boolean
}>(
`${basePath}/storage/upload-url?filePath=${encodeURIComponent(
path
)}&fileType=${file.type}`
)
if (!data?.presignedUrl) continue
const { url, fields } = data.presignedUrl
if (data.hasReachedStorageLimit) urls.push(null)
else {
const formData = new FormData()
Object.entries({ ...fields, file }).forEach(([key, value]) => {
formData.append(key, value as string | Blob)
})
const upload = await fetch(url, {
method: 'POST',
body: formData,
})
if (!upload.ok) continue
urls.push(`${url.split('?')[0]}/${path}`)
}
}
return urls
}
export const hasValue = (
value: string | undefined | null
): value is NonNullable<string> =>

364
pnpm-lock.yaml generated
View File

@ -149,9 +149,6 @@ importers:
'@use-gesture/react':
specifier: ^10.2.27
version: 10.2.27(react@18.2.0)
aws-sdk:
specifier: 2.1415.0
version: 2.1415.0
browser-image-compression:
specifier: 2.0.2
version: 2.0.2
@ -383,7 +380,7 @@ importers:
version: 1.2.1
file-loader:
specifier: 6.2.0
version: 6.2.0(webpack@5.76.1)
version: 6.2.0(webpack@5.88.2)
prism-react-renderer:
specifier: 1.3.5
version: 1.3.5(react@17.0.2)
@ -395,7 +392,7 @@ importers:
version: 17.0.2(react@17.0.2)
url-loader:
specifier: 4.1.1
version: 4.1.1(file-loader@6.2.0)(webpack@5.76.1)
version: 4.1.1(file-loader@6.2.0)(webpack@5.88.2)
devDependencies:
'@algolia/client-search':
specifier: 4.15.0
@ -415,9 +412,9 @@ importers:
typescript:
specifier: 4.9.5
version: 4.9.5
webpack:
specifier: 5.76.1
version: 5.76.1
url:
specifier: ^0.11.1
version: 0.11.1
apps/landing-page:
dependencies:
@ -539,9 +536,6 @@ importers:
ai:
specifier: 2.1.32
version: 2.1.32(react@18.2.0)(solid-js@1.7.8)(svelte@4.2.0)(vue@3.3.4)
aws-sdk:
specifier: 2.1415.0
version: 2.1415.0
bot-engine:
specifier: workspace:*
version: link:../../packages/deprecated/bot-engine
@ -1155,9 +1149,6 @@ importers:
'@types/nodemailer':
specifier: 6.4.8
version: 6.4.8
aws-sdk:
specifier: 2.1415.0
version: 2.1415.0
next:
specifier: 13.4.3
version: 13.4.3(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0)
@ -4672,7 +4663,7 @@ packages:
'@slorber/static-site-generator-webpack-plugin': 4.0.7
'@svgr/webpack': 6.5.1
autoprefixer: 10.4.14(postcss@8.4.26)
babel-loader: 8.3.0(@babel/core@7.22.9)(webpack@5.76.1)
babel-loader: 8.3.0(@babel/core@7.22.9)(webpack@5.88.2)
babel-plugin-dynamic-import-node: 2.3.3
boxen: 6.2.1
chalk: 4.1.2
@ -4681,33 +4672,33 @@ packages:
cli-table3: 0.6.3
combine-promises: 1.2.0
commander: 5.1.0
copy-webpack-plugin: 11.0.0(webpack@5.76.1)
copy-webpack-plugin: 11.0.0(webpack@5.88.2)
core-js: 3.32.1
css-loader: 6.8.1(webpack@5.76.1)
css-minimizer-webpack-plugin: 4.2.2(clean-css@5.3.2)(webpack@5.76.1)
css-loader: 6.8.1(webpack@5.88.2)
css-minimizer-webpack-plugin: 4.2.2(clean-css@5.3.2)(webpack@5.88.2)
cssnano: 5.1.15(postcss@8.4.26)
del: 6.1.1
detect-port: 1.5.1
escape-html: 1.0.3
eta: 2.2.0
file-loader: 6.2.0(webpack@5.76.1)
file-loader: 6.2.0(webpack@5.88.2)
fs-extra: 10.1.0
html-minifier-terser: 6.1.0
html-tags: 3.3.1
html-webpack-plugin: 5.5.3(webpack@5.76.1)
html-webpack-plugin: 5.5.3(webpack@5.88.2)
import-fresh: 3.3.0
leven: 3.1.0
lodash: 4.17.21
mini-css-extract-plugin: 2.7.6(webpack@5.76.1)
mini-css-extract-plugin: 2.7.6(webpack@5.88.2)
postcss: 8.4.26
postcss-loader: 7.3.3(postcss@8.4.26)(webpack@5.76.1)
postcss-loader: 7.3.3(postcss@8.4.26)(webpack@5.88.2)
prompts: 2.4.2
react: 17.0.2
react-dev-utils: 12.0.1(typescript@4.9.5)(webpack@5.76.1)
react-dev-utils: 12.0.1(typescript@4.9.5)(webpack@5.88.2)
react-dom: 17.0.2(react@17.0.2)
react-helmet-async: 1.3.0(react-dom@17.0.2)(react@17.0.2)
react-loadable: /@docusaurus/react-loadable@5.5.2(react@17.0.2)
react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.76.1)
react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.88.2)
react-router: 5.3.4(react@17.0.2)
react-router-config: 5.1.1(react-router@5.3.4)(react@17.0.2)
react-router-dom: 5.3.4(react@17.0.2)
@ -4715,16 +4706,16 @@ packages:
semver: 7.5.4
serve-handler: 6.1.5
shelljs: 0.8.5
terser-webpack-plugin: 5.3.9(webpack@5.76.1)
terser-webpack-plugin: 5.3.9(webpack@5.88.2)
tslib: 2.6.0
update-notifier: 5.1.0
url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.76.1)
url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.88.2)
wait-on: 6.0.1
webpack: 5.76.1
webpack: 5.88.2
webpack-bundle-analyzer: 4.9.0
webpack-dev-server: 4.15.1(webpack@5.76.1)
webpack-dev-server: 4.15.1(webpack@5.88.2)
webpack-merge: 5.9.0
webpackbar: 5.0.2(webpack@5.76.1)
webpackbar: 5.0.2(webpack@5.88.2)
transitivePeerDependencies:
- '@docusaurus/types'
- '@parcel/css'
@ -4775,7 +4766,7 @@ packages:
'@docusaurus/utils': 2.4.1(@docusaurus/types@2.3.1)
'@mdx-js/mdx': 1.6.22
escape-html: 1.0.3
file-loader: 6.2.0(webpack@5.76.1)
file-loader: 6.2.0(webpack@5.88.2)
fs-extra: 10.1.0
image-size: 1.0.2
mdast-util-to-string: 2.0.0
@ -4786,8 +4777,8 @@ packages:
tslib: 2.6.0
unified: 9.2.2
unist-util-visit: 2.0.3
url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.76.1)
webpack: 5.76.1
url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.88.2)
webpack: 5.88.2
transitivePeerDependencies:
- '@docusaurus/types'
- '@swc/core'
@ -4810,7 +4801,7 @@ packages:
'@docusaurus/utils': 2.4.1(@docusaurus/types@2.4.1)
'@mdx-js/mdx': 1.6.22
escape-html: 1.0.3
file-loader: 6.2.0(webpack@5.76.1)
file-loader: 6.2.0(webpack@5.88.2)
fs-extra: 10.1.0
image-size: 1.0.2
mdast-util-to-string: 2.0.0
@ -4821,8 +4812,8 @@ packages:
tslib: 2.6.0
unified: 9.2.2
unist-util-visit: 2.0.3
url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.76.1)
webpack: 5.76.1
url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.88.2)
webpack: 5.88.2
transitivePeerDependencies:
- '@docusaurus/types'
- '@swc/core'
@ -4878,7 +4869,7 @@ packages:
tslib: 2.6.0
unist-util-visit: 2.0.3
utility-types: 3.10.0
webpack: 5.76.1
webpack: 5.88.2
transitivePeerDependencies:
- '@swc/core'
- esbuild
@ -4910,7 +4901,7 @@ packages:
react-dom: 17.0.2(react@17.0.2)
tslib: 2.6.0
utility-types: 3.10.0
webpack: 5.76.1
webpack: 5.88.2
transitivePeerDependencies:
- '@swc/core'
- esbuild
@ -4934,7 +4925,7 @@ packages:
react: 17.0.2
react-dom: 17.0.2(react@17.0.2)
tslib: 2.6.0
webpack: 5.76.1
webpack: 5.88.2
transitivePeerDependencies:
- '@swc/core'
- esbuild
@ -5260,7 +5251,7 @@ packages:
react-dom: 17.0.2(react@17.0.2)
react-helmet-async: 1.3.0(react-dom@17.0.2)(react@17.0.2)
utility-types: 3.10.0
webpack: 5.76.1
webpack: 5.88.2
webpack-merge: 5.9.0
transitivePeerDependencies:
- '@swc/core'
@ -5282,7 +5273,7 @@ packages:
react-dom: 17.0.2(react@17.0.2)
react-helmet-async: 1.3.0(react-dom@17.0.2)(react@17.0.2)
utility-types: 3.10.0
webpack: 5.76.1
webpack: 5.88.2
webpack-merge: 5.9.0
transitivePeerDependencies:
- '@swc/core'
@ -5366,7 +5357,7 @@ packages:
'@docusaurus/types': 2.3.1(react-dom@17.0.2)(react@17.0.2)
'@svgr/webpack': 6.5.1
escape-string-regexp: 4.0.0
file-loader: 6.2.0(webpack@5.76.1)
file-loader: 6.2.0(webpack@5.88.2)
fs-extra: 10.1.0
github-slugger: 1.5.0
globby: 11.1.0
@ -5377,8 +5368,8 @@ packages:
resolve-pathname: 3.0.0
shelljs: 0.8.5
tslib: 2.6.0
url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.76.1)
webpack: 5.76.1
url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.88.2)
webpack: 5.88.2
transitivePeerDependencies:
- '@swc/core'
- esbuild
@ -5400,7 +5391,7 @@ packages:
'@docusaurus/types': 2.4.1(react-dom@17.0.2)(react@17.0.2)
'@svgr/webpack': 6.5.1
escape-string-regexp: 4.0.0
file-loader: 6.2.0(webpack@5.76.1)
file-loader: 6.2.0(webpack@5.88.2)
fs-extra: 10.1.0
github-slugger: 1.5.0
globby: 11.1.0
@ -5411,8 +5402,8 @@ packages:
resolve-pathname: 3.0.0
shelljs: 0.8.5
tslib: 2.6.0
url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.76.1)
webpack: 5.76.1
url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.88.2)
webpack: 5.88.2
transitivePeerDependencies:
- '@swc/core'
- esbuild
@ -8371,7 +8362,7 @@ packages:
react: 17.0.2
react-dom: 17.0.2(react@17.0.2)
remark-admonitions: 1.2.1
webpack: 5.76.1
webpack: 5.88.2
transitivePeerDependencies:
- '@docusaurus/types'
- '@swc/core'
@ -8437,7 +8428,7 @@ packages:
react-magic-dropzone: 1.0.1
react-redux: 7.2.9(react-dom@17.0.2)(react@17.0.2)
redux-devtools-extension: 2.13.9(redux@4.2.1)
webpack: 5.76.1
webpack: 5.88.2
transitivePeerDependencies:
- '@docusaurus/types'
- '@swc/core'
@ -8531,17 +8522,14 @@ packages:
resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==}
dependencies:
'@types/eslint': 8.44.2
'@types/estree': 0.0.51
'@types/estree': 1.0.1
/@types/eslint@8.44.2:
resolution: {integrity: sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==}
dependencies:
'@types/estree': 0.0.51
'@types/estree': 1.0.1
'@types/json-schema': 7.0.12
/@types/estree@0.0.51:
resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==}
/@types/estree@1.0.1:
resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==}
@ -9930,95 +9918,95 @@ packages:
resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==}
dev: false
/@webassemblyjs/ast@1.11.1:
resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==}
/@webassemblyjs/ast@1.11.6:
resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==}
dependencies:
'@webassemblyjs/helper-numbers': 1.11.1
'@webassemblyjs/helper-wasm-bytecode': 1.11.1
'@webassemblyjs/helper-numbers': 1.11.6
'@webassemblyjs/helper-wasm-bytecode': 1.11.6
/@webassemblyjs/floating-point-hex-parser@1.11.1:
resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==}
/@webassemblyjs/floating-point-hex-parser@1.11.6:
resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==}
/@webassemblyjs/helper-api-error@1.11.1:
resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==}
/@webassemblyjs/helper-api-error@1.11.6:
resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==}
/@webassemblyjs/helper-buffer@1.11.1:
resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==}
/@webassemblyjs/helper-buffer@1.11.6:
resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==}
/@webassemblyjs/helper-numbers@1.11.1:
resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==}
/@webassemblyjs/helper-numbers@1.11.6:
resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==}
dependencies:
'@webassemblyjs/floating-point-hex-parser': 1.11.1
'@webassemblyjs/helper-api-error': 1.11.1
'@webassemblyjs/floating-point-hex-parser': 1.11.6
'@webassemblyjs/helper-api-error': 1.11.6
'@xtuc/long': 4.2.2
/@webassemblyjs/helper-wasm-bytecode@1.11.1:
resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==}
/@webassemblyjs/helper-wasm-bytecode@1.11.6:
resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==}
/@webassemblyjs/helper-wasm-section@1.11.1:
resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==}
/@webassemblyjs/helper-wasm-section@1.11.6:
resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==}
dependencies:
'@webassemblyjs/ast': 1.11.1
'@webassemblyjs/helper-buffer': 1.11.1
'@webassemblyjs/helper-wasm-bytecode': 1.11.1
'@webassemblyjs/wasm-gen': 1.11.1
'@webassemblyjs/ast': 1.11.6
'@webassemblyjs/helper-buffer': 1.11.6
'@webassemblyjs/helper-wasm-bytecode': 1.11.6
'@webassemblyjs/wasm-gen': 1.11.6
/@webassemblyjs/ieee754@1.11.1:
resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==}
/@webassemblyjs/ieee754@1.11.6:
resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==}
dependencies:
'@xtuc/ieee754': 1.2.0
/@webassemblyjs/leb128@1.11.1:
resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==}
/@webassemblyjs/leb128@1.11.6:
resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==}
dependencies:
'@xtuc/long': 4.2.2
/@webassemblyjs/utf8@1.11.1:
resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==}
/@webassemblyjs/utf8@1.11.6:
resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==}
/@webassemblyjs/wasm-edit@1.11.1:
resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==}
/@webassemblyjs/wasm-edit@1.11.6:
resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==}
dependencies:
'@webassemblyjs/ast': 1.11.1
'@webassemblyjs/helper-buffer': 1.11.1
'@webassemblyjs/helper-wasm-bytecode': 1.11.1
'@webassemblyjs/helper-wasm-section': 1.11.1
'@webassemblyjs/wasm-gen': 1.11.1
'@webassemblyjs/wasm-opt': 1.11.1
'@webassemblyjs/wasm-parser': 1.11.1
'@webassemblyjs/wast-printer': 1.11.1
'@webassemblyjs/ast': 1.11.6
'@webassemblyjs/helper-buffer': 1.11.6
'@webassemblyjs/helper-wasm-bytecode': 1.11.6
'@webassemblyjs/helper-wasm-section': 1.11.6
'@webassemblyjs/wasm-gen': 1.11.6
'@webassemblyjs/wasm-opt': 1.11.6
'@webassemblyjs/wasm-parser': 1.11.6
'@webassemblyjs/wast-printer': 1.11.6
/@webassemblyjs/wasm-gen@1.11.1:
resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==}
/@webassemblyjs/wasm-gen@1.11.6:
resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==}
dependencies:
'@webassemblyjs/ast': 1.11.1
'@webassemblyjs/helper-wasm-bytecode': 1.11.1
'@webassemblyjs/ieee754': 1.11.1
'@webassemblyjs/leb128': 1.11.1
'@webassemblyjs/utf8': 1.11.1
'@webassemblyjs/ast': 1.11.6
'@webassemblyjs/helper-wasm-bytecode': 1.11.6
'@webassemblyjs/ieee754': 1.11.6
'@webassemblyjs/leb128': 1.11.6
'@webassemblyjs/utf8': 1.11.6
/@webassemblyjs/wasm-opt@1.11.1:
resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==}
/@webassemblyjs/wasm-opt@1.11.6:
resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==}
dependencies:
'@webassemblyjs/ast': 1.11.1
'@webassemblyjs/helper-buffer': 1.11.1
'@webassemblyjs/wasm-gen': 1.11.1
'@webassemblyjs/wasm-parser': 1.11.1
'@webassemblyjs/ast': 1.11.6
'@webassemblyjs/helper-buffer': 1.11.6
'@webassemblyjs/wasm-gen': 1.11.6
'@webassemblyjs/wasm-parser': 1.11.6
/@webassemblyjs/wasm-parser@1.11.1:
resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==}
/@webassemblyjs/wasm-parser@1.11.6:
resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==}
dependencies:
'@webassemblyjs/ast': 1.11.1
'@webassemblyjs/helper-api-error': 1.11.1
'@webassemblyjs/helper-wasm-bytecode': 1.11.1
'@webassemblyjs/ieee754': 1.11.1
'@webassemblyjs/leb128': 1.11.1
'@webassemblyjs/utf8': 1.11.1
'@webassemblyjs/ast': 1.11.6
'@webassemblyjs/helper-api-error': 1.11.6
'@webassemblyjs/helper-wasm-bytecode': 1.11.6
'@webassemblyjs/ieee754': 1.11.6
'@webassemblyjs/leb128': 1.11.6
'@webassemblyjs/utf8': 1.11.6
/@webassemblyjs/wast-printer@1.11.1:
resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==}
/@webassemblyjs/wast-printer@1.11.6:
resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==}
dependencies:
'@webassemblyjs/ast': 1.11.1
'@webassemblyjs/ast': 1.11.6
'@xtuc/long': 4.2.2
/@xobotyi/scrollbar-width@1.9.5:
@ -10518,21 +10506,6 @@ packages:
resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
engines: {node: '>= 0.4'}
/aws-sdk@2.1415.0:
resolution: {integrity: sha512-tJneWCa1IZnw+pn3AwjE+3u8oGSlMMk6mCkA/7BOqe+n9shLLymwPfmxeCxtArBmBzg8m74vkoEYh5tm8Eo/gw==}
engines: {node: '>= 10.0.0'}
dependencies:
buffer: 4.9.2
events: 1.1.1
ieee754: 1.1.13
jmespath: 0.16.0
querystring: 0.2.0
sax: 1.2.1
url: 0.10.3
util: 0.12.5
uuid: 8.0.0
xml2js: 0.5.0
/axe-core@4.7.2:
resolution: {integrity: sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==}
engines: {node: '>=4'}
@ -10601,7 +10574,7 @@ packages:
- supports-color
dev: true
/babel-loader@8.3.0(@babel/core@7.22.9)(webpack@5.76.1):
/babel-loader@8.3.0(@babel/core@7.22.9)(webpack@5.88.2):
resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==}
engines: {node: '>= 8.9'}
peerDependencies:
@ -10613,7 +10586,7 @@ packages:
loader-utils: 2.0.4
make-dir: 3.1.0
schema-utils: 2.7.1
webpack: 5.76.1
webpack: 5.88.2
dev: false
/babel-plugin-apply-mdx-type-prop@1.6.22(@babel/core@7.12.9):
@ -10979,13 +10952,6 @@ packages:
/buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
/buffer@4.9.2:
resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==}
dependencies:
base64-js: 1.5.1
ieee754: 1.1.13
isarray: 1.0.0
/buffer@5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
dependencies:
@ -11686,7 +11652,7 @@ packages:
toggle-selection: 1.0.6
dev: false
/copy-webpack-plugin@11.0.0(webpack@5.76.1):
/copy-webpack-plugin@11.0.0(webpack@5.88.2):
resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==}
engines: {node: '>= 14.15.0'}
peerDependencies:
@ -11698,7 +11664,7 @@ packages:
normalize-path: 3.0.0
schema-utils: 4.2.0
serialize-javascript: 6.0.1
webpack: 5.76.1
webpack: 5.88.2
dev: false
/core-js-compat@3.32.1:
@ -11849,7 +11815,7 @@ packages:
hyphenate-style-name: 1.0.4
dev: false
/css-loader@6.8.1(webpack@5.76.1):
/css-loader@6.8.1(webpack@5.88.2):
resolution: {integrity: sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==}
engines: {node: '>= 12.13.0'}
peerDependencies:
@ -11863,10 +11829,10 @@ packages:
postcss-modules-values: 4.0.0(postcss@8.4.26)
postcss-value-parser: 4.2.0
semver: 7.5.4
webpack: 5.76.1
webpack: 5.88.2
dev: false
/css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.2)(webpack@5.76.1):
/css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.2)(webpack@5.88.2):
resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==}
engines: {node: '>= 14.15.0'}
peerDependencies:
@ -11898,7 +11864,7 @@ packages:
schema-utils: 4.2.0
serialize-javascript: 6.0.1
source-map: 0.6.1
webpack: 5.76.1
webpack: 5.88.2
dev: false
/css-select@4.3.0:
@ -12681,8 +12647,8 @@ packages:
unbox-primitive: 1.0.2
which-typed-array: 1.1.11
/es-module-lexer@0.9.3:
resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==}
/es-module-lexer@1.3.0:
resolution: {integrity: sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==}
/es-set-tostringtag@2.0.1:
resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
@ -13482,10 +13448,6 @@ packages:
/eventemitter3@4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
/events@1.1.1:
resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==}
engines: {node: '>=0.4.x'}
/events@3.3.0:
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
engines: {node: '>=0.8.x'}
@ -13737,7 +13699,7 @@ packages:
dependencies:
flat-cache: 3.1.0
/file-loader@6.2.0(webpack@5.76.1):
/file-loader@6.2.0(webpack@5.88.2):
resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
engines: {node: '>= 10.13.0'}
peerDependencies:
@ -13745,7 +13707,7 @@ packages:
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
webpack: 5.76.1
webpack: 5.88.2
dev: false
/file-type@3.9.0:
@ -13870,7 +13832,7 @@ packages:
dependencies:
is-callable: 1.2.7
/fork-ts-checker-webpack-plugin@6.5.3(typescript@4.9.5)(webpack@5.76.1):
/fork-ts-checker-webpack-plugin@6.5.3(typescript@4.9.5)(webpack@5.88.2):
resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==}
engines: {node: '>=10', yarn: '>=1.0.0'}
peerDependencies:
@ -13898,7 +13860,7 @@ packages:
semver: 7.5.4
tapable: 1.1.3
typescript: 4.9.5
webpack: 5.76.1
webpack: 5.88.2
dev: false
/form-data-encoder@2.1.4:
@ -14661,7 +14623,7 @@ packages:
resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==}
dev: false
/html-webpack-plugin@5.5.3(webpack@5.76.1):
/html-webpack-plugin@5.5.3(webpack@5.88.2):
resolution: {integrity: sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==}
engines: {node: '>=10.13.0'}
peerDependencies:
@ -14672,7 +14634,7 @@ packages:
lodash: 4.17.21
pretty-error: 4.0.0
tapable: 2.2.1
webpack: 5.76.1
webpack: 5.88.2
dev: false
/htmlparser2@3.10.1:
@ -14886,9 +14848,6 @@ packages:
dependencies:
postcss: 8.4.26
/ieee754@1.1.13:
resolution: {integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==}
/ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
dev: false
@ -15420,6 +15379,7 @@ packages:
/isarray@1.0.0:
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
dev: false
/isarray@2.0.5:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
@ -15943,10 +15903,6 @@ packages:
resolution: {integrity: sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==}
hasBin: true
/jmespath@0.16.0:
resolution: {integrity: sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==}
engines: {node: '>= 0.6.0'}
/joi@17.10.0:
resolution: {integrity: sha512-hrazgRSlhzacZ69LdcKfhi3Vu13z2yFfoAzmEov3yFIJlatTdVGUW6vle1zjH8qkzdCn/qGw8rapjqsObbYXAg==}
dependencies:
@ -16741,14 +16697,14 @@ packages:
resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
/mini-css-extract-plugin@2.7.6(webpack@5.76.1):
/mini-css-extract-plugin@2.7.6(webpack@5.88.2):
resolution: {integrity: sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==}
engines: {node: '>= 12.13.0'}
peerDependencies:
webpack: ^5.0.0
dependencies:
schema-utils: 4.2.0
webpack: 5.76.1
webpack: 5.88.2
dev: false
/minimalistic-assert@1.0.1:
@ -18180,7 +18136,7 @@ packages:
yaml: 2.3.1
dev: true
/postcss-loader@7.3.3(postcss@8.4.26)(webpack@5.76.1):
/postcss-loader@7.3.3(postcss@8.4.26)(webpack@5.88.2):
resolution: {integrity: sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==}
engines: {node: '>= 14.15.0'}
peerDependencies:
@ -18191,7 +18147,7 @@ packages:
jiti: 1.19.3
postcss: 8.4.26
semver: 7.5.4
webpack: 5.76.1
webpack: 5.88.2
dev: false
/postcss-merge-idents@5.1.1(postcss@8.4.26):
@ -18850,12 +18806,8 @@ packages:
once: 1.4.0
dev: false
/punycode@1.3.2:
resolution: {integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==}
/punycode@1.4.1:
resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
dev: false
/punycode@2.3.0:
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
@ -18907,11 +18859,6 @@ packages:
split-on-first: 3.0.0
dev: false
/querystring@0.2.0:
resolution: {integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==}
engines: {node: '>=0.4.x'}
deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
/querystringify@2.2.0:
resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
dev: true
@ -19010,7 +18957,7 @@ packages:
react: 18.2.0
dev: false
/react-dev-utils@12.0.1(typescript@4.9.5)(webpack@5.76.1):
/react-dev-utils@12.0.1(typescript@4.9.5)(webpack@5.88.2):
resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==}
engines: {node: '>=14'}
peerDependencies:
@ -19029,7 +18976,7 @@ packages:
escape-string-regexp: 4.0.0
filesize: 8.0.7
find-up: 5.0.0
fork-ts-checker-webpack-plugin: 6.5.3(typescript@4.9.5)(webpack@5.76.1)
fork-ts-checker-webpack-plugin: 6.5.3(typescript@4.9.5)(webpack@5.88.2)
global-modules: 2.0.0
globby: 11.1.0
gzip-size: 6.0.0
@ -19045,7 +18992,7 @@ packages:
strip-ansi: 6.0.1
text-table: 0.2.0
typescript: 4.9.5
webpack: 5.76.1
webpack: 5.88.2
transitivePeerDependencies:
- eslint
- supports-color
@ -19176,7 +19123,7 @@ packages:
resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==}
dev: false
/react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.76.1):
/react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.88.2):
resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==}
engines: {node: '>=10.13.0'}
peerDependencies:
@ -19185,7 +19132,7 @@ packages:
dependencies:
'@babel/runtime': 7.22.11
react-loadable: /@docusaurus/react-loadable@5.5.2(react@17.0.2)
webpack: 5.76.1
webpack: 5.88.2
dev: false
/react-magic-dropzone@1.0.1:
@ -21156,7 +21103,7 @@ packages:
streamx: 2.15.1
dev: false
/terser-webpack-plugin@5.3.9(webpack@5.76.1):
/terser-webpack-plugin@5.3.9(webpack@5.88.2):
resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==}
engines: {node: '>= 10.13.0'}
peerDependencies:
@ -21177,7 +21124,7 @@ packages:
schema-utils: 3.3.0
serialize-javascript: 6.0.1
terser: 5.19.2
webpack: 5.76.1
webpack: 5.88.2
/terser@5.19.2:
resolution: {integrity: sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==}
@ -21955,7 +21902,7 @@ packages:
resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
dev: true
/url-loader@4.1.1(file-loader@6.2.0)(webpack@5.76.1):
/url-loader@4.1.1(file-loader@6.2.0)(webpack@5.88.2):
resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==}
engines: {node: '>= 10.13.0'}
peerDependencies:
@ -21965,11 +21912,11 @@ packages:
file-loader:
optional: true
dependencies:
file-loader: 6.2.0(webpack@5.76.1)
file-loader: 6.2.0(webpack@5.88.2)
loader-utils: 2.0.4
mime-types: 2.1.35
schema-utils: 3.3.0
webpack: 5.76.1
webpack: 5.88.2
dev: false
/url-parse-lax@3.0.0:
@ -21990,11 +21937,12 @@ packages:
resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==}
dev: false
/url@0.10.3:
resolution: {integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==}
/url@0.11.1:
resolution: {integrity: sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==}
dependencies:
punycode: 1.3.2
querystring: 0.2.0
punycode: 1.4.1
qs: 6.11.2
dev: true
/use-callback-ref@1.3.0(@types/react@18.2.15)(react@18.2.0):
resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==}
@ -22151,10 +22099,6 @@ packages:
hasBin: true
dev: false
/uuid@8.0.0:
resolution: {integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==}
hasBin: true
/uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
@ -22396,7 +22340,7 @@ packages:
- utf-8-validate
dev: false
/webpack-dev-middleware@5.3.3(webpack@5.76.1):
/webpack-dev-middleware@5.3.3(webpack@5.88.2):
resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==}
engines: {node: '>= 12.13.0'}
peerDependencies:
@ -22407,10 +22351,10 @@ packages:
mime-types: 2.1.35
range-parser: 1.2.1
schema-utils: 4.2.0
webpack: 5.76.1
webpack: 5.88.2
dev: false
/webpack-dev-server@4.15.1(webpack@5.76.1):
/webpack-dev-server@4.15.1(webpack@5.88.2):
resolution: {integrity: sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==}
engines: {node: '>= 12.13.0'}
hasBin: true
@ -22451,8 +22395,8 @@ packages:
serve-index: 1.9.1
sockjs: 0.3.24
spdy: 4.0.2
webpack: 5.76.1
webpack-dev-middleware: 5.3.3(webpack@5.76.1)
webpack: 5.88.2
webpack-dev-middleware: 5.3.3(webpack@5.88.2)
ws: 8.13.0
transitivePeerDependencies:
- bufferutil
@ -22472,8 +22416,8 @@ packages:
resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
engines: {node: '>=10.13.0'}
/webpack@5.76.1:
resolution: {integrity: sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ==}
/webpack@5.88.2:
resolution: {integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==}
engines: {node: '>=10.13.0'}
hasBin: true
peerDependencies:
@ -22483,16 +22427,16 @@ packages:
optional: true
dependencies:
'@types/eslint-scope': 3.7.4
'@types/estree': 0.0.51
'@webassemblyjs/ast': 1.11.1
'@webassemblyjs/wasm-edit': 1.11.1
'@webassemblyjs/wasm-parser': 1.11.1
'@types/estree': 1.0.1
'@webassemblyjs/ast': 1.11.6
'@webassemblyjs/wasm-edit': 1.11.6
'@webassemblyjs/wasm-parser': 1.11.6
acorn: 8.10.0
acorn-import-assertions: 1.9.0(acorn@8.10.0)
browserslist: 4.21.10
chrome-trace-event: 1.0.3
enhanced-resolve: 5.15.0
es-module-lexer: 0.9.3
es-module-lexer: 1.3.0
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
@ -22503,7 +22447,7 @@ packages:
neo-async: 2.6.2
schema-utils: 3.3.0
tapable: 2.2.1
terser-webpack-plugin: 5.3.9(webpack@5.76.1)
terser-webpack-plugin: 5.3.9(webpack@5.88.2)
watchpack: 2.4.0
webpack-sources: 3.2.3
transitivePeerDependencies:
@ -22511,7 +22455,7 @@ packages:
- esbuild
- uglify-js
/webpackbar@5.0.2(webpack@5.76.1):
/webpackbar@5.0.2(webpack@5.88.2):
resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==}
engines: {node: '>=12'}
peerDependencies:
@ -22521,7 +22465,7 @@ packages:
consola: 2.15.3
pretty-time: 1.1.0
std-env: 3.4.3
webpack: 5.76.1
webpack: 5.88.2
dev: false
/websocket-driver@0.7.4: