diff --git a/.changeset/cyan-shoes-beg.md b/.changeset/cyan-shoes-beg.md new file mode 100644 index 0000000000..b937a98a03 --- /dev/null +++ b/.changeset/cyan-shoes-beg.md @@ -0,0 +1,5 @@ +--- +"@comet/admin": minor +--- + +Hide group title in `CrudMoreActionsMenu` when only one group is present diff --git a/.changeset/smooth-shrimps-exist.md b/.changeset/smooth-shrimps-exist.md new file mode 100644 index 0000000000..4e536a8fae --- /dev/null +++ b/.changeset/smooth-shrimps-exist.md @@ -0,0 +1,5 @@ +--- +"@comet/cli": minor +--- + +Add option for base64 encoding in `inject-site-configs` command diff --git a/demo/admin/package.json b/demo/admin/package.json index 5724e8a1f3..52ef7f1fad 100644 --- a/demo/admin/package.json +++ b/demo/admin/package.json @@ -19,6 +19,7 @@ "lint:prettier": "npx prettier --check './**/*.{js,json,md,yml,yaml}'", "lint:tsc": "tsc --project .", "lint:generated-files-not-modified": "$npm_execpath admin-generator && git diff --exit-code HEAD -- src/**/generated", + "serve": "node server", "start": "run-s intl:compile && run-p gql:types generate-block-types && dotenv -e .env.site-configs -- chokidar --initial -s \"../../packages/admin/*/src/**\" -c \"kill-port $ADMIN_PORT && vite --force\"" }, "dependencies": { diff --git a/demo/admin/server/index.js b/demo/admin/server/index.js new file mode 100644 index 0000000000..5434297dd8 --- /dev/null +++ b/demo/admin/server/index.js @@ -0,0 +1,69 @@ +/* eslint-disable no-undef */ +const express = require("express"); +const compression = require("compression"); +const helmet = require("helmet"); +const fs = require("fs"); + +const app = express(); +const port = process.env.APP_PORT ?? 3000; + +let indexFile = fs.readFileSync("./build/index.html", "utf8"); + +// Replace environment variables +indexFile = indexFile.replace(/\$([A-Z_]+)/g, (match, p1) => { + return process.env[p1] || ""; +}); + +app.use(compression()); +app.use( + helmet({ + contentSecurityPolicy: { + directives: { + "script-src": ["'self'", "'unsafe-inline'"], + "img-src": ["'self'", "https:", "data:"], + "default-src": ["'self'", "https:"], + "media-src": ["'self'", "https:"], + "style-src": ["'self'", "https:", "'unsafe-inline'"], + "font-src": ["'self'", "https:", "data:"], + }, + }, + xXssProtection: false, + strictTransportSecurity: { + maxAge: 63072000, + includeSubDomains: true, + preload: true, + }, + }), +); + +app.get("/status/health", (req, res) => { + res.send("OK!"); +}); + +app.use( + express.static("./build", { + index: false, // Don't send index.html for requests to "/" as it will be handled by the fallback route (with replaced environment variables) + setHeaders: (res, path, stat) => { + if (path.endsWith(".js")) { + // The js file is static and the index.html uses a parameter as cache buster + // implemented as suggested by https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#caching_static_assets + res.setHeader("cache-control", "public, max-age=31536000, immutable"); + } else { + // Icons and Fonts could be changed over time, cache for 7d + res.setHeader("cache-control", "public, max-age=604800, immutable"); + } + }, + }), +); + +// As a fallback, route everything to index.html +app.get("*", (req, res) => { + // Don't cache the index.html at all to make sure applications updates are applied + // implemented as suggested by https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#preventing_storing + res.setHeader("cache-control", "no-store"); + res.send(indexFile); +}); + +app.listen(port, () => { + console.log(`Admin app listening at http://localhost:${port}`); +}); diff --git a/demo/admin/server/package.json b/demo/admin/server/package.json index 2aaa84592b..0b861d0c3b 100644 --- a/demo/admin/server/package.json +++ b/demo/admin/server/package.json @@ -1,13 +1,20 @@ { "name": "comet-demo-admin-server", - "version": "1.0.0", "private": true, "dependencies": { "compression": "^1.7.5", +<<<<<<< HEAD "express": "^4.21.2", "helmet": "^7.2.0" }, "scripts": { "serve": "node server.js" +======= + "express": "^4.21.1", + "helmet": "^7.2.0" + }, + "engines": { + "node": "22" +>>>>>>> main } } diff --git a/demo/admin/src/App.tsx b/demo/admin/src/App.tsx index 9c75c55afa..d6189d5229 100644 --- a/demo/admin/src/App.tsx +++ b/demo/admin/src/App.tsx @@ -70,7 +70,7 @@ export function App() { siteConfig.scope.domain === "secondary" ? `${siteConfig.url}/block-preview` : `${siteConfig.url}/block-preview/${scope.domain}/${scope.language}`, - sitePreviewApiUrl: `${siteConfig.url}/api/site-preview`, + sitePreviewApiUrl: `${siteConfig.url}/site-preview`, }; }, }} diff --git a/demo/admin/src/config.tsx b/demo/admin/src/config.tsx index baa8a2b3bd..bb67051da4 100644 --- a/demo/admin/src/config.tsx +++ b/demo/admin/src/config.tsx @@ -21,7 +21,7 @@ export function createConfig() { ...cometConfig, apiUrl: environmentVariables.API_URL, adminUrl: environmentVariables.ADMIN_URL, - sitesConfig: JSON.parse(environmentVariables.PUBLIC_SITE_CONFIGS) as PublicSiteConfig[], + sitesConfig: JSON.parse(atob(environmentVariables.PUBLIC_SITE_CONFIGS)) as PublicSiteConfig[], buildDate: environmentVariables.BUILD_DATE, buildNumber: environmentVariables.BUILD_NUMBER, commitSha: environmentVariables.COMMIT_SHA, diff --git a/demo/api/src/config/environment-variables.ts b/demo/api/src/config/environment-variables.ts index e4b83e68a8..07fb1f889a 100644 --- a/demo/api/src/config/environment-variables.ts +++ b/demo/api/src/config/environment-variables.ts @@ -145,6 +145,6 @@ export class EnvironmentVariables { SITE_PREVIEW_SECRET: string; @IsArray() - @Transform(({ value }) => JSON.parse(value)) + @Transform(({ value }) => JSON.parse(Buffer.from(value, "base64").toString())) PRIVATE_SITE_CONFIGS: PrivateSiteConfig[]; } diff --git a/demo/site/package.json b/demo/site/package.json index fa9c996c00..c6ed5cc11e 100644 --- a/demo/site/package.json +++ b/demo/site/package.json @@ -28,7 +28,14 @@ "@opentelemetry/exporter-trace-otlp-http": "^0.53.0", "@opentelemetry/instrumentation-runtime-node": "^0.11.0", "@opentelemetry/sdk-node": "^0.53.0", +<<<<<<< HEAD "cache-manager": "^5.7.6", +======= + "cache-manager": "^5.5.3", + "express": "^4.0.0", + "filesize": "^10.1.6", + "fs-extra": "^9.0.0", +>>>>>>> main "graphql": "^15.0.0", "ioredis": "^5.4.2", "lru-cache": "^11.0.1", diff --git a/demo/site/src/app/api/status/route.tsx b/demo/site/src/app/[domain]/api/status/route.tsx similarity index 100% rename from demo/site/src/app/api/status/route.tsx rename to demo/site/src/app/[domain]/api/status/route.tsx diff --git a/demo/site/src/app/api/site-preview/route.ts b/demo/site/src/app/site-preview/route.ts similarity index 100% rename from demo/site/src/app/api/site-preview/route.ts rename to demo/site/src/app/site-preview/route.ts diff --git a/demo/site/src/common/blocks/CallToActionBlock.tsx b/demo/site/src/common/blocks/CallToActionBlock.tsx index c5a3c75d92..729eeb8805 100644 --- a/demo/site/src/common/blocks/CallToActionBlock.tsx +++ b/demo/site/src/common/blocks/CallToActionBlock.tsx @@ -1,6 +1,7 @@ "use client"; import { PropsWithData, withPreview } from "@comet/cms-site"; import { CallToActionBlockData } from "@src/blocks.generated"; +import { filesize } from "filesize"; import { Button, ButtonVariant } from "../components/Button"; import { HiddenIfInvalidLink } from "../helpers/HiddenIfInvalidLink"; @@ -13,12 +14,19 @@ const buttonVariantMap: Record }; export const CallToActionBlock = withPreview( - ({ data: { textLink, variant } }: PropsWithData) => ( - - - - ), + ({ data: { textLink, variant } }: PropsWithData) => { + const linkBlock = textLink.link.block; + let buttonText = textLink.text; + if (linkBlock && linkBlock.type === "damFileDownload" && "file" in linkBlock.props && linkBlock.props.file) { + buttonText = `${buttonText} (${filesize(linkBlock?.props.file?.size)})`; + } + return ( + + + + ); + }, { label: "Call To Action" }, ); diff --git a/demo/site/src/common/blocks/TextLinkBlock.tsx b/demo/site/src/common/blocks/TextLinkBlock.tsx new file mode 100644 index 0000000000..598748f07f --- /dev/null +++ b/demo/site/src/common/blocks/TextLinkBlock.tsx @@ -0,0 +1,25 @@ +"use client"; +import { PropsWithData, withPreview } from "@comet/cms-site"; +import { TextLinkBlockData } from "@src/blocks.generated"; +import { filesize } from "filesize"; +import styled from "styled-components"; + +import { LinkBlock } from "./LinkBlock"; + +export const TextLinkBlock = withPreview( + ({ data: { link, text } }: PropsWithData) => { + if (link.block && link.block.type === "damFileDownload" && "file" in link.block.props && link.block.props.file) { + return {`${text} (${filesize(link.block.props.file.size)})`}; + } + + return {text}; + }, + { label: "Link" }, +); + +const Link = styled(LinkBlock)` + color: ${({ theme }) => theme.palette.text.primary}; + &:hover { + color: ${({ theme }) => theme.palette.primary.main}; + } +`; diff --git a/demo/site/src/middleware.ts b/demo/site/src/middleware.ts index 58b34a15e3..b975b1c2a4 100644 --- a/demo/site/src/middleware.ts +++ b/demo/site/src/middleware.ts @@ -1,10 +1,10 @@ import { withAdminRedirectMiddleware } from "./middleware/adminRedirect"; -import { withBlockPreviewMiddleware } from "./middleware/blockPreview"; import { chain } from "./middleware/chain"; import { withCspHeadersMiddleware } from "./middleware/cspHeaders"; import { withDamRewriteMiddleware } from "./middleware/damRewrite"; import { withDomainRewriteMiddleware } from "./middleware/domainRewrite"; import { withPredefinedPagesMiddleware } from "./middleware/predefinedPages"; +import { withPreviewMiddleware } from "./middleware/preview"; import { withRedirectToMainHostMiddleware } from "./middleware/redirectToMainHost"; import { withSitePreviewMiddleware } from "./middleware/sitePreview"; @@ -14,7 +14,7 @@ export default chain([ withAdminRedirectMiddleware, withDamRewriteMiddleware, withCspHeadersMiddleware, // order matters: after redirects (that don't need csp headers), before everything else that needs csp headers - withBlockPreviewMiddleware, + withPreviewMiddleware, withPredefinedPagesMiddleware, withDomainRewriteMiddleware, // must be last (rewrites all urls) ]); @@ -23,14 +23,13 @@ export const config = { matcher: [ /* * Match all request paths except for the ones starting with: - * - api (API routes) * - _next/static (static files) * - _next/image (image optimization files) * - favicon.ico, favicon.svg, favicon.png * - manifest.json * - robots.txt */ - "/((?!api|_next/static|_next/image|favicon.ico|favicon.svg|favicon.png|manifest.json|robots.txt).*)", + "/((?!_next/static|_next/image|favicon.ico|favicon.svg|favicon.png|manifest.json|robots.txt).*)", ], // TODO find a better solution for this (https://nextjs.org/docs/messages/edge-dynamic-code-evaluation) unstable_allowDynamic: [ diff --git a/demo/site/src/middleware/blockPreview.ts b/demo/site/src/middleware/preview.ts similarity index 74% rename from demo/site/src/middleware/blockPreview.ts rename to demo/site/src/middleware/preview.ts index 4316843042..7d27b52fe3 100644 --- a/demo/site/src/middleware/blockPreview.ts +++ b/demo/site/src/middleware/preview.ts @@ -2,9 +2,9 @@ import { NextRequest, NextResponse } from "next/server"; import { CustomMiddleware } from "./chain"; -export function withBlockPreviewMiddleware(middleware: CustomMiddleware) { +export function withPreviewMiddleware(middleware: CustomMiddleware) { return async (request: NextRequest) => { - if (request.nextUrl.pathname.startsWith("/block-preview/")) { + if (request.nextUrl.pathname.startsWith("/block-preview/") || request.nextUrl.pathname === "/site-preview") { // don't apply any other middlewares return NextResponse.next(); } diff --git a/demo/site/src/util/siteConfig.ts b/demo/site/src/util/siteConfig.ts index d668ab1807..a96282400e 100644 --- a/demo/site/src/util/siteConfig.ts +++ b/demo/site/src/util/siteConfig.ts @@ -28,7 +28,7 @@ export function getSiteConfigs() { if (!siteConfigs) { const json = process.env.PUBLIC_SITE_CONFIGS; if (!json) throw new Error("process.env.PUBLIC_SITE_CONFIGS must be set."); - siteConfigs = JSON.parse(json) as PublicSiteConfig[]; + siteConfigs = JSON.parse(atob(json)) as PublicSiteConfig[]; } return siteConfigs; } diff --git a/docs/docs/3-features-modules/5-console-commands/index.md b/docs/docs/3-features-modules/5-console-commands/index.md index 8e98e4ea37..a112447ddc 100644 --- a/docs/docs/3-features-modules/5-console-commands/index.md +++ b/docs/docs/3-features-modules/5-console-commands/index.md @@ -61,6 +61,7 @@ npm run console:prod demo-command ## Best practices +- Use kebab case for command names and arguments. - Dangerous commands (e.g. resetting the database) should check the `NODE_ENV` and only run locally. ```ts diff --git a/package.json b/package.json index 2e2c367930..02c4297c9f 100644 --- a/package.json +++ b/package.json @@ -7,11 +7,19 @@ }, "license": "BSD-2-Clause", "scripts": { +<<<<<<< HEAD "create-site-configs-env": "npx @comet/cli inject-site-configs -f demo/site-configs/site-configs.ts -i demo/.env.site-configs.tpl -o demo/.env.site-configs -d", "build:storybook": "pnpm --recursive --filter '@comet/*admin*' --filter '@comet/eslint-plugin' --filter '@comet/cli' run build && pnpm --filter comet-storybook run build-storybook", "build:packages": "pnpm --recursive --filter '@comet/*' run build", "build:docs": "pnpm --recursive --filter '@comet/eslint-plugin' --filter '@comet/admin*' --filter 'comet-docs' run build", "clean": "pnpm --recursive run clean", +======= + "create-site-configs-env": "npx @comet/cli inject-site-configs -f demo/site-configs/site-configs.ts -i demo/.env.site-configs.tpl -o demo/.env.site-configs --base64", + "build:storybook": "pnpm recursive --filter '@comet/*admin*' --filter '@comet/eslint-plugin' --filter '@comet/cli' run build && pnpm --filter comet-storybook run build-storybook", + "build:packages": "pnpm recursive --filter '@comet/*' run build", + "build:docs": "pnpm recursive --filter '@comet/eslint-plugin' --filter '@comet/admin*' --filter 'comet-docs' run build", + "clean": "pnpm recursive run clean", +>>>>>>> main "copy-schema-files": "node copy-schema-files.js", "dev:admin": "dev-pm start @comet-admin", "dev:cms": "dev-pm start @cms", diff --git a/packages/admin/admin/src/dataGrid/CrudMoreActionsMenu.tsx b/packages/admin/admin/src/dataGrid/CrudMoreActionsMenu.tsx index 576211b951..661f868f05 100644 --- a/packages/admin/admin/src/dataGrid/CrudMoreActionsMenu.tsx +++ b/packages/admin/admin/src/dataGrid/CrudMoreActionsMenu.tsx @@ -45,7 +45,7 @@ export interface CrudMoreActionsMenuProps } interface CrudMoreActionsGroupProps { - groupTitle: ReactNode; + groupTitle?: ReactNode; menuListProps?: MenuListProps; typographyProps?: ComponentProps; } @@ -54,9 +54,17 @@ function CrudMoreActionsGroup({ groupTitle, children, menuListProps, typographyP const { palette } = useTheme(); return ( <> +<<<<<<< HEAD {groupTitle} +======= + {groupTitle && ( + theme.palette.grey[500]} sx={{ padding: "20px 15px 0 15px" }} {...typographyProps}> + {groupTitle} + + )} +>>>>>>> main {children} ); @@ -118,11 +126,13 @@ export function CrudMoreActionsMenu({ slotProps, overallActions, selectiveAction const handleClick = (event: MouseEvent) => setAnchorEl(event.currentTarget); const handleClose = () => setAnchorEl(null); + const hasOverallActions = !!overallActions?.length; + const hasSelectiveActions = !!selectiveActions?.length; return ( <> } {...buttonProps} onClick={handleClick}> - + {!!selectionSize && } - {!!overallActions?.length && ( + {hasOverallActions && ( } + groupTitle={ + hasSelectiveActions ? ( + + ) : undefined + } {...groupProps} > {overallActions.map((item, index) => { @@ -167,11 +181,15 @@ export function CrudMoreActionsMenu({ slotProps, overallActions, selectiveAction )} - {!!overallActions?.length && !!selectiveActions?.length && } + {hasOverallActions && hasSelectiveActions && } - {!!selectiveActions?.length && ( + {hasSelectiveActions && ( } + groupTitle={ + hasOverallActions ? ( + + ) : undefined + } {...groupProps} > {selectiveActions.map((item, index) => { diff --git a/packages/cli/src/commands/site-configs.ts b/packages/cli/src/commands/site-configs.ts index 77f9cf2295..0a903d27e2 100644 --- a/packages/cli/src/commands/site-configs.ts +++ b/packages/cli/src/commands/site-configs.ts @@ -11,6 +11,7 @@ export const injectSiteConfigsCommand = new Command("inject-site-configs") .requiredOption("-i, --in-file ", "The filename of a template file to inject.") .requiredOption("-o, --out-file ", "Write the injected template to a file.") .option("-d --dotenv", "dotenv compatibility") // https://github.com/motdotla/dotenv/issues/521#issuecomment-999016064 + .option("--base64", "use base64 encoding") .option("-f, --site-config-file ", "Path to ts-file which provides a default export with (env: string) => SiteConfig[]") .action(async (options) => { const configFile = `${process.cwd()}/${options.siteConfigFile || "site-configs.ts"}`; @@ -51,7 +52,11 @@ export const injectSiteConfigsCommand = new Command("inject-site-configs") console.error(`inject-site-configs: ERROR: type must be ${Object.keys(replacerFunctions).join("|")} (got ${type})`); return substr; } - const ret = JSON.stringify(replacerFunctions[type](siteConfigs, env)).replace(/\\/g, "\\\\"); + const str = replacerFunctions[type](siteConfigs, env); + if (options.base64) { + return Buffer.from(JSON.stringify(str)).toString("base64"); + } + const ret = JSON.stringify(str).replace(/\\/g, "\\\\"); if (options.dotenv) return ret.replace(/\$/g, "\\$"); return ret; }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8fd4290009..aab57f3534 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -253,7 +253,11 @@ importers: specifier: ^1.7.5 version: 1.7.5 express: +<<<<<<< HEAD specifier: ^4.21.2 +======= + specifier: ^4.21.1 +>>>>>>> main version: 4.21.2 helmet: specifier: ^7.2.0 @@ -448,6 +452,18 @@ importers: cache-manager: specifier: ^5.7.6 version: 5.7.6 +<<<<<<< HEAD +======= + express: + specifier: ^4.0.0 + version: 4.18.2 + filesize: + specifier: ^10.1.6 + version: 10.1.6 + fs-extra: + specifier: ^9.0.0 + version: 9.1.0 +>>>>>>> main graphql: specifier: ^15.0.0 version: 15.8.0 @@ -23477,7 +23493,24 @@ snapshots: array-flatten@2.1.2: {} +<<<<<<< HEAD array-includes@3.1.8: +======= + /array-includes@3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.1.4 + es-abstract: 1.21.1 + get-intrinsic: 1.2.4 + is-string: 1.0.7 + dev: false + + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -23511,6 +23544,19 @@ snapshots: array.prototype.flat@1.3.2: dependencies: call-bind: 1.0.7 +<<<<<<< HEAD +======= + define-properties: 1.1.4 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 + dev: false + + /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.7 +>>>>>>> main define-properties: 1.2.1 es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 @@ -23518,11 +23564,40 @@ snapshots: array.prototype.flatmap@1.3.2: dependencies: call-bind: 1.0.7 +<<<<<<< HEAD +======= + define-properties: 1.1.4 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 + dev: false + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 +>>>>>>> main define-properties: 1.2.1 es-abstract: 1.23.3 es-shim-unscopables: 1.0.2 +<<<<<<< HEAD array.prototype.tosorted@1.1.4: +======= + /array.prototype.tosorted@1.1.1: + resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.1.4 + es-abstract: 1.21.1 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.4 + dev: false + + /array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -23868,7 +23943,32 @@ snapshots: transitivePeerDependencies: - supports-color +<<<<<<< HEAD bonjour-service@1.1.0: +======= + /body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.13.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /bonjour-service@1.1.0: + resolution: {integrity: sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==} +>>>>>>> main dependencies: array-flatten: 2.1.2 dns-equal: 1.0.0 @@ -24003,7 +24103,19 @@ snapshots: normalize-url: 6.1.0 responselike: 2.0.1 +<<<<<<< HEAD call-bind@1.0.7: +======= + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: es-define-property: 1.0.0 es-errors: 1.3.0 @@ -24417,7 +24529,28 @@ snapshots: transitivePeerDependencies: - supports-color +<<<<<<< HEAD compute-scroll-into-view@3.1.0: {} +======= + /compression@1.7.5: + resolution: {integrity: sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==} + engines: {node: '>= 0.8.0'} + dependencies: + bytes: 3.1.2 + compressible: 2.0.18 + debug: 2.6.9 + negotiator: 0.6.4 + on-headers: 1.0.2 + safe-buffer: 5.2.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} + dev: false +>>>>>>> main concat-map@0.0.1: {} @@ -24466,7 +24599,17 @@ snapshots: content-type@1.0.5: {} +<<<<<<< HEAD convert-source-map@1.9.0: {} +======= + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: false + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} +>>>>>>> main convert-source-map@2.0.0: {} @@ -24483,7 +24626,19 @@ snapshots: cookie@0.7.2: {} +<<<<<<< HEAD copy-text-to-clipboard@3.2.0: {} +======= + /cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} + dev: false + + /copy-text-to-clipboard@3.2.0: + resolution: {integrity: sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==} + engines: {node: '>=12'} + dev: false +>>>>>>> main copy-webpack-plugin@11.0.0(webpack@5.96.1): dependencies: @@ -25169,8 +25324,13 @@ snapshots: isarray: 2.0.5 object-is: 1.1.5 object-keys: 1.1.1 +<<<<<<< HEAD object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 +======= + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 +>>>>>>> main side-channel: 1.0.6 which-boxed-primitive: 1.0.2 which-collection: 1.0.2 @@ -25202,7 +25362,20 @@ snapshots: define-lazy-prop@2.0.0: {} +<<<<<<< HEAD define-properties@1.2.1: +======= + /define-properties@1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 @@ -25528,7 +25701,29 @@ snapshots: encodeurl@2.0.0: {} +<<<<<<< HEAD end-of-stream@1.4.4: +======= + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + + /emoticon@3.2.0: + resolution: {integrity: sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==} + dev: false + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + /encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + dev: false + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} +>>>>>>> main dependencies: once: 1.4.0 @@ -25561,7 +25756,57 @@ snapshots: dependencies: is-arrayish: 0.2.1 +<<<<<<< HEAD es-abstract@1.23.3: +======= + /error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + dependencies: + stackframe: 1.3.4 + dev: false + + /es-abstract@1.21.1: + resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.7 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function-bind: 1.1.2 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.4 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.4 + is-array-buffer: 3.0.1 + 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.10 + is-weakref: 1.0.2 + object-inspect: 1.13.2 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.9 + + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 @@ -25651,7 +25896,21 @@ snapshots: dependencies: es-errors: 1.3.0 +<<<<<<< HEAD es-set-tostringtag@2.0.3: +======= + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + has: 1.0.3 + has-tostringtag: 1.0.0 + + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 @@ -26162,7 +26421,52 @@ snapshots: transitivePeerDependencies: - supports-color +<<<<<<< HEAD extend-shallow@2.0.1: +======= + /express@4.21.2: + resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.3 + content-disposition: 0.5.4 + content-type: 1.0.4 + cookie: 0.7.1 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.1 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.12 + proxy-addr: 2.0.7 + qs: 6.13.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.0 + serve-static: 1.16.2 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} +>>>>>>> main dependencies: is-extendable: 0.1.1 @@ -26314,7 +26618,19 @@ snapshots: dependencies: minimatch: 5.1.6 +<<<<<<< HEAD filesize@8.0.7: {} +======= + /filesize@10.1.6: + resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==} + engines: {node: '>= 10.4.0'} + dev: false + + /filesize@8.0.7: + resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} + engines: {node: '>= 0.4.0'} + dev: false +>>>>>>> main fill-range@7.1.1: dependencies: @@ -26350,7 +26666,28 @@ snapshots: transitivePeerDependencies: - supports-color +<<<<<<< HEAD find-cache-dir@3.3.2: +======= + /finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} +>>>>>>> main dependencies: commondir: 1.0.1 make-dir: 3.1.0 @@ -26568,7 +26905,22 @@ snapshots: function-bind@1.1.2: {} +<<<<<<< HEAD function.prototype.name@1.1.6: +======= + /function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.1.4 + es-abstract: 1.21.1 + functions-have-names: 1.2.3 + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -26610,7 +26962,13 @@ snapshots: get-svg-colors: 2.0.0 pify: 5.0.0 +<<<<<<< HEAD get-intrinsic@1.2.4: +======= + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: es-errors: 1.3.0 function-bind: 1.1.2 @@ -26660,7 +27018,20 @@ snapshots: lodash.compact: 3.0.1 lodash.uniq: 4.5.0 +<<<<<<< HEAD get-symbol-description@1.0.2: +======= + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + + /get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 es-errors: 1.3.0 @@ -26992,6 +27363,7 @@ snapshots: has-own-prop@2.0.0: {} +<<<<<<< HEAD has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.0 @@ -26999,6 +27371,16 @@ snapshots: has-proto@1.0.3: {} has-symbols@1.0.3: {} +======= + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} +>>>>>>> main has-tostringtag@1.0.2: dependencies: @@ -27080,9 +27462,19 @@ snapshots: helmet@4.6.0: {} +<<<<<<< HEAD helmet@7.2.0: {} history@4.10.1: +======= + /helmet@7.2.0: + resolution: {integrity: sha512-ZRiwvN089JfMXokizgqEPXsl2Guk094yExfoDXR0cBYWxtBbaSww/w+vT4WEJsBW2iTUi1GgZ6swmoug3Oy4Xw==} + engines: {node: '>=16.0.0'} + dev: false + + /history@4.10.1: + resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} +>>>>>>> main dependencies: '@babel/runtime': 7.25.7 loose-envify: 1.4.0 @@ -27373,11 +27765,29 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 6.2.0 +<<<<<<< HEAD internal-slot@1.0.7: +======= + /internal-slot@1.0.4: + resolution: {integrity: sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + has: 1.0.3 + side-channel: 1.0.6 + + /internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.0.6 +<<<<<<< HEAD +======= + dev: false +>>>>>>> main internmap@2.0.3: {} @@ -27440,7 +27850,20 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 +<<<<<<< HEAD is-array-buffer@3.0.4: +======= + /is-array-buffer@3.0.1: + resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + is-typed-array: 1.1.13 + + /is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 @@ -27548,7 +27971,12 @@ snapshots: is-nan@1.3.2: dependencies: call-bind: 1.0.7 +<<<<<<< HEAD define-properties: 1.2.1 +======= + define-properties: 1.1.4 + dev: false +>>>>>>> main is-negative-zero@2.0.3: {} @@ -27603,7 +28031,23 @@ snapshots: is-set@2.0.3: {} +<<<<<<< HEAD is-shared-array-buffer@1.0.3: +======= + /is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + dev: false + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.7 + + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 @@ -27625,7 +28069,23 @@ snapshots: dependencies: has-symbols: 1.0.3 +<<<<<<< HEAD is-typed-array@1.1.13: +======= + /is-typed-array@1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + + /is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: which-typed-array: 1.1.15 @@ -27643,9 +28103,27 @@ snapshots: is-weakmap@2.0.2: {} +<<<<<<< HEAD is-weakref@1.0.2: dependencies: call-bind: 1.0.7 +======= + /is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + dev: false + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.7 + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 +>>>>>>> main is-weakset@2.0.3: dependencies: @@ -28940,7 +29418,16 @@ snapshots: merge-descriptors@1.0.3: {} +<<<<<<< HEAD merge-stream@2.0.0: {} +======= + /merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + dev: false + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} +>>>>>>> main merge2@1.4.1: {} @@ -29445,7 +29932,17 @@ snapshots: negotiator@0.6.3: {} +<<<<<<< HEAD negotiator@0.6.4: {} +======= + /negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + dev: false + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} +>>>>>>> main neo-async@2.6.2: {} @@ -29621,7 +30118,27 @@ snapshots: object-inspect@1.13.3: {} +<<<<<<< HEAD object-is@1.1.5: +======= + /object-identity-map@1.0.2: + resolution: {integrity: sha512-a2XZDGyYTngvGS67kWnqVdpoaJWsY7C1GhPJvejWAFCsUioTAaiTu8oBad7c6cI4McZxr4CmvnZeycK05iav5A==} + dependencies: + object.entries: 1.1.6 + dev: false + + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true + + /object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -29630,20 +30147,65 @@ snapshots: object-path@0.11.8: {} +<<<<<<< HEAD object.assign@4.1.5: +======= + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.1.4 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 +<<<<<<< HEAD object.entries@1.1.8: +======= + /object.entries@1.1.6: + resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: false + + /object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 +<<<<<<< HEAD object.fromentries@2.0.8: +======= + /object.fromentries@2.0.6: + resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: false + + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -29656,7 +30218,29 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.3 +<<<<<<< HEAD object.values@1.2.0: +======= + /object.hasown@1.1.2: + resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} + dependencies: + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: false + + /object.values@1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.1.4 + es-abstract: 1.21.1 + dev: false + + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -29962,10 +30546,19 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 +<<<<<<< HEAD path-scurry@2.0.0: dependencies: lru-cache: 11.0.2 minipass: 7.1.2 +======= + /path-to-regexp@0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + dev: false + + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} +>>>>>>> main path-to-regexp@0.1.12: {} @@ -30476,7 +31069,20 @@ snapshots: dependencies: side-channel: 1.0.6 +<<<<<<< HEAD qs@6.5.3: {} +======= + /qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.6 + dev: false + + /qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} +>>>>>>> main quantize@1.0.2: {} @@ -30522,7 +31128,25 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 +<<<<<<< HEAD raw-loader@4.0.2(webpack@5.96.1): +======= + /raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: false + + /raw-loader@4.0.2(webpack@5.88.2): + resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 +>>>>>>> main dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 @@ -31048,7 +31672,21 @@ snapshots: dependencies: '@babel/runtime': 7.26.0 +<<<<<<< HEAD regexp.prototype.flags@1.5.2: +======= + /regexp.prototype.flags@1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.1.4 + functions-have-names: 1.2.3 + + /regexp.prototype.flags@1.5.2: + resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -31384,7 +32022,20 @@ snapshots: safe-buffer@5.2.1: {} +<<<<<<< HEAD safe-regex-test@1.0.3: +======= + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + is-regex: 1.1.4 + + /safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 es-errors: 1.3.0 @@ -31483,7 +32134,33 @@ snapshots: transitivePeerDependencies: - supports-color +<<<<<<< HEAD sentence-case@3.0.4: +======= + /send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + dev: false + + /sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} +>>>>>>> main dependencies: no-case: 3.0.4 tslib: 2.8.1 @@ -31525,7 +32202,25 @@ snapshots: transitivePeerDependencies: - supports-color +<<<<<<< HEAD server-only@0.0.1: {} +======= + /serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.0 + transitivePeerDependencies: + - supports-color + dev: false + + /server-only@0.0.1: + resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} + dev: false +>>>>>>> main set-blocking@2.0.0: {} @@ -31590,12 +32285,29 @@ snapshots: shimmer@1.2.1: {} +<<<<<<< HEAD side-channel@1.0.6: +======= + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.7 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 es-errors: 1.3.0 get-intrinsic: 1.2.4 +<<<<<<< HEAD object-inspect: 1.13.3 +======= + object-inspect: 1.13.2 +>>>>>>> main signal-exit@3.0.7: {} @@ -31886,8 +32598,19 @@ snapshots: string.prototype.padend@3.1.4: dependencies: call-bind: 1.0.7 +<<<<<<< HEAD define-properties: 1.2.1 es-abstract: 1.23.3 +======= + define-properties: 1.1.4 + es-abstract: 1.21.1 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + internal-slot: 1.0.4 + regexp.prototype.flags: 1.4.3 + side-channel: 1.0.6 + dev: false +>>>>>>> main string.prototype.repeat@1.0.0: dependencies: @@ -31901,13 +32624,38 @@ snapshots: es-abstract: 1.23.3 es-object-atoms: 1.0.0 +<<<<<<< HEAD string.prototype.trimend@1.0.8: +======= + /string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.1.4 + es-abstract: 1.21.1 + + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} +>>>>>>> main dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-object-atoms: 1.0.0 +<<<<<<< HEAD string.prototype.trimstart@1.0.8: +======= + /string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.7 + define-properties: 1.1.4 + es-abstract: 1.21.1 + + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 define-properties: 1.2.1 @@ -32479,7 +33227,20 @@ snapshots: has-proto: 1.0.3 is-typed-array: 1.1.13 +<<<<<<< HEAD typed-array-length@1.0.6: +======= + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.7 + 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==} + engines: {node: '>= 0.4'} +>>>>>>> main dependencies: call-bind: 1.0.7 for-each: 0.3.3 @@ -33269,7 +34030,24 @@ snapshots: gopd: 1.0.1 has-tostringtag: 1.0.2 +<<<<<<< HEAD which@1.3.1: +======= + /which-typed-array@1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.13 + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true +>>>>>>> main dependencies: isexe: 2.0.0