diff --git a/apps/builder/package.json b/apps/builder/package.json index a621bedf7..28ed44127 100644 --- a/apps/builder/package.json +++ b/apps/builder/package.json @@ -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", diff --git a/apps/builder/src/components/ImageUploadContent/UploadButton.tsx b/apps/builder/src/components/ImageUploadContent/UploadButton.tsx index 05bb3d977..d568f6a1a 100644 --- a/apps/builder/src/components/ImageUploadContent/UploadButton.tsx +++ b/apps/builder/src/components/ImageUploadContent/UploadButton.tsx @@ -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 = { diff --git a/apps/builder/src/features/editor/providers/TypebotProvider.tsx b/apps/builder/src/features/editor/providers/TypebotProvider.tsx index 8939e66c6..e4bf1eecc 100644 --- a/apps/builder/src/features/editor/providers/TypebotProvider.tsx +++ b/apps/builder/src/features/editor/providers/TypebotProvider.tsx @@ -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() > diff --git a/apps/builder/src/pages/api/storage/upload-url.ts b/apps/builder/src/pages/api/storage/upload-url.ts index b73fe1a44..8abc21a99 100644 --- a/apps/builder/src/pages/api/storage/upload-url.ts +++ b/apps/builder/src/pages/api/storage/upload-url.ts @@ -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 }) } diff --git a/apps/docs/openapi/chat/_spec_.json b/apps/docs/openapi/chat/_spec_.json index a57712ffd..807b8e071 100644 --- a/apps/docs/openapi/chat/_spec_.json +++ b/apps/docs/openapi/chat/_spec_.json @@ -6232,17 +6232,7 @@ "type": "object", "properties": { "presignedUrl": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "fields": {} - }, - "required": [ - "url" - ], - "additionalProperties": false + "type": "string" }, "hasReachedStorageLimit": { "type": "boolean" diff --git a/apps/docs/package.json b/apps/docs/package.json index cce0c35cf..f57593839 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -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" } } diff --git a/apps/viewer/package.json b/apps/viewer/package.json index 46f17dc06..8bf698b19 100644 --- a/apps/viewer/package.json +++ b/apps/viewer/package.json @@ -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", diff --git a/apps/viewer/src/features/blocks/inputs/fileUpload/api/getUploadUrl.ts b/apps/viewer/src/features/blocks/inputs/fileUpload/api/getUploadUrl.ts index b348a255e..87936ee8e 100644 --- a/apps/viewer/src/features/blocks/inputs/fileUpload/api/getUploadUrl.ts +++ b/apps/viewer/src/features/blocks/inputs/fileUpload/api/getUploadUrl.ts @@ -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 { diff --git a/packages/deprecated/bot-engine/src/features/blocks/inputs/fileUpload/components/FileUploadForm.tsx b/packages/deprecated/bot-engine/src/features/blocks/inputs/fileUpload/components/FileUploadForm.tsx index 6df7055a9..7c2becc26 100644 --- a/packages/deprecated/bot-engine/src/features/blocks/inputs/fileUpload/components/FileUploadForm.tsx +++ b/packages/deprecated/bot-engine/src/features/blocks/inputs/fileUpload/components/FileUploadForm.tsx @@ -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 diff --git a/packages/embeds/js/src/features/blocks/inputs/fileUpload/components/FileUploadForm.tsx b/packages/embeds/js/src/features/blocks/inputs/fileUpload/components/FileUploadForm.tsx index 3492d9610..74f1cd719 100644 --- a/packages/embeds/js/src/features/blocks/inputs/fileUpload/components/FileUploadForm.tsx +++ b/packages/embeds/js/src/features/blocks/inputs/fileUpload/components/FileUploadForm.tsx @@ -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' diff --git a/packages/lib/api/deleteFilesFromBucket.ts b/packages/lib/api/deleteFilesFromBucket.ts index 5d8f0de3d..b6983d5ee 100644 --- a/packages/lib/api/deleteFilesFromBucket.ts +++ b/packages/lib/api/deleteFilesFromBucket.ts @@ -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, diff --git a/packages/lib/api/generatePresignedUrl.ts b/packages/lib/api/generatePresignedUrl.ts index ceac2bb05..2003cf805 100644 --- a/packages/lib/api/generatePresignedUrl.ts +++ b/packages/lib/api/generatePresignedUrl.ts @@ -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 => { 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 } diff --git a/packages/lib/package.json b/packages/lib/package.json index 1fbc3d772..748b67247 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -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" }, diff --git a/packages/lib/uploadFiles.ts b/packages/lib/uploadFiles.ts new file mode 100644 index 000000000..055c68238 --- /dev/null +++ b/packages/lib/uploadFiles.ts @@ -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 => { + 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 +} diff --git a/packages/lib/utils.ts b/packages/lib/utils.ts index 37eef5a63..83c47555f 100644 --- a/packages/lib/utils.ts +++ b/packages/lib/utils.ts @@ -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 => { - 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 => diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 607f0bb9b..7436dda13 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -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: