diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml index 58549bf50..171c692f6 100644 --- a/.github/workflows/check.yaml +++ b/.github/workflows/check.yaml @@ -26,4 +26,4 @@ jobs: - run: pnpm run -r lint - run: pnpm run -r type-check - run: pnpm run test:all - - run: pnpm run -r build-no-sourcemaps + - run: pnpm run -r build diff --git a/.gitignore b/.gitignore index a4ec0f245..f5aa1a5e7 100644 --- a/.gitignore +++ b/.gitignore @@ -44,6 +44,4 @@ Thumbs.db # Firebase firebase-debug.log -ui-debug.log -# Sentry Config File -.sentryclirc +ui-debug.log \ No newline at end of file diff --git a/package.json b/package.json index 1c49e5592..c1795e106 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,6 @@ "@remix-run/node": "^1.19.3", "@remix-run/react": "^1.19.3", "@remix-run/serve": "^1.19.3", - "@sentry/remix": "^7.74.0", "@tanstack/react-table": "^8.10.6", "@tanstack/react-virtual": "3.0.0-beta.61", "clsx": "^1.2.1", diff --git a/packages/app-builder/.env.local b/packages/app-builder/.env.local index ca490bb12..10fb4e333 100644 --- a/packages/app-builder/.env.local +++ b/packages/app-builder/.env.local @@ -5,7 +5,6 @@ SESSION_SECRET=SESSION_SECRET SESSION_MAX_AGE=43200 MARBLE_API_DOMAIN=http://127.0.0.1:8080 -MARBLE_APP_DOMAIN=http://127.0.0.1:3000 FIREBASE_AUTH_EMULATOR=true FIREBASE_AUTH_EMULATOR_HOST=http://localhost:9099 @@ -15,8 +14,4 @@ FIREBASE_AUTH_DOMAIN=tokyo-country-381508.firebaseapp.com FIREBASE_PROJECT_ID=tokyo-country-381508 FIREBASE_STORAGE_BUCKET=tokyo-country-381508.appspot.com FIREBASE_MESSAGING_SENDER_ID=1047691849054 -FIREBASE_APP_ID=1:1047691849054:web:a5b69dd2ac584c1160b3cf - -SENTRY_AUTH_TOKEN=dummy -SENTRY_DSN=dummy -SENTRY_ENVIRONMENT=development +FIREBASE_APP_ID=1:1047691849054:web:a5b69dd2ac584c1160b3cf \ No newline at end of file diff --git a/packages/app-builder/package.json b/packages/app-builder/package.json index 0a15094a8..18f787f99 100644 --- a/packages/app-builder/package.json +++ b/packages/app-builder/package.json @@ -14,8 +14,7 @@ "lint": "eslint .", "type-check": "npx tsc --noEmit", "dev": "dotenv -e .env.local -- remix dev", - "build-no-sourcemaps": "remix build", - "build": "remix build --sourcemap && sentry-upload-sourcemaps --org checkmarble --project marble-frontend", + "build": "remix build", "start": "remix start", "generate-routes": "source scripts/generateRoutes.sh" }, diff --git a/packages/app-builder/src/entry.client.tsx b/packages/app-builder/src/entry.client.tsx index c754ade58..6e70d3728 100644 --- a/packages/app-builder/src/entry.client.tsx +++ b/packages/app-builder/src/entry.client.tsx @@ -1,11 +1,9 @@ -import { RemixBrowser, useLocation, useMatches } from '@remix-run/react'; -import * as Sentry from '@sentry/remix'; -import { startTransition, StrictMode, useEffect } from 'react'; +import { RemixBrowser } from '@remix-run/react'; +import { startTransition, StrictMode } from 'react'; import { hydrateRoot } from 'react-dom/client'; import { I18nextProvider } from 'react-i18next'; import { clientServices } from './services/init.client'; -import { getClientEnv } from './utils/environment.client'; async function hydrate() { const { i18nextClientService } = clientServices; @@ -32,35 +30,3 @@ if (window.requestIdleCallback) { // eslint-disable-next-line @typescript-eslint/no-misused-promises window.setTimeout(hydrate, 1); } - -Sentry.init({ - dsn: getClientEnv('SENTRY_DSN'), - environment: getClientEnv('SENTRY_ENVIRONMENT'), - integrations: [ - new Sentry.BrowserTracing({ - routingInstrumentation: Sentry.remixRouterInstrumentation( - useEffect, - useLocation, - useMatches - ), - }), - // Replay is only available in the client - new Sentry.Replay(), - ], - - // Set tracesSampleRate to 1.0 to capture 100% - // of transactions for performance monitoring. - // We recommend adjusting this value in production - tracesSampleRate: 1.0, - - // Set `tracePropagationTargets` to control for which URLs distributed tracing should be enabled - tracePropagationTargets: [ - getClientEnv('MARBLE_APP_DOMAIN'), - getClientEnv('MARBLE_API_DOMAIN'), - ], - - // Capture Replay for 10% of all sessions, - // plus for 100% of sessions with an error - replaysSessionSampleRate: 0.1, - replaysOnErrorSampleRate: 1.0, -}); diff --git a/packages/app-builder/src/entry.server.tsx b/packages/app-builder/src/entry.server.tsx index 5aca272be..2dec2c5ae 100644 --- a/packages/app-builder/src/entry.server.tsx +++ b/packages/app-builder/src/entry.server.tsx @@ -1,17 +1,11 @@ -import { - type DataFunctionArgs, - type EntryContext, - Response, -} from '@remix-run/node'; +import { type EntryContext, Response } from '@remix-run/node'; import { RemixServer } from '@remix-run/react'; -import * as Sentry from '@sentry/remix'; import isbot from 'isbot'; import { renderToPipeableStream } from 'react-dom/server'; import { I18nextProvider } from 'react-i18next'; import { PassThrough } from 'stream'; import { serverServices } from './services/init.server'; -import { getServerEnv } from './utils/environment.server'; const ABORT_DELAY = 5000; @@ -111,24 +105,3 @@ function handleBrowserRequest( setTimeout(abort, ABORT_DELAY); }); } - -Sentry.init({ - dsn: getServerEnv('SENTRY_DSN'), - environment: getServerEnv('SENTRY_ENVIRONMENT'), - // Set tracesSampleRate to 1.0 to capture 100% - // of transactions for performance monitoring. - // We recommend adjusting this value in production - tracesSampleRate: 1.0, -}); - -export async function handleError( - error: unknown, - { request }: DataFunctionArgs -) { - if (error instanceof Error) { - await Sentry.captureRemixServerException(error, 'remix.server', request); - } else { - // Optionally capture non-Error objects - Sentry.captureException(error); - } -} diff --git a/packages/app-builder/src/root.tsx b/packages/app-builder/src/root.tsx index a1a13fc72..169ef4f46 100644 --- a/packages/app-builder/src/root.tsx +++ b/packages/app-builder/src/root.tsx @@ -14,7 +14,6 @@ import { useLoaderData, useRouteError, } from '@remix-run/react'; -import { captureRemixErrorBoundaryError, withSentry } from '@sentry/remix'; import { Tooltip } from '@ui-design-system'; import { LogoStandard } from '@ui-icons'; import { type Namespace } from 'i18next'; @@ -102,7 +101,6 @@ export const meta: V2_MetaFunction = () => [ export function ErrorBoundary() { const error = useRouteError(); - captureRemixErrorBoundaryError(error); return ( @@ -137,7 +135,7 @@ export function ErrorBoundary() { ); } -function App() { +export default function App() { const { locale, ENV, toastMessage, csrf } = useLoaderData(); const { i18n } = useTranslation(handle.i18n); @@ -171,5 +169,3 @@ function App() { ); } - -export default withSentry(App); diff --git a/packages/app-builder/src/routes/__builder/decisions.tsx b/packages/app-builder/src/routes/__builder/decisions.tsx index c6542a9d0..cf6bf761a 100644 --- a/packages/app-builder/src/routes/__builder/decisions.tsx +++ b/packages/app-builder/src/routes/__builder/decisions.tsx @@ -6,7 +6,6 @@ import { import { DecisionsPage } from '@app-builder/components/Decisions'; import { getRoute } from '@app-builder/utils/routes'; import { Outlet, useRouteError } from '@remix-run/react'; -import { captureRemixErrorBoundaryError } from '@sentry/remix'; import { Decision } from '@ui-icons'; import { type Namespace } from 'i18next'; import { useTranslation } from 'react-i18next'; @@ -53,8 +52,5 @@ export default function DecisionsLayout() { } export function ErrorBoundary() { - const error = useRouteError(); - captureRemixErrorBoundaryError(error); - - return ; + return ; } diff --git a/packages/app-builder/src/routes/__builder/lists/$listId.tsx b/packages/app-builder/src/routes/__builder/lists/$listId.tsx index 248a51764..74eeb56be 100644 --- a/packages/app-builder/src/routes/__builder/lists/$listId.tsx +++ b/packages/app-builder/src/routes/__builder/lists/$listId.tsx @@ -12,7 +12,6 @@ import { serverServices } from '@app-builder/services/init.server'; import { fromParams } from '@app-builder/utils/short-uuid'; import { json, type LoaderArgs } from '@remix-run/node'; import { Link, useLoaderData, useRouteError } from '@remix-run/react'; -import { captureRemixErrorBoundaryError } from '@sentry/remix'; import { type ColumnDef, getCoreRowModel, @@ -152,10 +151,9 @@ export default function Lists() { ); } + export function ErrorBoundary() { - const error = useRouteError(); - captureRemixErrorBoundaryError(error); - return ; + return ; } // Correspond to this part of the UI : https://www.figma.com/file/JW6QvnhBtdZDcKvLdg9s5T/Marble-Portal?node-id=6377%3A53150&mode=dev diff --git a/packages/app-builder/src/routes/__builder/lists/index.tsx b/packages/app-builder/src/routes/__builder/lists/index.tsx index 51d8dafb3..cb5e02adb 100644 --- a/packages/app-builder/src/routes/__builder/lists/index.tsx +++ b/packages/app-builder/src/routes/__builder/lists/index.tsx @@ -6,7 +6,6 @@ import { getRoute } from '@app-builder/utils/routes'; import { fromUUID } from '@app-builder/utils/short-uuid'; import { json, type LoaderArgs } from '@remix-run/node'; import { useLoaderData, useNavigate, useRouteError } from '@remix-run/react'; -import { captureRemixErrorBoundaryError } from '@sentry/remix'; import { type ColumnDef, getCoreRowModel, @@ -115,8 +114,7 @@ export default function ListsPage() { ); } + export function ErrorBoundary() { - const error = useRouteError(); - captureRemixErrorBoundaryError(error); - return ; + return ; } diff --git a/packages/app-builder/src/routes/__builder/scenarios/$scenarioId.tsx b/packages/app-builder/src/routes/__builder/scenarios/$scenarioId.tsx index 437dcad0f..adfc230d3 100644 --- a/packages/app-builder/src/routes/__builder/scenarios/$scenarioId.tsx +++ b/packages/app-builder/src/routes/__builder/scenarios/$scenarioId.tsx @@ -3,7 +3,6 @@ import { serverServices } from '@app-builder/services/init.server'; import { fromParams } from '@app-builder/utils/short-uuid'; import { json, type LoaderArgs, type SerializeFrom } from '@remix-run/node'; import { Outlet, useRouteError, useRouteLoaderData } from '@remix-run/react'; -import { captureRemixErrorBoundaryError } from '@sentry/remix'; import { type Namespace } from 'i18next'; export const handle = { @@ -31,8 +30,7 @@ export const useCurrentScenario = () => export default function CurrentScenarioProvider() { return ; } + export function ErrorBoundary() { - const error = useRouteError(); - captureRemixErrorBoundaryError(error); - return ; + return ; } diff --git a/packages/app-builder/src/routes/sentry.tsx b/packages/app-builder/src/routes/sentry.tsx deleted file mode 100644 index ec370f1b3..000000000 --- a/packages/app-builder/src/routes/sentry.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { useFetcher } from '@remix-run/react'; -import { Button } from '@ui-design-system'; - -export function loader() { - return 'ok'; -} - -export function action() { - throw new Error('This is an error from an action'); -} - -export default function Sentry() { - const fetcher = useFetcher(); - const iStillDoNotExist = () => { - throw new Error('This is an error from a component'); - }; - return ( -
-

Test Sentry

- - - - -
- ); -} diff --git a/packages/app-builder/src/utils/environment.client.ts b/packages/app-builder/src/utils/environment.client.ts index 2d765b09a..d7be5cae0 100644 --- a/packages/app-builder/src/utils/environment.client.ts +++ b/packages/app-builder/src/utils/environment.client.ts @@ -11,9 +11,6 @@ export type ClientEnvVars = { AUTH_EMULATOR_HOST?: string; FIREBASE_OPTIONS: FirebaseOptions; MARBLE_API_DOMAIN: string; - MARBLE_APP_DOMAIN: string; - SENTRY_DSN: string; - SENTRY_ENVIRONMENT: string; }; export function getClientEnv( diff --git a/packages/app-builder/src/utils/environment.server.ts b/packages/app-builder/src/utils/environment.server.ts index 316282473..aa74bff2b 100644 --- a/packages/app-builder/src/utils/environment.server.ts +++ b/packages/app-builder/src/utils/environment.server.ts @@ -34,18 +34,13 @@ type ServerPublicEnvVarName = | 'FIREBASE_PROJECT_ID' | 'FIREBASE_STORAGE_BUCKET' | 'MARBLE_API_DOMAIN' - | 'MARBLE_APP_DOMAIN' | 'NODE_ENV' - | 'SENTRY_ENVIRONMENT' | 'SESSION_MAX_AGE'; /** * List of all secret env vars to defined on each deployed environments */ -type ServerSecretEnvVarName = - | 'SENTRY_AUTH_TOKEN' - | 'SENTRY_DSN' - | 'SESSION_SECRET'; +type ServerSecretEnvVarName = 'SESSION_SECRET'; type ServerEnvVarName = | DevServerEnvVarName @@ -89,8 +84,5 @@ export function getClientEnvVars(): ClientEnvVars { appId: getServerEnv('FIREBASE_APP_ID'), }, MARBLE_API_DOMAIN: getServerEnv('MARBLE_API_DOMAIN'), - MARBLE_APP_DOMAIN: getServerEnv('MARBLE_APP_DOMAIN'), - SENTRY_DSN: getServerEnv('SENTRY_DSN'), - SENTRY_ENVIRONMENT: getServerEnv('SENTRY_ENVIRONMENT'), }; } diff --git a/packages/app-builder/src/utils/routes/routes.ts b/packages/app-builder/src/utils/routes/routes.ts index 1cb19a075..fca5bbfe1 100644 --- a/packages/app-builder/src/utils/routes/routes.ts +++ b/packages/app-builder/src/utils/routes/routes.ts @@ -229,11 +229,6 @@ export const routes = [ } ] }, - { - "id": "routes/sentry", - "path": "sentry", - "file": "routes/sentry.tsx" - }, { "id": "routes/index", "index": true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c3f998aa3..ec9a2f59f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -62,9 +62,6 @@ importers: '@remix-run/serve': specifier: ^1.19.3 version: 1.19.3 - '@sentry/remix': - specifier: ^7.74.0 - version: 7.74.0(@remix-run/node@1.19.3)(@remix-run/react@1.19.3)(react@18.2.0) '@tanstack/react-table': specifier: ^8.10.6 version: 8.10.6(react-dom@18.2.0)(react@18.2.0) @@ -3628,6 +3625,7 @@ packages: strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true /@istanbuljs/load-nyc-config@1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} @@ -3850,6 +3848,7 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} requiresBuild: true + dev: true optional: true /@polka/url@1.0.0-next.23: @@ -5064,131 +5063,6 @@ packages: resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} dev: true - /@sentry-internal/tracing@7.74.0: - resolution: {integrity: sha512-JK6IRGgdtZjswGfaGIHNWIThffhOHzVIIaGmglui+VFIzOsOqePjoxaDV0MEvzafxXZD7eWqGE5RGuZ0n6HFVg==} - engines: {node: '>=8'} - dependencies: - '@sentry/core': 7.74.0 - '@sentry/types': 7.74.0 - '@sentry/utils': 7.74.0 - tslib: 2.6.2 - dev: false - - /@sentry/browser@7.74.0: - resolution: {integrity: sha512-Njr8216Z1dFUcl6NqBOk20dssK9SjoVddY74Xq+Q4p3NfXBG3lkMcACXor7SFoJRZXq8CZWGS13Cc5KwViRw4g==} - engines: {node: '>=8'} - dependencies: - '@sentry-internal/tracing': 7.74.0 - '@sentry/core': 7.74.0 - '@sentry/replay': 7.74.0 - '@sentry/types': 7.74.0 - '@sentry/utils': 7.74.0 - tslib: 2.6.2 - dev: false - - /@sentry/cli@2.20.5: - resolution: {integrity: sha512-ZvWb86eF0QXH9C5Mbi87aUmr8SH848yEpXJmlM2AoBowpE9kKDnewCAKvyXUihojUFwCSEEjoJhrRMMgmCZqXA==} - engines: {node: '>= 10'} - hasBin: true - requiresBuild: true - dependencies: - https-proxy-agent: 5.0.1 - node-fetch: 2.7.0 - progress: 2.0.3 - proxy-from-env: 1.1.0 - which: 2.0.2 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - - /@sentry/core@7.74.0: - resolution: {integrity: sha512-83NRuqn7nDZkSVBN5yJQqcpXDG4yMYiB7TkYUKrGTzBpRy6KUOrkCdybuKk0oraTIGiGSe5WEwCFySiNgR9FzA==} - engines: {node: '>=8'} - dependencies: - '@sentry/types': 7.74.0 - '@sentry/utils': 7.74.0 - tslib: 2.6.2 - dev: false - - /@sentry/node@7.74.0: - resolution: {integrity: sha512-uBmW2/z0cz/WFIG74ZF7lSipO0XNzMf9yrdqnZXnGDYsUZE4I4QiqDN0hNi6fkTgf9MYRC8uFem2OkAvyPJ74Q==} - engines: {node: '>=8'} - dependencies: - '@sentry-internal/tracing': 7.74.0 - '@sentry/core': 7.74.0 - '@sentry/types': 7.74.0 - '@sentry/utils': 7.74.0 - cookie: 0.5.0 - https-proxy-agent: 5.0.1 - lru_map: 0.3.3 - tslib: 2.6.2 - transitivePeerDependencies: - - supports-color - dev: false - - /@sentry/react@7.74.0(react@18.2.0): - resolution: {integrity: sha512-w5VODhLM8Kva2ZscGzgwLgkAi0TY+/Ht9SxdKlGFBJU9r7LllqzuGQ5HUcw9CPsQJnrL8VNdq8ngJPE1YbAUqw==} - engines: {node: '>=8'} - peerDependencies: - react: 15.x || 16.x || 17.x || 18.x - dependencies: - '@sentry/browser': 7.74.0 - '@sentry/types': 7.74.0 - '@sentry/utils': 7.74.0 - hoist-non-react-statics: 3.3.2 - react: 18.2.0 - tslib: 2.6.2 - dev: false - - /@sentry/remix@7.74.0(@remix-run/node@1.19.3)(@remix-run/react@1.19.3)(react@18.2.0): - resolution: {integrity: sha512-cRx1RTdCMK8QbN+LUtkp1zI/bH+wr7J7TfTEiELEKhiAMPXdkGLgZMBmYrwE23brKJzt0Yis/awvnuma23osag==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - '@remix-run/node': 1.x || 2.x - '@remix-run/react': 1.x || 2.x - react: 16.x || 17.x || 18.x - dependencies: - '@remix-run/node': 1.19.3 - '@remix-run/react': 1.19.3(react-dom@18.2.0)(react@18.2.0) - '@sentry/cli': 2.20.5 - '@sentry/core': 7.74.0 - '@sentry/node': 7.74.0 - '@sentry/react': 7.74.0(react@18.2.0) - '@sentry/types': 7.74.0 - '@sentry/utils': 7.74.0 - glob: 10.3.10 - react: 18.2.0 - tslib: 2.6.2 - yargs: 17.7.2 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - - /@sentry/replay@7.74.0: - resolution: {integrity: sha512-GoYa3cHTTFVI/J1cnZ0i4X128mf/JljaswO3PWNTe2k3lSHq/LM5aV0keClRvwM0W8hlix8oOTT06nnenOUmmw==} - engines: {node: '>=12'} - dependencies: - '@sentry/core': 7.74.0 - '@sentry/types': 7.74.0 - '@sentry/utils': 7.74.0 - dev: false - - /@sentry/types@7.74.0: - resolution: {integrity: sha512-rI5eIRbUycWjn6s6o3yAjjWtIvYSxZDdnKv5je2EZINfLKcMPj1dkl6wQd2F4y7gLfD/N6Y0wZYIXC3DUdJQQg==} - engines: {node: '>=8'} - dev: false - - /@sentry/utils@7.74.0: - resolution: {integrity: sha512-k3np8nuTPtx5KDODPtULfFln4UXdE56MZCcF19Jv6Ljxf+YN/Ady1+0Oi3e0XoSvFpWNyWnglauT7M65qCE6kg==} - engines: {node: '>=8'} - dependencies: - '@sentry/types': 7.74.0 - tslib: 2.6.2 - dev: false - /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true @@ -7601,6 +7475,7 @@ packages: /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} + dev: true /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} @@ -7622,6 +7497,7 @@ packages: /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + dev: true /any-base@1.1.0: resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} @@ -9121,6 +8997,7 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true /ecdsa-sig-formatter@1.0.11: resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} @@ -9152,6 +9029,7 @@ packages: /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true /emojis-list@3.0.0: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} @@ -10377,6 +10255,7 @@ packages: dependencies: cross-spawn: 7.0.3 signal-exit: 4.0.2 + dev: true /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} @@ -10675,6 +10554,7 @@ packages: minimatch: 9.0.3 minipass: 7.0.4 path-scurry: 1.10.1 + dev: true /glob@7.1.6: resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} @@ -11650,6 +11530,7 @@ packages: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 + dev: true /jake@10.8.7: resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} @@ -12223,6 +12104,7 @@ packages: /lru-cache@10.0.0: resolution: {integrity: sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==} engines: {node: 14 || >=16.14} + dev: true /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -12240,10 +12122,6 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - /lru_map@0.3.3: - resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} - dev: false - /lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -12873,6 +12751,7 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 + dev: true /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -12910,9 +12789,15 @@ packages: engines: {node: '>=8'} dev: true + /minipass@7.0.2: + resolution: {integrity: sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + /minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} + dev: true /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -13616,7 +13501,8 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: lru-cache: 10.0.0 - minipass: 7.0.4 + minipass: 7.0.2 + dev: true /path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} @@ -13987,6 +13873,7 @@ packages: /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} + dev: true /promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} @@ -15249,6 +15136,7 @@ packages: /signal-exit@4.0.2: resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} engines: {node: '>=14'} + dev: true /simple-concat@1.0.1: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} @@ -15499,6 +15387,7 @@ packages: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 + dev: true /string.prototype.matchall@4.0.10: resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} @@ -15569,6 +15458,7 @@ packages: engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 + dev: true /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} @@ -16995,6 +16885,7 @@ packages: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 + dev: true /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}