diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index f5ef1f3..040245c 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,10 +1,9 @@ --- name: Bug report about: Create a report to help us improve -title: '' +title: "" labels: bug -assignees: '' - +assignees: "" --- **Describe the bug** @@ -37,4 +36,4 @@ If applicable, add screenshots to help explain your problem. - Version [e.g. 22] **Additional context** -Add any other context about the problem here. \ No newline at end of file +Add any other context about the problem here. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 3d9d4e5..fd82b38 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,14 +1,17 @@ - ### Description + Please provide a clear and concise description of the changes made, including the purpose and context. **Fixes**: # (issue number) @@ -18,7 +21,9 @@ or --- ### Changes Made + - [ ] Changes in **`apps`** folder (specify the app and briefly describe the changes): + - [ ] `Web` - [ ] `Native` @@ -28,6 +33,7 @@ or --- ### Type of Change + - [ ] 🐛 **Bug fix** (non-breaking change which fixes an issue) - [ ] ✨ **New feature** (non-breaking change which adds functionality) - [x] 💥 **Breaking change** (fix or feature that would cause existing functionality to not work as expected) @@ -36,12 +42,15 @@ or --- ## Screenshots + | Before | After | | :-----------------: | :----------------: | | "screenshot before" | "screenshot after" | + --- ### How Has This Been Tested? + - [ ] Cypress integration - [ ] Cypress component tests - [ ] Jest unit tests @@ -49,6 +58,7 @@ or --- ### Checklist: + - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation @@ -60,4 +70,5 @@ or --- ### Additional Comments -*(Optional) Add any additional comments or notes for reviewers here.* + +_(Optional) Add any additional comments or notes for reviewers here._ diff --git a/.github/workflows/api-pr.yml b/.github/workflows/api-pr.yml index c934c18..c01cd77 100644 --- a/.github/workflows/api-pr.yml +++ b/.github/workflows/api-pr.yml @@ -5,7 +5,7 @@ on: branches: - "*" paths: - - 'apps/user/**' # Only trigger for changes in the apps/user directory + - "apps/user/**" # Only trigger for changes in the apps/user directory jobs: test: @@ -16,7 +16,7 @@ jobs: - name: Use Node.js 18.x uses: actions/setup-node@v3 with: - node-version: '18.x' + node-version: "18.x" - name: Install dependencies for specific package run: yarn workspace greenstand-wallet-app-api install diff --git a/.github/workflows/build-dev-docker-img-and-relase.yml b/.github/workflows/build-dev-docker-img-and-relase.yml index 1cfcf38..afdad87 100644 --- a/.github/workflows/build-dev-docker-img-and-relase.yml +++ b/.github/workflows/build-dev-docker-img-and-relase.yml @@ -1,12 +1,11 @@ name: Service CI/CD Pipeline to Release and Deploy to Dev Env - on: push: branches: - main paths: - - 'apps/user/**' # Only trigger for changes in the apps/user directory + - "apps/user/**" # Only trigger for changes in the apps/user directory jobs: release: @@ -20,7 +19,7 @@ jobs: - name: Use Node.js 20.x uses: actions/setup-node@v3 with: - node-version: '20.x' + node-version: "20.x" - name: Yarn Clean Install run: yarn workspace greenstand-wallet-app-api install @@ -54,12 +53,11 @@ jobs: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and Push Docker Image id: docker_build_release uses: docker/build-push-action@v5 with: - context: ./apps/user/ + context: ./apps/user/ file: ./apps/user/Dockerfile push: true tags: greenstand/treetracker-wallet-monorepo-user-api:${{ steps.package-version.outputs.current-version }} diff --git a/.husky/pre-commit b/.husky/pre-commit index 580f4ff..1a1f1f0 100644 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1 +1 @@ -yarn pre-commit \ No newline at end of file +yarn lint-staged \ No newline at end of file diff --git a/README.md b/README.md index d655e2e..63fd0f3 100644 --- a/README.md +++ b/README.md @@ -1,201 +1,64 @@ # Treetracker Wallet App: Secure and Easy Token Management - - - - - - - - - - **Greenstand** provides a secure and user-friendly platform for managing your digital tokens. Sending and receiving tokens takes just a few taps, making it a breeze to transfer them between users. - - - - - - ## **Project Structure:** - - - - - - Treetracker leverages a monorepo structure, meaning it houses multiple projects in a single repository. This allows for efficient code sharing across different platforms. Here's a breakdown: - - - - - - -* **`apps/native`:** This directory contains the React Native code for the mobile app. - - - - - -* **`apps/web`:** This directory holds the Next.js code for the web app. +- **`apps/native`:** This directory contains the React Native code for the mobile app. - +- **`apps/web`:** This directory holds the Next.js code for the web app. - - -* **`packages/core`:** This shared folder contains the core model layer, accessible by both the mobile and web apps. - - - - - - +- **`packages/core`:** This shared folder contains the core model layer, accessible by both the mobile and web apps. ## **Getting Started:** - - - - - - Excited to dive in? Here's how to get up and running: - - - - - - 1. **Clone the repository:** Use `git clone https://github.com/Greenstand/treetracker-wallet-app` to grab the code. - - - - 2. **Install dependencies:** Run `yarn` in the main project directory to install all the necessary tools. - - - - 3. **Start Development Server (Choose your platform):** - - - - - - -* **Web App:** Navigate to the `web` directory and run `yarn dev`. This launches the Next.js development server, accessible at http://localhost:3000 in your web browser. +- **Web App:** Navigate to the `web` directory and run `yarn dev`. This launches the Next.js development server, accessible at http://localhost:3000 in your web browser. - +- **Mobile App:** Head to the `native` directory and run `yarn start`. This starts the Expo development server for your mobile app. - - -* **Mobile App:** Head to the `native` directory and run `yarn start`. This starts the Expo development server for your mobile app. - - - - ## **Changelog** We use [Conventional Changelog](https://github.com/conventional-changelog/conventional-changelog) to generate our changelog. This means that all changes should be committed using the Conventional Commits format. Here are some examples of commit messages and how they would appear in the changelog: -- **feat:** A new feature - Commit message: `feat: add support for token transfers` - - - - -- **fix:** A bug fix - Commit message: `fix: prevent token balance from being negative` +- **feat:** A new feature + Commit message: `feat: add support for token transfers` - +- **fix:** A bug fix + Commit message: `fix: prevent token balance from being negative` -- **docs:** An update to documentation - Commit message: `docs: add instructions for contributing` - - - - - +- **docs:** An update to documentation + Commit message: `docs: add instructions for contributing` ## **Contributing:** - - - - - - We value your input! Here's how to contribute: - - - - - - -* **Found a bug or have an idea?** Open an issue on our GitHub repository. - - - - - -* **Want to add code?** Fork the repository, make your changes, and submit a pull request. - - +- **Found a bug or have an idea?** Open an issue on our GitHub repository. - +- **Want to add code?** Fork the repository, make your changes, and submit a pull request. -* **Testing and Documentation Matter:** Ensure your code is well-tested and adheres to our coding standards before submitting. - - - - - - +- **Testing and Documentation Matter:** Ensure your code is well-tested and adheres to our coding standards before submitting. **Thank You!** - - - - - - We appreciate your interest in contributing to Treetracker. Your time and effort are invaluable in making this project even better! - - - - - - **For further details, explore the individual project READMEs:** - - - - - - -* Web App: [Web README](apps/web/README.md) - - - - - -* Mobile App: [Native README](apps/native/README.md) - - +- Web App: [Web README](apps/web/README.md) - +- Mobile App: [Native README](apps/native/README.md) -* Core Model Layer: [Packages README](packages/core/README.md) \ No newline at end of file +- Core Model Layer: [Packages README](packages/core/README.md) diff --git a/apps/native/README.md b/apps/native/README.md index ea50fc9..1e3c52a 100644 --- a/apps/native/README.md +++ b/apps/native/README.md @@ -1,33 +1,34 @@ # Treetracker Wallet Mobile App + ========================== The Treetracker Wallet Mobile App is a user-friendly interface for managing digital tokens. ### Overview ------------- + +--- This app is built using Expo and React Native, and provides a secure and scalable way to manage digital tokens. ### Features ------------- - -* **Secure token management** -* **Easy token sending and receiving** -* **User-friendly interface** -### Getting Started -------------------- +--- +- **Secure token management** +- **Easy token sending and receiving** +- **User-friendly interface** +### Getting Started +--- #### Clone the Repository ```bash git clone https://github.com/Greenstand/treetracker-wallet-app ``` -#### Install Dependencies +#### Install Dependencies `yarn` in the main project directory @@ -35,17 +36,19 @@ git clone https://github.com/Greenstand/treetracker-wallet-app cd apps/native yarn start ``` + This will start the app in development mode, and you can access it by scanning the QR code with your Expo Go app. + ### Testing ------------- -#### Testing with Maestro +--- -We use Maestro for testing of our app: +#### Testing with Maestro -* **End-to-End Testing (E2E)**: Testing the entire application flow to ensure it works as expected, from start to finish. +We use Maestro for testing of our app: +- **End-to-End Testing (E2E)**: Testing the entire application flow to ensure it works as expected, from start to finish. ```bash yarn maestro test -``` \ No newline at end of file +``` diff --git a/apps/native/app.json b/apps/native/app.json index c08a08c..45cbff6 100644 --- a/apps/native/app.json +++ b/apps/native/app.json @@ -23,10 +23,7 @@ "backgroundColor": "#ffffff" } }, - "plugins": [ - "expo-router", - "expo-font" - ], + "plugins": ["expo-router", "expo-font"], "experiments": { "typedRoutes": true }, diff --git a/apps/native/app/(tabs)/home.tsx b/apps/native/app/(tabs)/home.tsx index 2ffc3ce..1ba9bc0 100644 --- a/apps/native/app/(tabs)/home.tsx +++ b/apps/native/app/(tabs)/home.tsx @@ -8,11 +8,9 @@ import { ThemedSafeAreaView } from "@/components/ThemeSafeArea"; export default function Home() { return ( - + - - Home - + Home ); diff --git a/apps/native/app/(tabs)/send.tsx b/apps/native/app/(tabs)/send.tsx index 9d5c1d6..fa4873a 100644 --- a/apps/native/app/(tabs)/send.tsx +++ b/apps/native/app/(tabs)/send.tsx @@ -8,11 +8,9 @@ import { ThemedSafeAreaView } from "@/components/ThemeSafeArea"; export default function Send() { return ( - + - - Send - + Send ); diff --git a/apps/native/components/Button.tsx b/apps/native/components/Button.tsx index 3f274ad..e8ba326 100644 --- a/apps/native/components/Button.tsx +++ b/apps/native/components/Button.tsx @@ -1,8 +1,8 @@ -import React from 'react'; +import React from "react"; -import { ThemedText } from './ThemedText'; +import { ThemedText } from "./ThemedText"; -import { TouchableOpacity, StyleSheet } from 'react-native'; +import { TouchableOpacity, StyleSheet } from "react-native"; export type ButtonProps = { onPress: () => void; @@ -11,8 +11,13 @@ export type ButtonProps = { export function Button({ onPress, title }: ButtonProps) { return ( - - {title} + + + {title} + ); } @@ -21,15 +26,15 @@ const styles = StyleSheet.create({ button: { padding: 16, borderRadius: 8, - backgroundColor: '#61892F', - width: '100%', - alignItems: 'center', - justifyContent: 'center', + backgroundColor: "#61892F", + width: "100%", + alignItems: "center", + justifyContent: "center", elevation: 4, }, text: { - color: '#fff', + color: "#fff", fontSize: 20, - fontWeight: 'bold' - } -}); \ No newline at end of file + fontWeight: "bold", + }, +}); diff --git a/apps/native/components/ThemeSafeArea.tsx b/apps/native/components/ThemeSafeArea.tsx index 7ccfb23..4a2aecb 100644 --- a/apps/native/components/ThemeSafeArea.tsx +++ b/apps/native/components/ThemeSafeArea.tsx @@ -1,11 +1,16 @@ -import { SafeAreaView, type StyleProp, type ViewProps, ViewStyle } from "react-native"; +import { + SafeAreaView, + type StyleProp, + type ViewProps, + ViewStyle, +} from "react-native"; import { useThemeColor } from "@/hooks/useThemeColor"; export type ThemedSafeAreaViewProps = ViewProps & { lightColor?: string; darkColor?: string; - style: StyleProp + style: StyleProp; }; export function ThemedSafeAreaView({ diff --git a/apps/native/components/ThemedStatusBar.tsx b/apps/native/components/ThemedStatusBar.tsx index b040302..6f27885 100644 --- a/apps/native/components/ThemedStatusBar.tsx +++ b/apps/native/components/ThemedStatusBar.tsx @@ -1,5 +1,5 @@ -import React from 'react'; -import { StatusBar, type StatusBarProps } from 'react-native'; +import React from "react"; +import { StatusBar, type StatusBarProps } from "react-native"; export type ThemedStatusBarProps = StatusBarProps & { lightColor?: string; @@ -12,8 +12,8 @@ export function ThemedStatusBar({ ...otherProps }: ThemedStatusBarProps) { return ( - ); diff --git a/apps/native/components/ThemedText.tsx b/apps/native/components/ThemedText.tsx index f8bf1d0..7a76858 100644 --- a/apps/native/components/ThemedText.tsx +++ b/apps/native/components/ThemedText.tsx @@ -37,29 +37,29 @@ const styles = StyleSheet.create({ default: { fontSize: 16, lineHeight: 24, - fontFamily: "roboto" + fontFamily: "roboto", }, defaultSemiBold: { fontSize: 16, fontWeight: "600", lineHeight: 24, - fontFamily: "roboto" + fontFamily: "roboto", }, link: { color: "#0a7ea4", fontSize: 16, lineHeight: 30, - fontFamily: "roboto" + fontFamily: "roboto", }, subtitle: { fontSize: 20, fontWeight: "bold", - fontFamily: "roboto" + fontFamily: "roboto", }, title: { fontSize: 32, lineHeight: 32, fontWeight: "medium", - fontFamily: "roboto" + fontFamily: "roboto", }, }); diff --git a/apps/native/declarations.d.ts b/apps/native/declarations.d.ts index d2fd2d5..495dfa6 100644 --- a/apps/native/declarations.d.ts +++ b/apps/native/declarations.d.ts @@ -1,5 +1,5 @@ -declare module '*.svg' { - import { SvgProps } from 'react-native-svg'; +declare module "*.svg" { + import { SvgProps } from "react-native-svg"; const content: React.FC; export default content; -} \ No newline at end of file +} diff --git a/apps/native/metro.config.js b/apps/native/metro.config.js index 3a39c41..c025ba2 100644 --- a/apps/native/metro.config.js +++ b/apps/native/metro.config.js @@ -3,37 +3,37 @@ /** * @type {import('expo/metro-config')} */ -const { getDefaultConfig } = require('expo/metro-config') -const path = require('path') +const { getDefaultConfig } = require("expo/metro-config"); +const path = require("path"); // Find the project and workspace directories -const projectRoot = __dirname +const projectRoot = __dirname; // This can be replaced with `find-yarn-workspace-root` -const workspaceRoot = path.resolve(projectRoot, '../..') +const workspaceRoot = path.resolve(projectRoot, "../.."); -const config = getDefaultConfig(projectRoot) +const config = getDefaultConfig(projectRoot); // 1. Watch all files within the monorepo -config.watchFolders = [workspaceRoot] +config.watchFolders = [workspaceRoot]; // 2. Let Metro know where to resolve packages and in what order config.resolver.nodeModulesPaths = [ - path.resolve(projectRoot, 'node_modules'), - path.resolve(workspaceRoot, 'node_modules'), -] + path.resolve(projectRoot, "node_modules"), + path.resolve(workspaceRoot, "node_modules"), +]; // 3. Force Metro to resolve (sub)dependencies only from the `nodeModulesPaths` -config.resolver.disableHierarchicalLookup = true +config.resolver.disableHierarchicalLookup = true; // 4. Add support for SVG files const { transformer, resolver } = config; config.transformer = { ...transformer, - babelTransformerPath: require.resolve('react-native-svg-transformer'), + babelTransformerPath: require.resolve("react-native-svg-transformer"), }; config.resolver = { ...resolver, - assetExts: resolver.assetExts.filter(ext => ext !== 'svg'), - sourceExts: [...resolver.sourceExts, 'svg'], + assetExts: resolver.assetExts.filter(ext => ext !== "svg"), + sourceExts: [...resolver.sourceExts, "svg"], }; -module.exports = config \ No newline at end of file +module.exports = config; diff --git a/apps/native/package.json b/apps/native/package.json index f7a5328..c9b10af 100644 --- a/apps/native/package.json +++ b/apps/native/package.json @@ -8,6 +8,7 @@ "ios": "expo start --ios", "web": "expo start --web", "test": "jest --watchAll", + "prettier": "prettier --write .", "e2e:test": "bash -c \"maestro test ../../packages/.maestro/$1\"", "lint": "expo lint", "lint-fix": "eslint . --fix", diff --git a/apps/native/screens/auth/Login.screen.tsx b/apps/native/screens/auth/Login.screen.tsx index 5e61b8c..7998d9a 100644 --- a/apps/native/screens/auth/Login.screen.tsx +++ b/apps/native/screens/auth/Login.screen.tsx @@ -227,4 +227,4 @@ const styles = StyleSheet.create({ textSignUpContainer: {}, }); -export default LoginScreen; \ No newline at end of file +export default LoginScreen; diff --git a/apps/native/tsconfig.json b/apps/native/tsconfig.json index 335d807..2708a78 100644 --- a/apps/native/tsconfig.json +++ b/apps/native/tsconfig.json @@ -8,5 +8,12 @@ "@/*": ["./*"] } }, - "include": ["**/*.ts", "**/*.tsx", ".expo/types/**/*.ts", "expo-env.d.ts", "app/index.tsx", "index.ts"] + "include": [ + "**/*.ts", + "**/*.tsx", + ".expo/types/**/*.ts", + "expo-env.d.ts", + "app/index.tsx", + "index.ts" + ] } diff --git a/apps/user/.eslintrc.js b/apps/user/.eslintrc.js index 259de13..9ade1ea 100644 --- a/apps/user/.eslintrc.js +++ b/apps/user/.eslintrc.js @@ -1,25 +1,25 @@ module.exports = { - parser: '@typescript-eslint/parser', + parser: "@typescript-eslint/parser", parserOptions: { - project: 'tsconfig.json', + project: "tsconfig.json", tsconfigRootDir: __dirname, - sourceType: 'module', + sourceType: "module", }, - plugins: ['@typescript-eslint/eslint-plugin'], + plugins: ["@typescript-eslint/eslint-plugin"], extends: [ - 'plugin:@typescript-eslint/recommended', - 'plugin:prettier/recommended', + "plugin:@typescript-eslint/recommended", + "plugin:prettier/recommended", ], root: true, env: { node: true, jest: true, }, - ignorePatterns: ['.eslintrc.js'], + ignorePatterns: [".eslintrc.js"], rules: { - '@typescript-eslint/interface-name-prefix': 'off', - '@typescript-eslint/explicit-function-return-type': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/no-explicit-any': 'off', + "@typescript-eslint/interface-name-prefix": "off", + "@typescript-eslint/explicit-function-return-type": "off", + "@typescript-eslint/explicit-module-boundary-types": "off", + "@typescript-eslint/no-explicit-any": "off", }, }; diff --git a/apps/user/.prettierrc b/apps/user/.prettierrc deleted file mode 100644 index dcb7279..0000000 --- a/apps/user/.prettierrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "singleQuote": true, - "trailingComma": "all" -} \ No newline at end of file diff --git a/apps/user/babel.config.js b/apps/user/babel.config.js index 8165fe4..dd242dc 100644 --- a/apps/user/babel.config.js +++ b/apps/user/babel.config.js @@ -1,6 +1,6 @@ module.exports = { presets: [ - ['@babel/preset-env', { targets: { node: 'current' } }], - '@babel/preset-typescript', + ["@babel/preset-env", { targets: { node: "current" } }], + "@babel/preset-typescript", ], }; diff --git a/apps/user/deployment/base/cluster-role.yaml b/apps/user/deployment/base/cluster-role.yaml index 2f47811..3a4c072 100644 --- a/apps/user/deployment/base/cluster-role.yaml +++ b/apps/user/deployment/base/cluster-role.yaml @@ -4,9 +4,9 @@ metadata: name: k8s-wait-for # annotations: rules: - - apiGroups: [''] - resources: ['services', 'pods', 'jobs'] - verbs: ['get', 'watch', 'list'] - - apiGroups: ['batch'] - resources: ['services', 'pods', 'jobs'] - verbs: ['get', 'watch', 'list'] + - apiGroups: [""] + resources: ["services", "pods", "jobs"] + verbs: ["get", "watch", "list"] + - apiGroups: ["batch"] + resources: ["services", "pods", "jobs"] + verbs: ["get", "watch", "list"] diff --git a/apps/user/docs/api/spec/user-api.yaml b/apps/user/docs/api/spec/user-api.yaml index 96da1c0..0a4822d 100644 --- a/apps/user/docs/api/spec/user-api.yaml +++ b/apps/user/docs/api/spec/user-api.yaml @@ -1,31 +1,31 @@ openapi: 3.0.0 info: title: user api - version: '1.0' - description: 'The user API of Greenstand for user/custom service' + version: "1.0" + description: "The user API of Greenstand for user/custom service" contact: name: Greenstand User API - url: 'https://[env].treetracker.org/user-api' + url: "https://[env].treetracker.org/user-api" servers: - - url: 'http://[env].treetracker.org/user-api' + - url: "http://[env].treetracker.org/user-api" paths: - '/register': + "/register": parameters: - name: body in: body required: true schema: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" post: summary: Register a new user operationId: registerUser responses: - '200': + "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/user' + $ref: "#/components/schemas/user" components: schemas: diff --git a/apps/user/e2e-tests.config.ts b/apps/user/e2e-tests.config.ts index 1de0e9b..d31874c 100644 --- a/apps/user/e2e-tests.config.ts +++ b/apps/user/e2e-tests.config.ts @@ -1,5 +1,5 @@ -import jestConfig from './jest.config'; +import jestConfig from "./jest.config"; export default { ...jestConfig, - testRegex: 'spec.e2e.ts$', + testRegex: "spec.e2e.ts$", }; diff --git a/apps/user/int-tests.config.ts b/apps/user/int-tests.config.ts index 95dd990..f507423 100644 --- a/apps/user/int-tests.config.ts +++ b/apps/user/int-tests.config.ts @@ -1,5 +1,5 @@ -import jestConfig from './jest.config'; +import jestConfig from "./jest.config"; export default { ...jestConfig, - testRegex: 'spec.int.ts$', + testRegex: "spec.int.ts$", }; diff --git a/apps/user/jest.config.ts b/apps/user/jest.config.ts index c2ea919..fe35976 100644 --- a/apps/user/jest.config.ts +++ b/apps/user/jest.config.ts @@ -1,20 +1,20 @@ /* eslint-disable */ -import { pathsToModuleNameMapper } from 'ts-jest'; -import { compilerOptions } from './tsconfig.json'; +import { pathsToModuleNameMapper } from "ts-jest"; +import { compilerOptions } from "./tsconfig.json"; export default { - displayName: 'api', + displayName: "api", globals: { - 'ts-jest': { - tsconfig: '/tsconfig.spec.json', + "ts-jest": { + tsconfig: "/tsconfig.spec.json", }, }, moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, { - prefix: '', + prefix: "", }), - testEnvironment: 'node', + testEnvironment: "node", transform: { - '^.+\\.[tj]s$': 'ts-jest', + "^.+\\.[tj]s$": "ts-jest", }, - moduleFileExtensions: ['ts', 'js', 'html'], - coverageDirectory: '../../coverage/apps/api', + moduleFileExtensions: ["ts", "js", "html"], + coverageDirectory: "../../coverage/apps/api", }; diff --git a/apps/user/libs/utils/swagger.ts b/apps/user/libs/utils/swagger.ts index 054320f..e5de2f4 100644 --- a/apps/user/libs/utils/swagger.ts +++ b/apps/user/libs/utils/swagger.ts @@ -1,13 +1,13 @@ -import { INestApplication } from '@nestjs/common'; -import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'; +import { INestApplication } from "@nestjs/common"; +import { DocumentBuilder, SwaggerModule } from "@nestjs/swagger"; export function setupSwagger(app: INestApplication): void { const options = new DocumentBuilder() - .setTitle('API') - .setVersion('2.0.0') + .setTitle("API") + .setVersion("2.0.0") .addBearerAuth() .build(); const document = SwaggerModule.createDocument(app, options); - SwaggerModule.setup('swagger', app, document); + SwaggerModule.setup("swagger", app, document); } diff --git a/apps/user/libs/validation/dtos/register-user.dto.ts b/apps/user/libs/validation/dtos/register-user.dto.ts index 57e896a..94a04a7 100644 --- a/apps/user/libs/validation/dtos/register-user.dto.ts +++ b/apps/user/libs/validation/dtos/register-user.dto.ts @@ -1,5 +1,5 @@ -import { ApiProperty } from '@nestjs/swagger'; -import { IsNotEmpty, IsString } from 'class-validator'; +import { ApiProperty } from "@nestjs/swagger"; +import { IsNotEmpty, IsString } from "class-validator"; export class RegisterUserDto { @ApiProperty() diff --git a/apps/user/libs/validation/dtos/user.dto.ts b/apps/user/libs/validation/dtos/user.dto.ts index 3e6f6a0..f34da28 100644 --- a/apps/user/libs/validation/dtos/user.dto.ts +++ b/apps/user/libs/validation/dtos/user.dto.ts @@ -1,4 +1,4 @@ -import { IsNotEmpty, IsString } from 'class-validator'; +import { IsNotEmpty, IsString } from "class-validator"; export class UserDto { @IsString() @@ -40,4 +40,4 @@ export class UserDto { this.phone = phone; this.id = id; } -} \ No newline at end of file +} diff --git a/apps/user/package.json b/apps/user/package.json index d3605bf..071e992 100644 --- a/apps/user/package.json +++ b/apps/user/package.json @@ -1,21 +1,22 @@ { - "name": "greenstand-wallet-app-api", + "name": "user", "version": "0.0.1", - "description": "", + "description": "greenstand-wallet-app-api", "author": "", "private": true, "license": "UNLICENSED", "scripts": { "prebuild": "rimraf dist", "build": "nest build", - "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "prettier": "prettier --write \"src/**/*.ts\"", "start": "cross-env NODE_ENV=dev nest start", "start:dev": "cross-env NODE_ENV=dev nest start --watch", "start:debug": "cross-env NODE_ENV=debug nest start --debug --watch", "start:prod": "node dist/src/main", "start:win": "cross-env NODE_ENV=dev nest start", - "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", + "lint": "eslint \"/**/*.ts\" --fix", "pre-commit": "lint-staged", + "lint-staged": "lint-staged", "test": "jest", "test:unit": "jest --config ./unit-tests.config.ts", "test:watch": "jest --watch", @@ -54,6 +55,7 @@ "eslint-config-prettier": "^8.3.0", "eslint-plugin-prettier": "^4.0.0", "jest": "28.1.3", + "lint-staged": "^15.2.11", "prettier": "^2.3.2", "source-map-support": "^0.5.20", "supertest": "^6.1.3", diff --git a/apps/user/src/app.module.ts b/apps/user/src/app.module.ts index 0b0f70f..c698809 100644 --- a/apps/user/src/app.module.ts +++ b/apps/user/src/app.module.ts @@ -1,16 +1,16 @@ -import { Module } from '@nestjs/common'; -import { UserModule } from './user/user.module'; -import { UserController } from './user/user.controller'; -import { UserService } from './user/user.service'; -import { HttpModule } from '@nestjs/axios'; -import { ConfigModule } from '@nestjs/config'; +import { Module } from "@nestjs/common"; +import { UserModule } from "./user/user.module"; +import { UserController } from "./user/user.controller"; +import { UserService } from "./user/user.service"; +import { HttpModule } from "@nestjs/axios"; +import { ConfigModule } from "@nestjs/config"; const ENV = process.env.NODE_ENV; @Module({ imports: [ UserModule, HttpModule, - ConfigModule.forRoot({ envFilePath: ENV === 'dev' ? '.dev.env' : '.env' }), + ConfigModule.forRoot({ envFilePath: ENV === "dev" ? ".dev.env" : ".env" }), ], controllers: [UserController], providers: [UserService], diff --git a/apps/user/src/main.ts b/apps/user/src/main.ts index 7c5d91e..6ef73bb 100644 --- a/apps/user/src/main.ts +++ b/apps/user/src/main.ts @@ -1,14 +1,14 @@ -import { Logger } from '@nestjs/common'; -import { NestFactory } from '@nestjs/core'; -import { AppModule } from './app.module'; -import { setupSwagger } from '@utils/swagger'; +import { Logger } from "@nestjs/common"; +import { NestFactory } from "@nestjs/core"; +import { AppModule } from "./app.module"; +import { setupSwagger } from "@utils/swagger"; async function bootstrap() { const app = await NestFactory.create(AppModule, { - logger: ['error', 'warn', 'log'], + logger: ["error", "warn", "log"], }); const port = process.env.PORT || 8080; - if (process.env.NODE_ENV !== 'production') { + if (process.env.NODE_ENV !== "production") { setupSwagger(app); } await app.listen(port); diff --git a/apps/user/src/user/user.controller.spec.int.ts b/apps/user/src/user/user.controller.spec.int.ts index 6fcb837..9f26659 100644 --- a/apps/user/src/user/user.controller.spec.int.ts +++ b/apps/user/src/user/user.controller.spec.int.ts @@ -1,11 +1,11 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { HttpModule } from '@nestjs/axios'; -import { HttpException, HttpStatus, INestApplication } from '@nestjs/common'; -import * as request from 'supertest'; -import { UserService } from './user.service'; -import { AppModule } from '../app.module'; - -describe('User Registration Integration Tests', () => { +import { Test, TestingModule } from "@nestjs/testing"; +import { HttpModule } from "@nestjs/axios"; +import { HttpException, HttpStatus, INestApplication } from "@nestjs/common"; +import * as request from "supertest"; +import { UserService } from "./user.service"; +import { AppModule } from "../app.module"; + +describe("User Registration Integration Tests", () => { let app: INestApplication; let userService: UserService; @@ -33,115 +33,115 @@ describe('User Registration Integration Tests', () => { jest.clearAllMocks(); }); - it('should register a user successfully', async () => { - const mockToken = 'mock-token'; + it("should register a user successfully", async () => { + const mockToken = "mock-token"; const mockResponse = { success: true, - message: 'User created successfully!', + message: "User created successfully!", }; - jest.spyOn(userService, 'getToken').mockResolvedValue(mockToken); - jest.spyOn(userService, 'createUser').mockResolvedValue(mockResponse); + jest.spyOn(userService, "getToken").mockResolvedValue(mockToken); + jest.spyOn(userService, "createUser").mockResolvedValue(mockResponse); const registerUserDto = { - username: 'testuser', - email: 'testuser@example.com', - firstName: 'Test', - lastName: 'User', - password: 'securepassword123', + username: "testuser", + email: "testuser@example.com", + firstName: "Test", + lastName: "User", + password: "securepassword123", }; await request(app.getHttpServer()) - .post('/register') + .post("/register") .send(registerUserDto) .expect(HttpStatus.CREATED) - .expect((response) => { + .expect(response => { expect(response.body).toEqual(mockResponse); }); }); - it('should return 409 if user already exists', async () => { - const mockToken = 'mock-token'; + it("should return 409 if user already exists", async () => { + const mockToken = "mock-token"; const mockError = new HttpException( - 'User already exists', + "User already exists", HttpStatus.CONFLICT, ); - jest.spyOn(userService, 'getToken').mockResolvedValueOnce(mockToken); - jest.spyOn(userService, 'createUser').mockRejectedValue(mockError); + jest.spyOn(userService, "getToken").mockResolvedValueOnce(mockToken); + jest.spyOn(userService, "createUser").mockRejectedValue(mockError); const registerUserDto = { - username: 'existinguser', - email: 'existinguser@example.com', - firstName: 'Existing', - lastName: 'User', - password: 'securepassword123', + username: "existinguser", + email: "existinguser@example.com", + firstName: "Existing", + lastName: "User", + password: "securepassword123", }; await request(app.getHttpServer()) - .post('/register') + .post("/register") .send(registerUserDto) .expect(HttpStatus.CONFLICT) - .expect((response) => { - expect(response.body.message).toBe('User already exists'); + .expect(response => { + expect(response.body.message).toBe("User already exists"); }); }); - it('should return 403 if token retrieval fails', async () => { + it("should return 403 if token retrieval fails", async () => { const mockTokenError = new HttpException( - 'error getting token', + "error getting token", HttpStatus.UNAUTHORIZED, ); const mockRegisterError = new HttpException( - 'Error creating user', + "Error creating user", HttpStatus.FORBIDDEN, ); - jest.spyOn(userService, 'getToken').mockResolvedValueOnce(mockTokenError); - jest.spyOn(userService, 'createUser').mockRejectedValue(mockRegisterError); + jest.spyOn(userService, "getToken").mockResolvedValueOnce(mockTokenError); + jest.spyOn(userService, "createUser").mockRejectedValue(mockRegisterError); const registerUserDto = { - username: 'testuser', - email: 'testuser@example.com', - firstName: 'Test', - lastName: 'User', - password: 'securepassword123', + username: "testuser", + email: "testuser@example.com", + firstName: "Test", + lastName: "User", + password: "securepassword123", }; await request(app.getHttpServer()) - .post('/register') + .post("/register") .send(registerUserDto) .expect(HttpStatus.FORBIDDEN) - .expect((response) => { - expect(response.body.message).toBe('Error creating user'); + .expect(response => { + expect(response.body.message).toBe("Error creating user"); }); }); - it('should return 403 if user creation fails unexpectedly', async () => { - const mockToken = 'mock-token'; + it("should return 403 if user creation fails unexpectedly", async () => { + const mockToken = "mock-token"; const mockError = new HttpException( - 'Error creating user', + "Error creating user", HttpStatus.FORBIDDEN, ); - jest.spyOn(userService, 'getToken').mockResolvedValue(mockToken); - jest.spyOn(userService, 'createUser').mockRejectedValue(mockError); + jest.spyOn(userService, "getToken").mockResolvedValue(mockToken); + jest.spyOn(userService, "createUser").mockRejectedValue(mockError); const registerUserDto = { - username: 'anotheruser', - email: 'anotheruser@example.com', - firstName: 'Another', - lastName: 'User', - password: 'securepassword123', + username: "anotheruser", + email: "anotheruser@example.com", + firstName: "Another", + lastName: "User", + password: "securepassword123", }; await request(app.getHttpServer()) - .post('/register') + .post("/register") .send(registerUserDto) .expect(HttpStatus.FORBIDDEN) - .expect((response) => { - expect(response.body.message).toBe('Error creating user'); + .expect(response => { + expect(response.body.message).toBe("Error creating user"); }); }); }); diff --git a/apps/user/src/user/user.controller.spec.ts b/apps/user/src/user/user.controller.spec.ts index fa96583..bbc1570 100644 --- a/apps/user/src/user/user.controller.spec.ts +++ b/apps/user/src/user/user.controller.spec.ts @@ -1,9 +1,9 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { UserController } from './user.controller'; -import { UserService } from './user.service'; -import { RegisterUserDto } from '@dtos/register-user.dto'; +import { Test, TestingModule } from "@nestjs/testing"; +import { UserController } from "./user.controller"; +import { UserService } from "./user.service"; +import { RegisterUserDto } from "@dtos/register-user.dto"; -describe('UserController', () => { +describe("UserController", () => { let userController: UserController; let userService: UserService; @@ -24,18 +24,18 @@ describe('UserController', () => { userService = module.get(UserService); }); - describe('register', () => { - it('should call UserService.register with the correct data', async () => { + describe("register", () => { + it("should call UserService.register with the correct data", async () => { const registerUserDto: RegisterUserDto = { - username: 'testuser', - password: 'password123', - email: 'test@example.com', - firstName: 'firstname', - lastName: 'lastname', + username: "testuser", + password: "password123", + email: "test@example.com", + firstName: "firstname", + lastName: "lastname", }; - const result = { success: true, message: 'message' }; + const result = { success: true, message: "message" }; - jest.spyOn(userService, 'createUser').mockResolvedValue(result); + jest.spyOn(userService, "createUser").mockResolvedValue(result); const response = await userController.registerUser(registerUserDto); diff --git a/apps/user/src/user/user.controller.ts b/apps/user/src/user/user.controller.ts index 05ceff7..b761df5 100644 --- a/apps/user/src/user/user.controller.ts +++ b/apps/user/src/user/user.controller.ts @@ -1,18 +1,18 @@ -import { Body, Controller, Get, Post } from '@nestjs/common'; -import { UserService } from './user.service'; -import { RegisterUserDto } from '@dtos/register-user.dto'; +import { Body, Controller, Get, Post } from "@nestjs/common"; +import { UserService } from "./user.service"; +import { RegisterUserDto } from "@dtos/register-user.dto"; @Controller() export class UserController { constructor(private readonly userService: UserService) {} - @Post('register') + @Post("register") registerUser(@Body() registerUserDto: RegisterUserDto) { return this.userService.createUser(registerUserDto); } - @Get('test') + @Get("test") check(@Body() registerUserDto: RegisterUserDto) { - return 'tree growing!!' + return "tree growing!!"; } } diff --git a/apps/user/src/user/user.module.ts b/apps/user/src/user/user.module.ts index e397b7a..f7416e4 100644 --- a/apps/user/src/user/user.module.ts +++ b/apps/user/src/user/user.module.ts @@ -1,7 +1,7 @@ -import { Module } from '@nestjs/common'; -import { HttpModule } from '@nestjs/axios'; -import { UserController } from './user.controller'; -import { UserService } from './user.service'; +import { Module } from "@nestjs/common"; +import { HttpModule } from "@nestjs/axios"; +import { UserController } from "./user.controller"; +import { UserService } from "./user.service"; @Module({ imports: [HttpModule], diff --git a/apps/user/src/user/user.service.ts b/apps/user/src/user/user.service.ts index 9c6bcaf..e7e158b 100644 --- a/apps/user/src/user/user.service.ts +++ b/apps/user/src/user/user.service.ts @@ -1,8 +1,8 @@ -import { HttpException, HttpStatus, Injectable, Logger } from '@nestjs/common'; -import { RegisterUserDto } from '@dtos/register-user.dto'; -import { HttpService } from '@nestjs/axios'; -import { firstValueFrom } from 'rxjs'; -import { HttpStatusCode } from 'axios'; +import { HttpException, HttpStatus, Injectable, Logger } from "@nestjs/common"; +import { RegisterUserDto } from "@dtos/register-user.dto"; +import { HttpService } from "@nestjs/axios"; +import { firstValueFrom } from "rxjs"; +import { HttpStatusCode } from "axios"; @Injectable() export class UserService { @@ -18,11 +18,11 @@ export class UserService { const body = new URLSearchParams({ client_id: process.env.PRIVATE_KEYCLOAK_CLIENT_ID, client_secret: process.env.PRIVATE_KEYCLOAK_CLIENT_SECRET, - grant_type: 'client_credentials', + grant_type: "client_credentials", }); const headers = { - 'Content-Type': 'application/x-www-form-urlencoded', + "Content-Type": "application/x-www-form-urlencoded", }; try { @@ -55,7 +55,7 @@ export class UserService { const headers = { Authorization: `Bearer ${tokenData}`, - 'Content-Type': 'application/json', + "Content-Type": "application/json", }; const body = JSON.stringify({ username: userData.username, @@ -66,7 +66,7 @@ export class UserService { emailVerified: false, credentials: [ { - type: 'password', + type: "password", value: userData.password, temporary: false, }, @@ -80,7 +80,7 @@ export class UserService { ); // Check if response is valid if (response?.status === 201) { - return { success: true, message: 'User created successfully!' }; + return { success: true, message: "User created successfully!" }; } } catch (error: any) { const errorMessage = error.response?.data?.errorMessage || error.message; @@ -90,7 +90,7 @@ export class UserService { } else { // Logger.error(errorMessage); throw new HttpException( - 'Error creating user', + "Error creating user", HttpStatusCode.Forbidden, ); } diff --git a/apps/user/tests/api.spec.e2e.ts b/apps/user/tests/api.spec.e2e.ts index adf56d7..6287047 100644 --- a/apps/user/tests/api.spec.e2e.ts +++ b/apps/user/tests/api.spec.e2e.ts @@ -1,11 +1,11 @@ // test/cats.e2e-spec.ts -import { Test, TestingModule } from '@nestjs/testing'; -import { INestApplication } from '@nestjs/common'; -import * as request from 'supertest'; -import { AppModule } from '../src/app.module'; +import { Test, TestingModule } from "@nestjs/testing"; +import { INestApplication } from "@nestjs/common"; +import * as request from "supertest"; +import { AppModule } from "../src/app.module"; -describe('UserController (e2e)', () => { +describe("UserController (e2e)", () => { let app: INestApplication; beforeAll(async () => { @@ -20,41 +20,41 @@ describe('UserController (e2e)', () => { await app.close(); }); - it('should return 201 when a new user is succesfully created', () => { + it("should return 201 when a new user is succesfully created", () => { function generateUniqueUserData() { const timestamp = Date.now(); return { username: `testuser_${timestamp}`, email: `testuser_${timestamp}@wallet-app-test.com`, - password: 'SecurePassword123!', - firstName: 'firstname', - lastName: 'lastname', + password: "SecurePassword123!", + firstName: "firstname", + lastName: "lastname", }; } const newUser = generateUniqueUserData(); return request(app.getHttpServer()) - .post('/register') + .post("/register") .send(newUser) .expect(201) - .expect({ success: true, message: 'User created successfully!' }); + .expect({ success: true, message: "User created successfully!" }); }); - it('should return 409 when a user exists with same username', () => { + it("should return 409 when a user exists with same username", () => { function generateUniqueUserData() { const timestamp = Date.now(); return { username: `testuser_${timestamp}`, email: `testuser_${timestamp}@wallet-app-test.com`, - password: 'SecurePassword123!', - firstName: 'firstname', - lastName: 'lastname', + password: "SecurePassword123!", + firstName: "firstname", + lastName: "lastname", }; } const newUser = generateUniqueUserData(); return request(app.getHttpServer()) - .post('/register') + .post("/register") .send(newUser) .expect(201) - .expect({ success: true, message: 'User created successfully!' }); + .expect({ success: true, message: "User created successfully!" }); }); }); diff --git a/apps/user/unit-tests.config.ts b/apps/user/unit-tests.config.ts index d26b158..8b6359c 100644 --- a/apps/user/unit-tests.config.ts +++ b/apps/user/unit-tests.config.ts @@ -1,5 +1,5 @@ -import jestConfig from './jest.config'; +import jestConfig from "./jest.config"; export default { ...jestConfig, - testRegex: 'spec.ts$', + testRegex: "spec.ts$", }; diff --git a/apps/web/README.md b/apps/web/README.md index b7da060..0fadbb5 100644 --- a/apps/web/README.md +++ b/apps/web/README.md @@ -1,15 +1,16 @@ # Treetracker Wallet Web App The Treetracker Wallet Web App is a user-friendly interface for managing digital tokens. + ### Overview This web app is built using Next.js and provides a secure and scalable way to manage digital tokens. ### Features -* **Secure token management** -* **Easy token sending and receiving** -* **User-friendly interface** +- **Secure token management** +- **Easy token sending and receiving** +- **User-friendly interface** ### Getting Started @@ -19,10 +20,10 @@ This web app is built using Next.js and provides a secure and scalable way to ma #### Install Dependencies - `yarn` in the main project directory #### Start the Development Server + ```bash cd apps/web yarn dev @@ -32,16 +33,14 @@ yarn dev [http://localhost:3000](http://localhost:3000/) - #### Testing with Cypress We use Cypress for comprehensive testing of our web app, including: -* **Component Testing**: Testing individual components in isolation to ensure they function correctly. We use Cypress to test the behavior of single components, without rendering the entire application. -* **End-to-End Testing (E2E)**: Testing the entire application flow to ensure it works as expected, from start to finish. We use Cypress to test the entire application, simulating real-world user interactions and workflows. -* **Integration Testing**: Testing how different components or modules interact with each other to ensure they function correctly together. We use Cypress to test how multiple components work together to achieve a specific goal or workflow. - -`yarn cy:open` component test or e2e test -`yarn cy:component ` component test -`yarn cy:e2e` e2e test +- **Component Testing**: Testing individual components in isolation to ensure they function correctly. We use Cypress to test the behavior of single components, without rendering the entire application. +- **End-to-End Testing (E2E)**: Testing the entire application flow to ensure it works as expected, from start to finish. We use Cypress to test the entire application, simulating real-world user interactions and workflows. +- **Integration Testing**: Testing how different components or modules interact with each other to ensure they function correctly together. We use Cypress to test how multiple components work together to achieve a specific goal or workflow. +`yarn cy:open` component test or e2e test +`yarn cy:component ` component test +`yarn cy:e2e` e2e test diff --git a/apps/web/cypress/e2e/spec.cy.ts b/apps/web/cypress/e2e/spec.cy.ts index 9c9f750..fb808ab 100644 --- a/apps/web/cypress/e2e/spec.cy.ts +++ b/apps/web/cypress/e2e/spec.cy.ts @@ -1,5 +1,5 @@ -describe('template spec', () => { - it('passes', () => { - cy.visit('http://localhost:3000/') - }) -}) \ No newline at end of file +describe("template spec", () => { + it("passes", () => { + cy.visit("http://localhost:3000/"); + }); +}); diff --git a/apps/web/cypress/support/commands.ts b/apps/web/cypress/support/commands.ts index 698b01a..95857ae 100644 --- a/apps/web/cypress/support/commands.ts +++ b/apps/web/cypress/support/commands.ts @@ -34,4 +34,4 @@ // visit(originalFn: CommandOriginalFn, url: string, options: Partial): Chainable // } // } -// } \ No newline at end of file +// } diff --git a/apps/web/cypress/support/component-index.html b/apps/web/cypress/support/component-index.html index 3e16e9b..2cbfac6 100644 --- a/apps/web/cypress/support/component-index.html +++ b/apps/web/cypress/support/component-index.html @@ -1,9 +1,9 @@ - + - - - + + + Components App
@@ -11,4 +11,4 @@
- \ No newline at end of file + diff --git a/apps/web/cypress/support/e2e.ts b/apps/web/cypress/support/e2e.ts index f80f74f..6a173d6 100644 --- a/apps/web/cypress/support/e2e.ts +++ b/apps/web/cypress/support/e2e.ts @@ -14,7 +14,7 @@ // *********************************************************** // Import commands.js using ES2015 syntax: -import './commands' +import "./commands"; // Alternatively you can use CommonJS syntax: -// require('./commands') \ No newline at end of file +// require('./commands') diff --git a/apps/web/cypress/tsconfig.json b/apps/web/cypress/tsconfig.json index e768234..13a0476 100644 --- a/apps/web/cypress/tsconfig.json +++ b/apps/web/cypress/tsconfig.json @@ -1,26 +1,26 @@ { - "compilerOptions": { - "target": "es5", - "lib": ["es5", "dom","dom.iterable", "esnext"], - "types": ["cypress", "node"], - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "incremental": true, - "plugins": [ - { - "name": "next" - } - ] - }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] - } \ No newline at end of file + "compilerOptions": { + "target": "es5", + "lib": ["es5", "dom", "dom.iterable", "esnext"], + "types": ["cypress", "node"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ] + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/apps/web/next.config.mjs b/apps/web/next.config.mjs index 94ef14f..3b8c1a5 100644 --- a/apps/web/next.config.mjs +++ b/apps/web/next.config.mjs @@ -1,3 +1,3 @@ const nextConfig = {}; -export default nextConfig; \ No newline at end of file +export default nextConfig; diff --git a/apps/web/package.json b/apps/web/package.json index 98ba5a9..d5876a2 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -6,8 +6,10 @@ "dev": "next dev", "build": "next build", "start": "next start", - "lint": "next lint", - "pre-commit": "lint-staged", + "lint": "eslint .", + "prettier": "prettier --write 'src/**/*.{js,jsx,ts,tsx}'", + "pre-commit": "yarn pre-commit", + "lint-staged": "yarn lint-staged", "cy:component": "cypress run --component", "cy:e2e": "cypress run --e2e", "cy:debug": "cypress run --component --headed", @@ -40,6 +42,7 @@ "cypress": "^13.14.1", "eslint": "latest", "eslint-config-next": "latest", + "prettier": "^3.4.2", "typescript": "latest" } } diff --git a/apps/web/src/app/api/auth/signup/route.ts b/apps/web/src/app/api/auth/signup/route.ts index 17ec8c9..ed4512b 100644 --- a/apps/web/src/app/api/auth/signup/route.ts +++ b/apps/web/src/app/api/auth/signup/route.ts @@ -1,6 +1,5 @@ - -import { createUser } from '../../services/userService'; // Import the createUser function -import { NextResponse } from 'next/server'; +import { createUser } from "../../services/userService"; // Import the createUser function +import { NextResponse } from "next/server"; export async function POST(request: Request) { const res = await request.json(); @@ -19,6 +18,9 @@ export async function POST(request: Request) { } } catch (error: unknown) { console.error("Error during signup:", error); - return NextResponse.json({ error: (error as Error).message }, { status: 500 }); + return NextResponse.json( + { error: (error as Error).message }, + { status: 500 }, + ); } } diff --git a/apps/web/src/app/api/services/tokenService.ts b/apps/web/src/app/api/services/tokenService.ts index 5894fb0..ceaace9 100644 --- a/apps/web/src/app/api/services/tokenService.ts +++ b/apps/web/src/app/api/services/tokenService.ts @@ -5,10 +5,10 @@ const getToken = async () => { const tokenApi = `${keycloakBaseUrl}/realms/master/protocol/openid-connect/token`; const body = new URLSearchParams({ - grant_type: 'password', + grant_type: "password", client_id: process.env.NEXT_PUBLIC_KEYCLOAK_ADMIN_CLIENT_ID || "", username: process.env.NEXT_PUBLIC_KEYCLOAK_ADMIN || "", - password: process.env.NEXT_PUBLIC_KEYCLOAK_PASSWORD || "" + password: process.env.NEXT_PUBLIC_KEYCLOAK_PASSWORD || "", }); const response = await fetch(tokenApi, { @@ -28,4 +28,4 @@ const getToken = async () => { return tokenData.access_token; }; -export { getToken} \ No newline at end of file +export { getToken }; diff --git a/apps/web/src/app/api/services/userService.ts b/apps/web/src/app/api/services/userService.ts index 7243a3f..ae2fd2b 100644 --- a/apps/web/src/app/api/services/userService.ts +++ b/apps/web/src/app/api/services/userService.ts @@ -1,8 +1,12 @@ -import { getToken } from './tokenService'; +import { getToken } from "./tokenService"; const keycloakBaseUrl = process.env.NEXT_PUBLIC_KEYCLOAK_BASE_URL; -export const createUser = async (userData: { username: string; email: string; password: string }) => { +export const createUser = async (userData: { + username: string; + email: string; + password: string; +}) => { try { // Get the access token const tokenData = await getToken(); diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/page.tsx index 1107d8e..0d07f02 100644 --- a/apps/web/src/app/page.tsx +++ b/apps/web/src/app/page.tsx @@ -22,4 +22,4 @@ export default function Home() { ); -} \ No newline at end of file +} diff --git a/apps/web/src/components/loading/CircularProgressWithLabel.tsx b/apps/web/src/components/loading/CircularProgressWithLabel.tsx index 697dd42..8e2c4c4 100644 --- a/apps/web/src/components/loading/CircularProgressWithLabel.tsx +++ b/apps/web/src/components/loading/CircularProgressWithLabel.tsx @@ -1,51 +1,49 @@ -'use client' - -import { useState, useEffect } from 'react'; -import { Box, CircularProgress, Typography } from '@mui/material'; - -const CircularProgressWithLabel = () => { - const [progress, setProgress] = useState(0); - - useEffect(() => { - const timer = setInterval(() => { - setProgress((prevProgress) => - prevProgress >= 100 ? 100 : prevProgress + 10, - ); - }, 300); - - return () => { - clearInterval(timer); - }; - }, []); - - return ( - - - - - {`${Math.round(progress)}%`} - - - - ); -}; - -export default CircularProgressWithLabel; +"use client"; + +import { useState, useEffect } from "react"; +import { Box, CircularProgress, Typography } from "@mui/material"; + +const CircularProgressWithLabel = () => { + const [progress, setProgress] = useState(0); + + useEffect(() => { + const timer = setInterval(() => { + setProgress(prevProgress => + prevProgress >= 100 ? 100 : prevProgress + 10, + ); + }, 300); + + return () => { + clearInterval(timer); + }; + }, []); + + return ( + + + + + {`${Math.round(progress)}%`} + + + + ); +}; + +export default CircularProgressWithLabel; diff --git a/apps/web/src/components/loading/LoadingScreen.tsx b/apps/web/src/components/loading/LoadingScreen.tsx index 768a470..cb3b2b7 100644 --- a/apps/web/src/components/loading/LoadingScreen.tsx +++ b/apps/web/src/components/loading/LoadingScreen.tsx @@ -1,29 +1,30 @@ -'use client' - -import { Box, Typography } from '@mui/material'; -import CircularProgressWithLabel from './CircularProgressWithLabel'; - -interface LoadingScreenProps { - message?: string; -} - -const LoadingScreen = ({ message = 'Processing, please wait...' }: LoadingScreenProps) => { - return ( - - - - {message} - - - ); -}; - -export default LoadingScreen; +"use client"; + +import { Box, Typography } from "@mui/material"; +import CircularProgressWithLabel from "./CircularProgressWithLabel"; + +interface LoadingScreenProps { + message?: string; +} + +const LoadingScreen = ({ + message = "Processing, please wait...", +}: LoadingScreenProps) => { + return ( + + + + {message} + + + ); +}; + +export default LoadingScreen; diff --git a/apps/web/src/pages/README.md b/apps/web/src/pages/README.md index b1699f1..1712ae8 100644 --- a/apps/web/src/pages/README.md +++ b/apps/web/src/pages/README.md @@ -1 +1 @@ -DO NOT DELETE THIS FOLDER \ No newline at end of file +DO NOT DELETE THIS FOLDER diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json index f52a2a2..6a9c1a2 100644 --- a/apps/web/tsconfig.json +++ b/apps/web/tsconfig.json @@ -26,4 +26,4 @@ }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], "exclude": ["node_modules"] -} \ No newline at end of file +} diff --git a/eslint.config.js b/eslint.config.js index ccc8b10..58f3488 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,3 +1,3 @@ -module.exports = { - "*.{js,jsx,ts,tsx}": ["prettier --write", "eslint --fix"], -}; +// module.exports = { +// "*.{js,jsx,ts,tsx}": ["prettier --write", "eslint . --fix"], +// }; diff --git a/package.json b/package.json index b6386e7..3887758 100644 --- a/package.json +++ b/package.json @@ -1,16 +1,18 @@ { - "private": "true", "name": "treetracker-wallet-app", "version": "1.0.0", "main": "index.js", "repository": "", "author": "", "license": "MIT", + "private": true, "scripts": { - "pre-commit": "yarn workspaces run pre-commit", + "pre-commit": "yarn workspaces run lint-staged", "cypress-component-test": "yarn workspace web run cy:component", "commitlint": "commitlint", "lint-staged": "lint-staged", + "prettier": "prettier --write .", + "prettier:check": "prettier --check .", "postinstall": "husky", "prepare": "husky" }, @@ -23,6 +25,8 @@ "devDependencies": { "@commitlint/cli": "^19.3.0", "@commitlint/config-conventional": "^19.2.2", - "husky": "^9.0.11" + "husky": "^9.0.11", + "lint-staged": "^15.2.11", + "prettier": "^3.4.2" } } diff --git a/packages/core/package.json b/packages/core/package.json index 437a0e3..216f74b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -4,10 +4,12 @@ "main": "index.js", "license": "MIT", "scripts": { - "pre-commit": "lint-staged" + "pre-commit": "lint-staged", + "prettier": "prettier --write ." }, "devDependencies": { - "lint-staged": "^15.2.7" + "lint-staged": "^15.2.7", + "prettier": "^3.4.2" }, "dependencies": { "jotai": "^2.9.0", diff --git a/packages/queue/README.md b/packages/queue/README.md index 5dfcb33..966ab76 100644 --- a/packages/queue/README.md +++ b/packages/queue/README.md @@ -21,4 +21,5 @@ subscribe({ ``` ## To run e2e test -``` npm run test ``` + +`npm run test` diff --git a/packages/queue/__tests__/index.spec.js b/packages/queue/__tests__/index.spec.js index 8182827..ed8621b 100644 --- a/packages/queue/__tests__/index.spec.js +++ b/packages/queue/__tests__/index.spec.js @@ -1,39 +1,42 @@ -const {pgClient, pgClient2} = require('../pgClient'); -const uuid = require('uuid'); -const subscribe = require('../subscribe'); -const publish = require('../publish'); +const { pgClient, pgClient2 } = require("../pgClient"); +const uuid = require("uuid"); +const subscribe = require("../subscribe"); +const publish = require("../publish"); // test to confrim successful clients' subscription to a postgres channel -describe('tests client subscription', () => { - afterAll((done) => { // eslint-disable-line - pgClient.end(); - pgClient2.end(); - done(); - }) +describe("tests client subscription", () => { + afterAll(done => { + // eslint-disable-line + pgClient.end(); + pgClient2.end(); + done(); + }); - // create two clients and confirm their subscription to a channel - it('subscribes two cilents', (done) => { + // create two clients and confirm their subscription to a channel + it("subscribes two cilents", done => { + // tree object to be added to table + const messageObj = { + channel: "tree", + data: { + capture_id: uuid.v4(), + }, + }; - // tree object to be added to table - const messageObj = { - channel: 'tree', - data: { - capture_id: uuid.v4() - } - } + // subscribe clients to a channel, return a promise and verify message/payload from resolved promise + Promise.all([ + subscribe({ pgClient, channel: messageObj.channel, clientID: uuid.v4() }), + subscribe({ + pgClient: pgClient2, + channel: messageObj.channel, + clientID: uuid.v4(), + }), + ]).then(values => { + expect(values[0]).toMatchObject(messageObj); // eslint-disable-line + expect(values[1]).toMatchObject(messageObj); // eslint-disable-line + done(); + }); - // subscribe clients to a channel, return a promise and verify message/payload from resolved promise - Promise.all([ - subscribe({pgClient, channel: messageObj.channel, clientID: uuid.v4() }), - subscribe({ pgClient: pgClient2, channel: messageObj.channel, clientID: uuid.v4() }) - ]).then(values => { - expect(values[0]).toMatchObject(messageObj); // eslint-disable-line - expect(values[1]).toMatchObject(messageObj); // eslint-disable-line - done(); - }); - - // publish message to a given channel - publish({ pgClient, channel: messageObj.channel, data: messageObj.data }); - }, 30000) - -}) \ No newline at end of file + // publish message to a given channel + publish({ pgClient, channel: messageObj.channel, data: messageObj.data }); + }, 30000); +}); diff --git a/packages/queue/ack.js b/packages/queue/ack.js index fe43354..8a87e2c 100644 --- a/packages/queue/ack.js +++ b/packages/queue/ack.js @@ -1,28 +1,26 @@ -// sends message receipt confirmation -async function ack({pgClient, id, dateStr, clientID}) { - - const sql = `UPDATE queue.message set ack=jsonb_set(ack, '{${clientID}}', '"${dateStr}"') where id='${id}'`; - const sql2 = `SELECT * from queue.message where id='${id}'`; - - const selectPromise = new Promise(resolve => { - - pgClient.query(sql, err => { - if (err) throw Error(`ack update error: ${err}`) - }) - pgClient.query(sql2, (err, res) => { - - if (err) throw Error(`ack fetch error: ${err}`) - - const date1 = new Date(dateStr) - const date2 = new Date(res.rows[0].ack[clientID]) - - // checks for the correct acknowledgement date - if (date1.getTime() !== date2.getTime()) throw Error('ack timestamp error!') - - resolve(res.rows) - }) - }) - return selectPromise; +// sends message receipt confirmation +async function ack({ pgClient, id, dateStr, clientID }) { + const sql = `UPDATE queue.message set ack=jsonb_set(ack, '{${clientID}}', '"${dateStr}"') where id='${id}'`; + const sql2 = `SELECT * from queue.message where id='${id}'`; + + const selectPromise = new Promise(resolve => { + pgClient.query(sql, err => { + if (err) throw Error(`ack update error: ${err}`); + }); + pgClient.query(sql2, (err, res) => { + if (err) throw Error(`ack fetch error: ${err}`); + + const date1 = new Date(dateStr); + const date2 = new Date(res.rows[0].ack[clientID]); + + // checks for the correct acknowledgement date + if (date1.getTime() !== date2.getTime()) + throw Error("ack timestamp error!"); + + resolve(res.rows); + }); + }); + return selectPromise; } -module.exports = ack; \ No newline at end of file +module.exports = ack; diff --git a/packages/queue/index.js b/packages/queue/index.js index ddaeb5a..3b1c599 100644 --- a/packages/queue/index.js +++ b/packages/queue/index.js @@ -1,5 +1,4 @@ -const subscribe = require('./subscribe'); -const publish = require('./publish'); +const subscribe = require("./subscribe"); +const publish = require("./publish"); - -module.exports = {subscribe, publish}; \ No newline at end of file +module.exports = { subscribe, publish }; diff --git a/packages/queue/package.json b/packages/queue/package.json index 7474d47..9c43a75 100644 --- a/packages/queue/package.json +++ b/packages/queue/package.json @@ -1,11 +1,12 @@ { - "name": "treetracker-pg-sub-noti", + "name": "queue", "version": "1.0.0", - "description": "postgres based message queue system", + "description": "treetracker-pg-sub-noti is a postgres based message queue system", "main": "index.js", "scripts": { "test": "jest /__tests__/index.spec.js", - "pre-commit": "lint-staged" + "pre-commit": "lint-staged", + "prettier": "prettier --write ." }, "author": "Dag G.", "license": "ISC", @@ -17,6 +18,7 @@ "devDependencies": { "jest": "^29.7.0", "lint-staged": "^15.2.11", + "prettier": "^3.4.2", "uuid": "^11.0.3" } } diff --git a/packages/queue/pgClient.js b/packages/queue/pgClient.js index 0595c4c..448f838 100644 --- a/packages/queue/pgClient.js +++ b/packages/queue/pgClient.js @@ -1,42 +1,39 @@ -const { Client } = require('pg'); -const log = require('loglevel'); -require('dotenv').config(); +const { Client } = require("pg"); +const log = require("loglevel"); +require("dotenv").config(); const connectionString = process.env.DATABASE_URL; console.log(connectionString); -if(!connectionString) { - log.warn('DATABASE_URL is not set!'); +if (!connectionString) { + log.warn("DATABASE_URL is not set!"); } const pgClient = new Client({ - connectionString, + connectionString, }); const pgClient2 = new Client({ - connectionString, + connectionString, }); pgClient.connect(err => { - if (err) { - const message = `error in connecting to DB: ${err}`; - log.error(message); - throw (message); - } - else { - log.info(`Database connected!`); - } -}) + if (err) { + const message = `error in connecting to DB: ${err}`; + log.error(message); + throw message; + } else { + log.info(`Database connected!`); + } +}); pgClient2.connect(err => { - if (err) { - const message = `error in connecting to DB: ${err}`; - log.error(message); - throw (message); - } - else { - log.info(`Database connected!`); - } -}) - + if (err) { + const message = `error in connecting to DB: ${err}`; + log.error(message); + throw message; + } else { + log.info(`Database connected!`); + } +}); -module.exports = {pgClient, pgClient2}; \ No newline at end of file +module.exports = { pgClient, pgClient2 }; diff --git a/packages/queue/publish.js b/packages/queue/publish.js index 19aa6aa..583f855 100644 --- a/packages/queue/publish.js +++ b/packages/queue/publish.js @@ -1,13 +1,12 @@ // publishes message to a given channel -function publish({pgClient, channel, data}) { +function publish({ pgClient, channel, data }) { + const text = `INSERT into queue.message(channel, data) values ($1, $2) RETURNING *`; + const values = [channel, data]; - const text = `INSERT into queue.message(channel, data) values ($1, $2) RETURNING *`; - const values = [channel, data]; - - pgClient.query(text, values, (err, res) => { - if (err) throw Error(`insertion error: ${err}`); - console.log(`postgres message dispatch success: ${res}`); - }); + pgClient.query(text, values, (err, res) => { + if (err) throw Error(`insertion error: ${err}`); + console.log(`postgres message dispatch success: ${res}`); + }); } -module.exports = publish; \ No newline at end of file +module.exports = publish; diff --git a/packages/queue/subscribe.js b/packages/queue/subscribe.js index a698bb4..0479eaf 100644 --- a/packages/queue/subscribe.js +++ b/packages/queue/subscribe.js @@ -1,27 +1,27 @@ -const ack = require('./ack'); +const ack = require("./ack"); // subscribes a client to a channel async function subscribe({ pgClient, clientID, channel }) { + const notiPromise = new Promise(resolve => { + pgClient.on("notification", msg => { + const newRow = JSON.parse(msg.payload); + const date = new Date(); + const dateStr = date.toISOString(); - const notiPromise = new Promise((resolve) => { - pgClient.on('notification', msg => { - - const newRow = JSON.parse(msg.payload); - const date = new Date() - const dateStr = date.toISOString() - - return ack({ pgClient, id: newRow.id, dateStr, clientID }).then(response => { - return resolve(response[0]) - }) - }); + return ack({ pgClient, id: newRow.id, dateStr, clientID }).then( + response => { + return resolve(response[0]); + }, + ); }); + }); - pgClient.query(`LISTEN ${channel}`, (err, res) => { - if (err) throw Error(`subscription error: ${err}`); - console.log(`subscription success: ${res}`) - }); + pgClient.query(`LISTEN ${channel}`, (err, res) => { + if (err) throw Error(`subscription error: ${err}`); + console.log(`subscription success: ${res}`); + }); - return notiPromise; + return notiPromise; } -module.exports = subscribe; \ No newline at end of file +module.exports = subscribe; diff --git a/yarn.lock b/yarn.lock index 1b31a70..912b2bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -876,13 +876,13 @@ integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@commitlint/cli@^19.3.0": - version "19.6.0" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-19.6.0.tgz#98e7fc8501cc38b6eef4b7f61e19b15f3c53700e" - integrity sha512-v17BgGD9w5KnthaKxXnEg6KLq6DYiAxyiN44TpiRtqyW8NSq+Kx99mkEG8Qo6uu6cI5eMzMojW2muJxjmPnF8w== + version "19.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-19.6.1.tgz#24edd26595d911cc6b680cdfbb1fb083bfd5f73d" + integrity sha512-8hcyA6ZoHwWXC76BoC8qVOSr8xHy00LZhZpauiD0iO0VYbVhMnED0da85lTfIULxl7Lj4c6vZgF0Wu/ed1+jlQ== dependencies: "@commitlint/format" "^19.5.0" "@commitlint/lint" "^19.6.0" - "@commitlint/load" "^19.5.0" + "@commitlint/load" "^19.6.1" "@commitlint/read" "^19.5.0" "@commitlint/types" "^19.5.0" tinyexec "^0.3.0" @@ -947,10 +947,10 @@ "@commitlint/rules" "^19.6.0" "@commitlint/types" "^19.5.0" -"@commitlint/load@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-19.5.0.tgz#67f90a294894d1f99b930b6152bed2df44a81794" - integrity sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA== +"@commitlint/load@^19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-19.6.1.tgz#5fae8843a6048a2d3d1cc16da0af8ee532fa9db4" + integrity sha512-kE4mRKWWNju2QpsCWt428XBvUH55OET2N4QKQ0bF85qS/XbsRGG1MiTByDNlEVpEPceMkDr46LNH95DtRwcsfA== dependencies: "@commitlint/config-validator" "^19.5.0" "@commitlint/execute-rule" "^19.5.0" @@ -958,7 +958,7 @@ "@commitlint/types" "^19.5.0" chalk "^5.3.0" cosmiconfig "^9.0.0" - cosmiconfig-typescript-loader "^5.0.0" + cosmiconfig-typescript-loader "^6.1.0" lodash.isplainobject "^4.0.6" lodash.merge "^4.6.2" lodash.uniq "^4.5.0" @@ -1104,7 +1104,7 @@ "@emotion/weak-memoize" "^0.4.0" stylis "4.2.0" -"@emotion/cache@^11.11.0", "@emotion/cache@^11.13.0", "@emotion/cache@^11.13.5": +"@emotion/cache@^11.13.0", "@emotion/cache@^11.13.5": version "11.14.0" resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.14.0.tgz#ee44b26986eeb93c8be82bb92f1f7a9b21b2ed76" integrity sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA== @@ -1257,10 +1257,10 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== -"@eslint/js@9.16.0": - version "9.16.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.16.0.tgz#3df2b2dd3b9163056616886c86e4082f45dbf3f4" - integrity sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg== +"@eslint/js@9.17.0": + version "9.17.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.17.0.tgz#1523e586791f80376a6f8398a3964455ecc651ec" + integrity sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w== "@eslint/object-schema@^2.1.5": version "2.1.5" @@ -2143,9 +2143,9 @@ chalk "^4.0.0" "@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" - integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + version "0.3.8" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" + integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== dependencies: "@jridgewell/set-array" "^1.2.1" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -2182,7 +2182,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": version "0.3.25" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== @@ -2200,36 +2200,36 @@ resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz#d4f6937353bc4568292654efb0a0e0532adbcba2" integrity sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw== -"@mui/base@5.0.0-beta.40": - version "5.0.0-beta.40" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.40.tgz#1f8a782f1fbf3f84a961e954c8176b187de3dae2" - integrity sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ== +"@mui/base@5.0.0-beta.40-0": + version "5.0.0-beta.40-0" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.40-0.tgz#4e211724d3feefa3dd1546952502b87491137e89" + integrity sha512-hG3atoDUxlvEy+0mqdMpWd04wca8HKr2IHjW/fAjlkCHQolSLazhZM46vnHjOf15M4ESu25mV/3PgjczyjVM4w== dependencies: "@babel/runtime" "^7.23.9" "@floating-ui/react-dom" "^2.0.8" - "@mui/types" "^7.2.14" - "@mui/utils" "^5.15.14" + "@mui/types" "^7.2.15" + "@mui/utils" "^5.16.12" "@popperjs/core" "^2.11.8" clsx "^2.1.0" prop-types "^15.8.1" "@mui/base@^5.0.0-beta.22": - version "5.0.0-beta.66" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.66.tgz#b40151caf47c221c32852c3970f659f23e4a8aee" - integrity sha512-1SzcNbtIms0o/Dx+599B6QbvR5qUMBUjwc2Gs47h1HsF7RcEFXxqaq7zrWkIWbvGctIIPx0j330oGx/SkF+UmA== + version "5.0.0-beta.67" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.67.tgz#c343fb27da76c67493edb9b1f5660523af9db3f6" + integrity sha512-pwjibXqBrSw1Z1fZEIhWJnMJHSvh3BLz0pZcrX/x01B/BVf6QUbFlGVV/k8KCsZ9sPzln1l8bBJ+ynIIE9LtjA== dependencies: "@babel/runtime" "^7.26.0" "@floating-ui/react-dom" "^2.1.1" - "@mui/types" "^7.2.19" - "@mui/utils" "^6.2.0" + "@mui/types" "^7.2.20" + "@mui/utils" "^6.2.1" "@popperjs/core" "^2.11.8" clsx "^2.1.1" prop-types "^15.8.1" "@mui/core-downloads-tracker@^6.0.2": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-6.2.0.tgz#52953b858eaf3204ac505bf0329528fd3130c775" - integrity sha512-Nn5PSkUqbDrvezpiiiYZiAbX4SFEiy3CbikUL6pWOXEUsq+L1j50OOyyUIHpaX2Hr+5V5UxTh+fPeC4nsGNhdw== + version "6.2.1" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-6.2.1.tgz#5e56311c5aeab91141a16edee95c1688536d75fc" + integrity sha512-U/8vS1+1XiHBnnRRESSG1gvr6JDHdPjrpnW6KEebkAQWBn6wrpbSF/XSZ8/vJIRXH5NyDmMHi4Ro5Q70//JKhA== "@mui/icons-material@6.0.2": version "6.0.2" @@ -2239,15 +2239,15 @@ "@babel/runtime" "^7.25.0" "@mui/lab@^5.0.0-alpha.137": - version "5.0.0-alpha.174" - resolved "https://registry.yarnpkg.com/@mui/lab/-/lab-5.0.0-alpha.174.tgz#ca31049b7140a6717392b3b990264628c89fcf99" - integrity sha512-6jw+vcjfnDr/V4qzqwOPFwoqzxejGfm9F0k9E92QLmtFv5F0pH73OjmQDzALL7zrcwR4iV4D94iJZ1xFawiREA== + version "5.0.0-alpha.175" + resolved "https://registry.yarnpkg.com/@mui/lab/-/lab-5.0.0-alpha.175.tgz#eb3bc607b96d164455c4beafe8d7f718bb1971fe" + integrity sha512-AvM0Nvnnj7vHc9+pkkQkoE1i+dEbr6gsMdnSfy7X4w3Ljgcj1yrjZhIt3jGTCLzyKVLa6uve5eLluOcGkvMqUA== dependencies: "@babel/runtime" "^7.23.9" - "@mui/base" "5.0.0-beta.40" - "@mui/system" "^5.16.8" + "@mui/base" "5.0.0-beta.40-0" + "@mui/system" "^5.16.12" "@mui/types" "^7.2.15" - "@mui/utils" "^5.16.8" + "@mui/utils" "^5.16.12" clsx "^2.1.0" prop-types "^15.8.1" @@ -2276,38 +2276,38 @@ react-is "^18.3.1" react-transition-group "^4.4.5" -"@mui/private-theming@^5.16.8": - version "5.16.8" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.16.8.tgz#7914996caaf6eedc59914aeab83dcd2d4e4da1ec" - integrity sha512-3Vl9yFVLU6T3CFtxRMQTcJ60Ijv7wxQi4yjH92+9YXcsqvVspeIYoocqNoIV/1bXGYfyWu5zrCmwQVHaGY7bug== +"@mui/private-theming@^5.16.12": + version "5.16.12" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.16.12.tgz#b98159017e196df91f9fea5c3729ddee2a6a46df" + integrity sha512-hhLTSZxsazwZZ4bUAKgFcbsnfCrwizSnJI7/bXf/R9/tZkZBy+bKY05/Au/bIgGKzuZ4KTlKlPn+U/uufEXrNw== dependencies: "@babel/runtime" "^7.23.9" - "@mui/utils" "^5.16.8" + "@mui/utils" "^5.16.12" prop-types "^15.8.1" -"@mui/private-theming@^6.0.2", "@mui/private-theming@^6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-6.2.0.tgz#b94a7c5726b7337cfad1800bfd5927cf2af4b131" - integrity sha512-lYd2MrVddhentF1d/cMXKnwlDjr/shbO3A2eGq22PCYUoZaqtAGZMc0U86KnJ/Sh5YzNYePqTOaaowAN8Qea8A== +"@mui/private-theming@^6.0.2", "@mui/private-theming@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-6.2.1.tgz#734a92654e645eb820383f2ce8ef813f8fa4bb25" + integrity sha512-u1y0gpcfrRRxCcIdVeU5eIvkinA82Q8ft178WUNYuoFQrsOrXdlBdZlRVi+eYuUFp1iXI55Cud7sMZZtETix5Q== dependencies: "@babel/runtime" "^7.26.0" - "@mui/utils" "^6.2.0" + "@mui/utils" "^6.2.1" prop-types "^15.8.1" -"@mui/styled-engine@^5.16.8": - version "5.16.8" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.16.8.tgz#b8ca35f93f503a51d0759a05475bfd28e10757ea" - integrity sha512-OFdgFf8JczSRs0kvWGdSn0ZeXxWrY0LITDPJ/nAtLEvUUTyrlFaO4il3SECX8ruzvf1VnAxHx4M/4mX9oOn9yA== +"@mui/styled-engine@^5.16.12": + version "5.16.12" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.16.12.tgz#868adb12b803a8d9e5bcf443246d325d05b89986" + integrity sha512-TMf3SN19rkJPh1hQZTjoY8UsJa5qExfr78owwCuEZLjIhsajAYiWmbJzJ8mM3grEWLiP3MziDA4zy4LFNri12Q== dependencies: "@babel/runtime" "^7.23.9" - "@emotion/cache" "^11.11.0" + "@emotion/cache" "^11.13.5" csstype "^3.1.3" prop-types "^15.8.1" -"@mui/styled-engine@^6.0.2", "@mui/styled-engine@^6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-6.2.0.tgz#f0d4450b86ee4f39906b51d1439710b754269d3f" - integrity sha512-rV4YCu6kcCjMnHFXU/tQcL6XfYVfFVR8n3ZVNGnk2rpXnt/ctOPJsF+eUQuhkHciueLVKpI06+umr1FxWWhVmQ== +"@mui/styled-engine@^6.0.2", "@mui/styled-engine@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-6.2.1.tgz#47ce0d1ae7d32a36f4d459e15319a76aaf6f4a58" + integrity sha512-6R3OgYw6zgCZWFYYMfxDqpGfJA78mUTOIlUDmmJlr60ogVNCrM87X0pqx5TbZ2OwUyxlJxN9qFgRr+J9H6cOBg== dependencies: "@babel/runtime" "^7.26.0" "@emotion/cache" "^11.13.5" @@ -2330,38 +2330,38 @@ csstype "^3.1.3" prop-types "^15.8.1" -"@mui/system@^5.16.8": - version "5.16.8" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.16.8.tgz#e5010d76cd2fdcc403ad3f98abfba99d330055ad" - integrity sha512-L32TaFDFpGIi1g6ysRtmhc9zDgrlxDXu3NlrGE8gAsQw/ziHrPdr0PNr20O0POUshA1q14W4dNZ/z0Nx2F9lhA== +"@mui/system@^5.16.12": + version "5.16.12" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.16.12.tgz#4bf46e9b09f26a5437beeb7540288bd4b658e61e" + integrity sha512-rDsndVl0ug0Ex2rZt8x0WIF3Zc0EMFT2TmRVWP4jzk38aLS6WsxryXAZUQa0BKEnB3vfx1pSP/xa44TdKQ94dg== dependencies: "@babel/runtime" "^7.23.9" - "@mui/private-theming" "^5.16.8" - "@mui/styled-engine" "^5.16.8" + "@mui/private-theming" "^5.16.12" + "@mui/styled-engine" "^5.16.12" "@mui/types" "^7.2.15" - "@mui/utils" "^5.16.8" + "@mui/utils" "^5.16.12" clsx "^2.1.0" csstype "^3.1.3" prop-types "^15.8.1" "@mui/system@^6.0.2": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-6.2.0.tgz#1841438bc50716c7c739345756bc4cd60aa34a71" - integrity sha512-DCeqev9Cd4f4pm3O1lqSGW/DIHHBG6ZpqMX9iIAvN4asYv+pPWv2/lKov9kWk5XThhxFnGSv93SRNE1kNRRg5Q== + version "6.2.1" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-6.2.1.tgz#1bc267e0719741bd463a7bc9be4fd7ed8760836a" + integrity sha512-0lc8CbBP4WAAF+SmGMFJI9bpIyQvW3zvwIDzLsb26FIB/4Z0pO7qGe8mkAl0RM63Vb37899qxnThhHKgAAdy6w== dependencies: "@babel/runtime" "^7.26.0" - "@mui/private-theming" "^6.2.0" - "@mui/styled-engine" "^6.2.0" - "@mui/types" "^7.2.19" - "@mui/utils" "^6.2.0" + "@mui/private-theming" "^6.2.1" + "@mui/styled-engine" "^6.2.1" + "@mui/types" "^7.2.20" + "@mui/utils" "^6.2.1" clsx "^2.1.1" csstype "^3.1.3" prop-types "^15.8.1" -"@mui/types@^7.2.14", "@mui/types@^7.2.15", "@mui/types@^7.2.16", "@mui/types@^7.2.19": - version "7.2.19" - resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.19.tgz#c941954dd24393fdce5f07830d44440cf4ab6c80" - integrity sha512-6XpZEM/Q3epK9RN8ENoXuygnqUQxE+siN/6rGRi2iwJPgBUR25mphYQ9ZI87plGh58YoZ5pp40bFvKYOCDJ3tA== +"@mui/types@^7.2.15", "@mui/types@^7.2.16", "@mui/types@^7.2.20": + version "7.2.20" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.20.tgz#16d8c9178b42b62ba95bbedbda8f343feb373d1e" + integrity sha512-straFHD7L8v05l/N5vcWk+y7eL9JF0C2mtph/y4BPm3gn2Eh61dDwDB65pa8DLss3WJfDXYC7Kx5yjP0EmXpgw== "@mui/utils@6.0.2": version "6.0.2" @@ -2375,25 +2375,25 @@ prop-types "^15.8.1" react-is "^18.3.1" -"@mui/utils@^5.14.16", "@mui/utils@^5.15.14", "@mui/utils@^5.16.8": - version "5.16.8" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.16.8.tgz#e44acf38d446d361347c46b3e81ae366f615f37b" - integrity sha512-P/yb7BSWallQUeiNGxb+TM8epHteIUC8gzNTdPV2VfKhVY/EnGliHgt5np0GPkjQ7EzwDi/+gBevrAJtf+K94A== +"@mui/utils@^5.14.16", "@mui/utils@^5.16.12": + version "5.16.12" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.16.12.tgz#f04eff6ef057af92189637577edc69e84e3ab4e4" + integrity sha512-p3JAq7nA0ur8M/zLnBvR6ZeAjM8mD4LnPdKfsJAYPS26w4eDQjQzl55XvoOmch2MeXhmWaO4Pkvs/xurrISNBw== dependencies: "@babel/runtime" "^7.23.9" "@mui/types" "^7.2.15" "@types/prop-types" "^15.7.12" clsx "^2.1.1" prop-types "^15.8.1" - react-is "^18.3.1" + react-is "^19.0.0" -"@mui/utils@^6.0.2", "@mui/utils@^6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-6.2.0.tgz#a39f0a2837048a42114169d298ce970913097203" - integrity sha512-77CaFJi+OIi2SjbPwCis8z5DXvE0dfx9hBz5FguZHt1VYFlWEPCWTHcMsQCahSErnfik5ebLsYK8+D+nsjGVfw== +"@mui/utils@^6.0.2", "@mui/utils@^6.2.1": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-6.2.1.tgz#b89485bef828d66c09ae86ef0dde7e4f35bcffa5" + integrity sha512-ubLqGIMhKUH2TF/Um+wRzYXgAooQw35th+DPemGrTpgrZHpOgcnUDIDbwsk1e8iQiuJ3mV/ErTtcQrecmlj5cg== dependencies: "@babel/runtime" "^7.26.0" - "@mui/types" "^7.2.19" + "@mui/types" "^7.2.20" "@types/prop-types" "^15.7.14" clsx "^2.1.1" prop-types "^15.8.1" @@ -2525,10 +2525,10 @@ resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.7.tgz#40fcd6ccdd53fd7e6788a0604f39032c84bea112" integrity sha512-OTx9y6I3xE/eih+qtthppwLytmpJVPM5PPoJxChFsbjIEFXIayG0h/xLzefHGJviAa3Q5+Fd+9uYojKkHDKxoQ== -"@next/eslint-plugin-next@15.1.0": - version "15.1.0" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.0.tgz#421b47ad0772e11b2d67416054675cd32f95b8b7" - integrity sha512-+jPT0h+nelBT6HC9ZCHGc7DgGVy04cv4shYdAe6tKlEbjQUtwU3LzQhzbDHQyY2m6g39m6B0kOFVuLGBrxxbGg== +"@next/eslint-plugin-next@15.1.2": + version "15.1.2" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.2.tgz#75cf49c0d96b9132d895b3c853dc3ecd70db77ee" + integrity sha512-sgfw3+WdaYOGPKCvM1L+UucBmRfh8V2Ygefp7ELON0+0vY7uohQwXXnVWg3rY7mXDKharQR3o7uedpfvnU2hlQ== dependencies: fast-glob "3.3.1" @@ -3046,11 +3046,11 @@ nanoid "^3.1.23" "@remix-run/node@^2.7.2": - version "2.15.1" - resolved "https://registry.yarnpkg.com/@remix-run/node/-/node-2.15.1.tgz#f57b06016f3a71cbdc47e89bdc08ac579e2a2f66" - integrity sha512-23xWN3/yOohNUr27KS7hEcDMbtufMkniXfXkcLx8Dz2wUVNfJYGpICjeV48Ue/INtpiUCCzOYwkL9VRjIMEJbA== + version "2.15.2" + resolved "https://registry.yarnpkg.com/@remix-run/node/-/node-2.15.2.tgz#7ea460335b66a06d22e554a84edf09e2b8879a8a" + integrity sha512-NS/h5uxje7DYCNgcKqKAiUhf0r2HVnoYUBWLyIIMmCUP1ddWurBP6xTPcWzGhEvV/EvguniYi1wJZ5+X8sonWw== dependencies: - "@remix-run/server-runtime" "2.15.1" + "@remix-run/server-runtime" "2.15.2" "@remix-run/web-fetch" "^4.4.2" "@web3-storage/multipart-parser" "^1.0.0" cookie-signature "^1.1.0" @@ -3063,10 +3063,10 @@ resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.21.0.tgz#c65ae4262bdcfe415dbd4f64ec87676e4a56e2b5" integrity sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA== -"@remix-run/server-runtime@2.15.1": - version "2.15.1" - resolved "https://registry.yarnpkg.com/@remix-run/server-runtime/-/server-runtime-2.15.1.tgz#1ebf96c351f3398d73856fae38dbd41fd45b2da2" - integrity sha512-TDM3rzax//N2F5uNMV5pNTWAop8cYul6hteDu+Xmfwys/eRGlbzEf7YJzyRj6Kcsg2TFVHI7+xEPItGAVm1hHA== +"@remix-run/server-runtime@2.15.2": + version "2.15.2" + resolved "https://registry.yarnpkg.com/@remix-run/server-runtime/-/server-runtime-2.15.2.tgz#5be945027612c0891748d1788d39fea1ef0ba33c" + integrity sha512-OqiPcvEnnU88B8b1LIWHHkQ3Tz2GDAmQ1RihFNQsbrFKpDsQLkw0lJlnfgKA/uHd0CEEacpfV7C9qqJT3V6Z2g== dependencies: "@remix-run/router" "1.21.0" "@types/cookie" "^0.6.0" @@ -3618,16 +3618,16 @@ integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w== "@types/react@*", "@types/react@latest": - version "19.0.1" - resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.1.tgz#a000d5b78f473732a08cecbead0f3751e550b3df" - integrity sha512-YW6614BDhqbpR5KtUYzTA+zlA7nayzJRA9ljz9CQoxthR0sDisYZLuvSMsil36t4EH/uAt8T52Xb4sVw17G+SQ== + version "19.0.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.2.tgz#9363e6b3ef898c471cb182dd269decc4afc1b4f6" + integrity sha512-USU8ZI/xyKJwFTpjSVIrSeHBVAGagkHQKPNbxeWwql/vDmnTIBgx+TJnhFnj1NXgz8XfprU0egV2dROLGpsBEg== dependencies: csstype "^3.0.2" "@types/react@^18": - version "18.3.16" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.16.tgz#5326789125fac98b718d586ad157442ceb44ff28" - integrity sha512-oh8AMIC4Y2ciKufU8hnKgs+ufgbA/dhPTACaZPM86AbwX9QwnFtSoPWEeRUj8fge+v6kFt78BXcDhAU1SrrAsw== + version "18.3.18" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.18.tgz#9b382c4cd32e13e463f97df07c2ee3bbcd26904b" + integrity sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ== dependencies: "@types/prop-types" "*" csstype "^3.0.2" @@ -3754,15 +3754,15 @@ tsutils "^3.21.0" "@typescript-eslint/eslint-plugin@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.0.tgz#0901933326aea4443b81df3f740ca7dfc45c7bea" - integrity sha512-NR2yS7qUqCL7AIxdJUQf2MKKNDVNaig/dEB0GBLU7D+ZdHgK1NoH/3wsgO3OnPVipn51tG3MAwaODEGil70WEw== + version "8.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.1.tgz#992e5ac1553ce20d0d46aa6eccd79dc36dedc805" + integrity sha512-Ncvsq5CT3Gvh+uJG0Lwlho6suwDfUXH0HztslDf5I+F2wAFAZMRwYLEorumpKLzmO2suAXZ/td1tBg4NZIi9CQ== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.18.0" - "@typescript-eslint/type-utils" "8.18.0" - "@typescript-eslint/utils" "8.18.0" - "@typescript-eslint/visitor-keys" "8.18.0" + "@typescript-eslint/scope-manager" "8.18.1" + "@typescript-eslint/type-utils" "8.18.1" + "@typescript-eslint/utils" "8.18.1" + "@typescript-eslint/visitor-keys" "8.18.1" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" @@ -3794,14 +3794,14 @@ debug "^4.3.4" "@typescript-eslint/parser@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.18.0.tgz#a1c9456cbb6a089730bf1d3fc47946c5fb5fe67b" - integrity sha512-hgUZ3kTEpVzKaK3uNibExUYm6SKKOmTU2BOxBSvOYwtJEPdVQ70kZJpPjstlnhCHcuc2WGfSbpKlb/69ttyN5Q== - dependencies: - "@typescript-eslint/scope-manager" "8.18.0" - "@typescript-eslint/types" "8.18.0" - "@typescript-eslint/typescript-estree" "8.18.0" - "@typescript-eslint/visitor-keys" "8.18.0" + version "8.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.18.1.tgz#c258bae062778b7696793bc492249027a39dfb95" + integrity sha512-rBnTWHCdbYM2lh7hjyXqxk70wvon3p2FyaniZuey5TrcGBpfhVp0OxOa6gxr9Q9YhZFKyfbEnxc24ZnVbbUkCA== + dependencies: + "@typescript-eslint/scope-manager" "8.18.1" + "@typescript-eslint/types" "8.18.1" + "@typescript-eslint/typescript-estree" "8.18.1" + "@typescript-eslint/visitor-keys" "8.18.1" debug "^4.3.4" "@typescript-eslint/parser@^7.16.0", "@typescript-eslint/parser@^7.4.0": @@ -3831,13 +3831,13 @@ "@typescript-eslint/types" "7.18.0" "@typescript-eslint/visitor-keys" "7.18.0" -"@typescript-eslint/scope-manager@8.18.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.18.0.tgz#30b040cb4557804a7e2bcc65cf8fdb630c96546f" - integrity sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw== +"@typescript-eslint/scope-manager@8.18.1": + version "8.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.18.1.tgz#52cedc3a8178d7464a70beffed3203678648e55b" + integrity sha512-HxfHo2b090M5s2+/9Z3gkBhI6xBH8OJCFjH9MhQ+nnoZqxU3wNxkLT+VWXWSFWc3UF3Z+CfPAyqdCTdoXtDPCQ== dependencies: - "@typescript-eslint/types" "8.18.0" - "@typescript-eslint/visitor-keys" "8.18.0" + "@typescript-eslint/types" "8.18.1" + "@typescript-eslint/visitor-keys" "8.18.1" "@typescript-eslint/type-utils@5.62.0": version "5.62.0" @@ -3859,13 +3859,13 @@ debug "^4.3.4" ts-api-utils "^1.3.0" -"@typescript-eslint/type-utils@8.18.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.18.0.tgz#6f0d12cf923b6fd95ae4d877708c0adaad93c471" - integrity sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow== +"@typescript-eslint/type-utils@8.18.1": + version "8.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.18.1.tgz#10f41285475c0bdee452b79ff7223f0e43a7781e" + integrity sha512-jAhTdK/Qx2NJPNOTxXpMwlOiSymtR2j283TtPqXkKBdH8OAMmhiUfP0kJjc/qSE51Xrq02Gj9NY7MwK+UxVwHQ== dependencies: - "@typescript-eslint/typescript-estree" "8.18.0" - "@typescript-eslint/utils" "8.18.0" + "@typescript-eslint/typescript-estree" "8.18.1" + "@typescript-eslint/utils" "8.18.1" debug "^4.3.4" ts-api-utils "^1.3.0" @@ -3879,10 +3879,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== -"@typescript-eslint/types@8.18.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.18.0.tgz#3afcd30def8756bc78541268ea819a043221d5f3" - integrity sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA== +"@typescript-eslint/types@8.18.1": + version "8.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.18.1.tgz#d7f4f94d0bba9ebd088de840266fcd45408a8fff" + integrity sha512-7uoAUsCj66qdNQNpH2G8MyTFlgerum8ubf21s3TSM3XmKXuIn+H2Sifh/ES2nPOPiYSRJWAk0fDkW0APBWcpfw== "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" @@ -3911,13 +3911,13 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/typescript-estree@8.18.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.0.tgz#d8ca785799fbb9c700cdff1a79c046c3e633c7f9" - integrity sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg== +"@typescript-eslint/typescript-estree@8.18.1": + version "8.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.1.tgz#2a86cd64b211a742f78dfa7e6f4860413475367e" + integrity sha512-z8U21WI5txzl2XYOW7i9hJhxoKKNG1kcU4RzyNvKrdZDmbjkmLBo8bgeiOJmA06kizLI76/CCBAAGlTlEeUfyg== dependencies: - "@typescript-eslint/types" "8.18.0" - "@typescript-eslint/visitor-keys" "8.18.0" + "@typescript-eslint/types" "8.18.1" + "@typescript-eslint/visitor-keys" "8.18.1" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" @@ -3949,15 +3949,15 @@ "@typescript-eslint/types" "7.18.0" "@typescript-eslint/typescript-estree" "7.18.0" -"@typescript-eslint/utils@8.18.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.18.0.tgz#48f67205d42b65d895797bb7349d1be5c39a62f7" - integrity sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg== +"@typescript-eslint/utils@8.18.1": + version "8.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.18.1.tgz#c4199ea23fc823c736e2c96fd07b1f7235fa92d5" + integrity sha512-8vikiIj2ebrC4WRdcAdDcmnu9Q/MXXwg+STf40BVfT8exDqBCUPdypvzcUPxEqRGKg9ALagZ0UWcYCtn+4W2iQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.18.0" - "@typescript-eslint/types" "8.18.0" - "@typescript-eslint/typescript-estree" "8.18.0" + "@typescript-eslint/scope-manager" "8.18.1" + "@typescript-eslint/types" "8.18.1" + "@typescript-eslint/typescript-estree" "8.18.1" "@typescript-eslint/visitor-keys@5.62.0": version "5.62.0" @@ -3975,12 +3975,12 @@ "@typescript-eslint/types" "7.18.0" eslint-visitor-keys "^3.4.3" -"@typescript-eslint/visitor-keys@8.18.0": - version "8.18.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.0.tgz#7b6d33534fa808e33a19951907231ad2ea5c36dd" - integrity sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw== +"@typescript-eslint/visitor-keys@8.18.1": + version "8.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.1.tgz#344b4f6bc83f104f514676facf3129260df7610a" + integrity sha512-Vj0WLm5/ZsD013YeUKn+K0y8p1M0jPpxOkKdbD1wB0ns53a5piVY02zjf072TblEweAbcYiFiPoSMF3kp+VhhQ== dependencies: - "@typescript-eslint/types" "8.18.0" + "@typescript-eslint/types" "8.18.1" eslint-visitor-keys "^4.2.0" "@ungap/structured-clone@^1.2.0": @@ -4422,13 +4422,13 @@ aria-query@^5.3.2: resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59" integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== -array-buffer-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" - integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== +array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz#384d12a37295aec3769ab022ad323a18a51ccf8b" + integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== dependencies: - call-bind "^1.0.5" - is-array-buffer "^3.0.4" + call-bound "^1.0.3" + is-array-buffer "^3.0.5" array-flatten@1.1.1: version "1.1.1" @@ -4482,24 +4482,24 @@ array.prototype.findlastindex@^1.2.5: es-shim-unscopables "^1.0.2" array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + version "1.3.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz#534aaf9e6e8dd79fb6b9a9917f839ef1ec63afe5" + integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" array.prototype.flatmap@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + version "1.3.3" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz#712cc792ae70370ae40586264629e33aab5dd38b" + integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" array.prototype.tosorted@^1.1.4: version "1.1.4" @@ -4512,19 +4512,18 @@ array.prototype.tosorted@^1.1.4: es-errors "^1.3.0" es-shim-unscopables "^1.0.2" -arraybuffer.prototype.slice@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" - integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== +arraybuffer.prototype.slice@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz#9d760d84dbdd06d0cbf92c8849615a1a7ab3183c" + integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== dependencies: array-buffer-byte-length "^1.0.1" - call-bind "^1.0.5" + call-bind "^1.0.8" define-properties "^1.2.1" - es-abstract "^1.22.3" - es-errors "^1.2.1" - get-intrinsic "^1.2.3" + es-abstract "^1.23.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" is-array-buffer "^3.0.4" - is-shared-array-buffer "^1.0.2" asap@^2.0.0, asap@~2.0.3, asap@~2.0.6: version "2.0.6" @@ -4947,13 +4946,13 @@ braces@^3.0.3, braces@~3.0.2: fill-range "^7.1.1" browserslist@^4.14.5, browserslist@^4.24.0, browserslist@^4.24.2: - version "4.24.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.2.tgz#f5845bc91069dbd55ee89faf9822e1d885d16580" - integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg== + version "4.24.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.3.tgz#5fc2725ca8fb3c1432e13dac278c7cc103e026d2" + integrity sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA== dependencies: - caniuse-lite "^1.0.30001669" - electron-to-chromium "^1.5.41" - node-releases "^2.0.18" + caniuse-lite "^1.0.30001688" + electron-to-chromium "^1.5.73" + node-releases "^2.0.19" update-browserslist-db "^1.1.1" bs-logger@0.x: @@ -5046,7 +5045,7 @@ cachedir@^2.3.0: resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d" integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ== -call-bind-apply-helpers@^1.0.0: +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz#32e5892e6361b29b0b545ba6f7763378daca2840" integrity sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g== @@ -5054,7 +5053,7 @@ call-bind-apply-helpers@^1.0.0: es-errors "^1.3.0" function-bind "^1.1.2" -call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7, call-bind@^1.0.8: +call-bind@^1.0.7, call-bind@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== @@ -5064,13 +5063,13 @@ call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7, call-bin get-intrinsic "^1.2.4" set-function-length "^1.2.2" -call-bound@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.2.tgz#9dbd4daf9f5f753bec3e4c8fbb8a2ecc4de6c39b" - integrity sha512-0lk0PHFe/uz0vl527fG9CgdE9WdafjDbCXvBbs+LUv000TVt2Jjhqbs4Jwm8gz070w8xXyEAxrPOMullsxXeGg== +call-bound@^1.0.2, call-bound@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.3.tgz#41cfd032b593e39176a71533ab4f384aa04fd681" + integrity sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA== dependencies: - call-bind "^1.0.8" - get-intrinsic "^1.2.5" + call-bind-apply-helpers "^1.0.1" + get-intrinsic "^1.2.6" caller-callsite@^2.0.0: version "2.0.0" @@ -5106,10 +5105,10 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001669: - version "1.0.30001687" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz#d0ac634d043648498eedf7a3932836beba90ebae" - integrity sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ== +caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001688: + version "1.0.30001690" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz#f2d15e3aaf8e18f76b2b8c1481abde063b8104c8" + integrity sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w== caseless@~0.12.0: version "0.12.0" @@ -5141,7 +5140,12 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.3.0, chalk@~5.3.0: +chalk@^5.3.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.4.1.tgz#1b48bf0963ec158dce2aacf69c093ae2dd2092d8" + integrity sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w== + +chalk@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== @@ -5661,12 +5665,12 @@ cors@2.8.5: object-assign "^4" vary "^1" -cosmiconfig-typescript-loader@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.1.0.tgz#d8d02bff04e63faa2dc794d618168bd764c704be" - integrity sha512-7PtBB+6FdsOvZyJtlF3hEPpACq7RQX6BVGsgC7/lfVXnKMvNCu/XY3ykreqG5w/rBNdu2z8LCIKoF3kpHHdHlA== +cosmiconfig-typescript-loader@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-6.1.0.tgz#7f644503e1c2bff90aed2d29a637008f279646bb" + integrity sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g== dependencies: - jiti "^1.21.6" + jiti "^2.4.1" cosmiconfig@^5.0.5, cosmiconfig@^5.1.0: version "5.2.1" @@ -5735,11 +5739,11 @@ cross-env@^7.0.3: cross-spawn "^7.0.1" cross-fetch@^3.1.5: - version "3.1.8" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" - integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" + integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== dependencies: - node-fetch "^2.6.12" + node-fetch "^2.7.0" cross-spawn@^6.0.0: version "6.0.6" @@ -5752,7 +5756,7 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3, cross-spawn@^7.0.5: +cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3, cross-spawn@^7.0.6: version "7.0.6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== @@ -5853,9 +5857,9 @@ csstype@^3.0.2, csstype@^3.1.3: integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== cypress@^13.14.1: - version "13.16.1" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.16.1.tgz#82e776f6ad2037ccce6b6feabed768615c476258" - integrity sha512-17FtCaz0cx7ssWYKXzGB0Vub8xHwpVPr+iPt2fHhLMDhVAPVrplD+rTQsZUsfb19LVBn5iwkEUFjQ1yVVJXsLA== + version "13.17.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.17.0.tgz#34c3d68080c4497eace0f353bd1629587a5f600d" + integrity sha512-5xWkaPurwkIljojFidhw8lFScyxhtiFHl/i/3zov+1Z5CmY4t9tjIdvSXfu82Y3w7wt0uR9KkucbhkVvJZLQSA== dependencies: "@cypress/request" "^3.0.6" "@cypress/xvfb" "^1.2.4" @@ -5937,30 +5941,30 @@ data-urls@^3.0.2: whatwg-mimetype "^3.0.0" whatwg-url "^11.0.0" -data-view-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" - integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== +data-view-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz#211a03ba95ecaf7798a8c7198d79536211f88570" + integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== dependencies: - call-bind "^1.0.6" + call-bound "^1.0.3" es-errors "^1.3.0" - is-data-view "^1.0.1" + is-data-view "^1.0.2" -data-view-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" - integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== +data-view-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz#9e80f7ca52453ce3e93d25a35318767ea7704735" + integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" es-errors "^1.3.0" - is-data-view "^1.0.1" + is-data-view "^1.0.2" -data-view-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" - integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== +data-view-byte-offset@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz#068307f9b71ab76dbbe10291389e020856606191" + integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== dependencies: - call-bind "^1.0.6" + call-bound "^1.0.2" es-errors "^1.3.0" is-data-view "^1.0.1" @@ -6071,7 +6075,7 @@ define-lazy-prop@^2.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: +define-properties@^1.1.3, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== @@ -6250,12 +6254,12 @@ dotenv@^16.4.5, dotenv@^16.4.7, dotenv@~16.4.5: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.7.tgz#0e20c5b82950140aa99be360a8a5f52335f53c26" integrity sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ== -dunder-proto@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.0.tgz#c2fce098b3c8f8899554905f4377b6d85dabaa80" - integrity sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A== +dunder-proto@^1.0.0, dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== dependencies: - call-bind-apply-helpers "^1.0.0" + call-bind-apply-helpers "^1.0.1" es-errors "^1.3.0" gopd "^1.2.0" @@ -6277,10 +6281,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.5.41: - version "1.5.72" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.72.tgz#a732805986d3a5b5fedd438ddf4616c7d78ac2df" - integrity sha512-ZpSAUOZ2Izby7qnZluSrAlGgGQzucmFbN0n64dYzocYxnxV5ufurpj3VgEe4cUp7ir9LmeLxNYo8bVnlM8bQHw== +electron-to-chromium@^1.5.73: + version "1.5.75" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.75.tgz#bba96eabf0e8ca36324679caa38b982800acc87d" + integrity sha512-Lf3++DumRE/QmweGjU+ZcKqQ+3bKkU/qjaKYhIJKEOhgIO9Xs6IiAQFkfFoj+RhgDk4LUeNsLo6plExHqSyu6Q== emittery@^0.10.2: version "0.10.2" @@ -6325,9 +6329,9 @@ end-of-stream@^1.1.0: once "^1.4.0" enhanced-resolve@^5.0.0, enhanced-resolve@^5.14.0, enhanced-resolve@^5.15.0, enhanced-resolve@^5.7.0: - version "5.17.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" - integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== + version "5.18.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz#91eb1db193896b9801251eeff1c6980278b1e404" + integrity sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -6392,88 +6396,90 @@ errorhandler@^1.5.1: accepts "~1.3.7" escape-html "~1.0.3" -es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23.5: - version "1.23.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.5.tgz#f4599a4946d57ed467515ed10e4f157289cd52fb" - integrity sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ== +es-abstract@^1.17.5, es-abstract@^1.23.0, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23.5, es-abstract@^1.23.6: + version "1.23.7" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.7.tgz#36e3da46fdb0d2ae3b9df4235e3a3167c1605b36" + integrity sha512-OygGC8kIcDhXX+6yAZRGLqwi2CmEXCbLQixeGUgYeR+Qwlppqmo7DIDr8XibtEBZp+fJcoYpoatp5qwLMEdcqQ== dependencies: - array-buffer-byte-length "^1.0.1" - arraybuffer.prototype.slice "^1.0.3" + array-buffer-byte-length "^1.0.2" + arraybuffer.prototype.slice "^1.0.4" available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - data-view-buffer "^1.0.1" - data-view-byte-length "^1.0.1" - data-view-byte-offset "^1.0.0" - es-define-property "^1.0.0" + call-bind "^1.0.8" + call-bound "^1.0.3" + data-view-buffer "^1.0.2" + data-view-byte-length "^1.0.2" + data-view-byte-offset "^1.0.1" + es-define-property "^1.0.1" es-errors "^1.3.0" es-object-atoms "^1.0.0" es-set-tostringtag "^2.0.3" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.4" - get-symbol-description "^1.0.2" + es-to-primitive "^1.3.0" + function.prototype.name "^1.1.8" + get-intrinsic "^1.2.6" + get-symbol-description "^1.1.0" globalthis "^1.0.4" - gopd "^1.0.1" + gopd "^1.2.0" has-property-descriptors "^1.0.2" - has-proto "^1.0.3" - has-symbols "^1.0.3" + has-proto "^1.2.0" + has-symbols "^1.1.0" hasown "^2.0.2" - internal-slot "^1.0.7" - is-array-buffer "^3.0.4" + internal-slot "^1.1.0" + is-array-buffer "^3.0.5" is-callable "^1.2.7" - is-data-view "^1.0.1" - is-negative-zero "^2.0.3" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.3" - is-string "^1.0.7" - is-typed-array "^1.1.13" - is-weakref "^1.0.2" + is-data-view "^1.0.2" + is-regex "^1.2.1" + is-shared-array-buffer "^1.0.4" + is-string "^1.1.1" + is-typed-array "^1.1.15" + is-weakref "^1.1.0" + math-intrinsics "^1.1.0" object-inspect "^1.13.3" object-keys "^1.1.1" - object.assign "^4.1.5" + object.assign "^4.1.7" regexp.prototype.flags "^1.5.3" - safe-array-concat "^1.1.2" - safe-regex-test "^1.0.3" - string.prototype.trim "^1.2.9" - string.prototype.trimend "^1.0.8" + safe-array-concat "^1.1.3" + safe-regex-test "^1.1.0" + string.prototype.trim "^1.2.10" + string.prototype.trimend "^1.0.9" string.prototype.trimstart "^1.0.8" - typed-array-buffer "^1.0.2" - typed-array-byte-length "^1.0.1" - typed-array-byte-offset "^1.0.2" - typed-array-length "^1.0.6" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.15" + typed-array-buffer "^1.0.3" + typed-array-byte-length "^1.0.3" + typed-array-byte-offset "^1.0.4" + typed-array-length "^1.0.7" + unbox-primitive "^1.1.0" + which-typed-array "^1.1.18" es-define-property@^1.0.0, es-define-property@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== -es-errors@^1.2.1, es-errors@^1.3.0: +es-errors@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== es-iterator-helpers@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz#2f1a3ab998b30cb2d10b195b587c6d9ebdebf152" - integrity sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q== + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz#d1dd0f58129054c0ad922e6a9a1e65eef435fe75" + integrity sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" define-properties "^1.2.1" - es-abstract "^1.23.3" + es-abstract "^1.23.6" es-errors "^1.3.0" es-set-tostringtag "^2.0.3" function-bind "^1.1.2" - get-intrinsic "^1.2.4" + get-intrinsic "^1.2.6" globalthis "^1.0.4" - gopd "^1.0.1" + gopd "^1.2.0" has-property-descriptors "^1.0.2" - has-proto "^1.0.3" - has-symbols "^1.0.3" - internal-slot "^1.0.7" - iterator.prototype "^1.1.3" - safe-array-concat "^1.1.2" + has-proto "^1.2.0" + has-symbols "^1.1.0" + internal-slot "^1.1.0" + iterator.prototype "^1.1.4" + safe-array-concat "^1.1.3" es-module-lexer@^1.2.1: version "1.5.4" @@ -6496,14 +6502,14 @@ es-set-tostringtag@^2.0.3: has-tostringtag "^1.0.2" hasown "^2.0.1" -es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: +es-shim-unscopables@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== dependencies: hasown "^2.0.0" -es-to-primitive@^1.2.1: +es-to-primitive@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz#96c89c82cc49fd8794a24835ba3e1ff87f214e18" integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== @@ -6562,11 +6568,11 @@ eslint-config-expo@^7.1.2: eslint-plugin-react-hooks "^4.6.0" eslint-config-next@latest: - version "15.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-15.1.0.tgz#25a9a076b059905fd0cf3f6f832771724dfcbbdf" - integrity sha512-gADO+nKVseGso3DtOrYX9H7TxB/MuX7AUYhMlvQMqLYvUWu4HrOQuU7cC1HW74tHIqkAvXdwgAz3TCbczzSEXw== + version "15.1.2" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-15.1.2.tgz#203f771d77a0b4be3088fce5c954bfc9bebf7783" + integrity sha512-PrMm1/4zWSJ689wd/ypWIR5ZF1uvmp3EkgpgBV1Yu6PhEobBjXMGgT8bVNelwl17LXojO8D5ePFRiI4qXjsPRA== dependencies: - "@next/eslint-plugin-next" "15.1.0" + "@next/eslint-plugin-next" "15.1.2" "@rushstack/eslint-patch" "^1.10.3" "@typescript-eslint/eslint-plugin" "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0" "@typescript-eslint/parser" "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0" @@ -6804,16 +6810,16 @@ eslint@^8.0.1, eslint@^8.57.0: text-table "^0.2.0" eslint@latest: - version "9.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.16.0.tgz#66832e66258922ac0a626f803a9273e37747f2a6" - integrity sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA== + version "9.17.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.17.0.tgz#faa1facb5dd042172fdc520106984b5c2421bb0c" + integrity sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.12.1" "@eslint/config-array" "^0.19.0" "@eslint/core" "^0.9.0" "@eslint/eslintrc" "^3.2.0" - "@eslint/js" "9.16.0" + "@eslint/js" "9.17.0" "@eslint/plugin-kit" "^0.2.3" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" @@ -6822,7 +6828,7 @@ eslint@latest: "@types/json-schema" "^7.0.15" ajv "^6.12.4" chalk "^4.0.0" - cross-spawn "^7.0.5" + cross-spawn "^7.0.6" debug "^4.3.2" escape-string-regexp "^4.0.0" eslint-scope "^8.2.0" @@ -7275,9 +7281,9 @@ fast-uri@^3.0.1: integrity sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw== fast-xml-parser@^4.0.12, fast-xml-parser@^4.2.4: - version "4.5.0" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz#2882b7d01a6825dfdf909638f2de0256351def37" - integrity sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg== + version "4.5.1" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.5.1.tgz#a7e665ff79b7919100a5202f23984b6150f9b31e" + integrity sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w== dependencies: strnum "^1.0.5" @@ -7472,9 +7478,9 @@ flow-enums-runtime@^0.0.6: integrity sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw== flow-parser@0.*: - version "0.256.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.256.0.tgz#2a453925caa0f40beb83ef72ea6479ef7b25d739" - integrity sha512-HFb/GgB7hq+TYosLJuMLdLp8aGlyAVfrJaTvcM0w2rz2T33PjkVbRU419ncK/69cjowUksewuspkBheq9ZX9Hw== + version "0.257.1" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.257.1.tgz#1d563688f5c0b5a573ce380a86aa1cc2c44c65df" + integrity sha512-7+KYDpAXyBPD/wODhbPYO6IGUx+WwtJcLLG/r3DvbNyxaDyuYaTBKbSqeCldWQzuFcj+MsOVx2bpkEwVPB9JRw== follow-redirects@^1.15.6: version "1.15.9" @@ -7639,15 +7645,17 @@ function-bind@^1.1.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== +function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz#e68e1df7b259a5c949eeef95cdbde53edffabb78" + integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" functions-have-names "^1.2.3" + hasown "^2.0.2" + is-callable "^1.2.7" functions-have-names@^1.2.3: version "1.2.3" @@ -7669,19 +7677,21 @@ get-east-asian-width@^1.0.0: resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz#21b4071ee58ed04ee0db653371b55b4299875389" integrity sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ== -get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4, get-intrinsic@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.5.tgz#dfe7dd1b30761b464fe51bf4bb00ac7c37b681e7" - integrity sha512-Y4+pKa7XeRUPWFNvOOYHkRYrfzW07oraURSvjDmRVOJ748OrVmeXtpE4+GCEHncjCjkTxPNRt8kEbxDhsn6VTg== +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.6.tgz#43dd3dd0e7b49b82b2dfcad10dc824bf7fc265d5" + integrity sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA== dependencies: - call-bind-apply-helpers "^1.0.0" + call-bind-apply-helpers "^1.0.1" dunder-proto "^1.0.0" es-define-property "^1.0.1" es-errors "^1.3.0" + es-object-atoms "^1.0.0" function-bind "^1.1.2" gopd "^1.2.0" has-symbols "^1.1.0" hasown "^2.0.2" + math-intrinsics "^1.0.0" get-package-type@^0.1.0: version "0.1.0" @@ -7717,14 +7727,14 @@ get-stream@^8.0.1: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== -get-symbol-description@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" - integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== +get-symbol-description@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee" + integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== dependencies: - call-bind "^1.0.5" + call-bound "^1.0.3" es-errors "^1.3.0" - get-intrinsic "^1.2.4" + get-intrinsic "^1.2.6" get-tsconfig@^4.7.5: version "4.8.1" @@ -7877,7 +7887,7 @@ globby@^11.0.1, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -gopd@^1.0.1, gopd@^1.1.0, gopd@^1.2.0: +gopd@^1.0.1, gopd@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== @@ -7905,9 +7915,9 @@ graphql@15.8.0: integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.1.0.tgz#28607e965ac967e03cd2a2c70a2636a1edad49fe" + integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== has-flag@^3.0.0: version "3.0.0" @@ -7926,7 +7936,7 @@ has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: dependencies: es-define-property "^1.0.0" -has-proto@^1.0.3: +has-proto@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.2.0.tgz#5de5a6eabd95fdffd9818b43055e8065e39fe9d5" integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== @@ -8108,9 +8118,9 @@ ignore@^5.2.0, ignore@^5.3.1: integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== image-size@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.1.1.tgz#ddd67d4dc340e52ac29ce5f546a09f4e29e840ac" - integrity sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ== + version "1.2.0" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.2.0.tgz#312af27a2ff4ff58595ad00b9344dd684c910df6" + integrity sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w== dependencies: queue "6.0.2" @@ -8239,14 +8249,14 @@ internal-ip@4.3.0: default-gateway "^4.2.0" ipaddr.js "^1.9.0" -internal-slot@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" - integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== +internal-slot@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.1.0.tgz#1eac91762947d2f7056bc838d93e13b2e9604961" + integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== dependencies: es-errors "^1.3.0" - hasown "^2.0.0" - side-channel "^1.0.4" + hasown "^2.0.2" + side-channel "^1.1.0" interpret@^1.0.0: version "1.4.0" @@ -8271,20 +8281,21 @@ ipaddr.js@1.9.1, ipaddr.js@^1.9.0: integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.2.0.tgz#ad58c6aecf563b78ef2bf04df540da8f5d7d8e1b" + integrity sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" + call-bound "^1.0.2" + has-tostringtag "^1.0.2" -is-array-buffer@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" - integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== +is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz#65742e1e687bd2cc666253068fd8707fe4d44280" + integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" + call-bind "^1.0.8" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" is-arrayish@^0.2.1: version "0.2.1" @@ -8317,12 +8328,12 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.0.tgz#9743641e80a62c094b5941c5bb791d66a88e497a" - integrity sha512-kR5g0+dXf/+kXnqI+lu0URKYPKgICtHGGNCDSB10AaUFj3o/HkB3u7WfpRBJGFopxxY0oH3ux7ZsDjLtK7xqvw== +is-boolean-object@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.1.tgz#c20d0c654be05da4fbc23c562635c019e93daf89" + integrity sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.2" has-tostringtag "^1.0.2" is-buffer@~1.1.1, is-buffer@~1.1.6: @@ -8342,26 +8353,29 @@ is-callable@^1.1.3, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0, is-core-module@^2.15.1: - version "2.15.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" - integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== +is-core-module@^2.13.0, is-core-module@^2.15.1, is-core-module@^2.16.0: + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: hasown "^2.0.2" -is-data-view@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" - integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== +is-data-view@^1.0.1, is-data-view@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.2.tgz#bae0a41b9688986c2188dda6657e56b8f9e63b8e" + integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== dependencies: + call-bound "^1.0.2" + get-intrinsic "^1.2.6" is-typed-array "^1.1.13" -is-date-object@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== +is-date-object@^1.0.5, is-date-object@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz#ad85541996fc7aa8b2729701d27b7319f95d82f7" + integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.2" + has-tostringtag "^1.0.2" is-directory@^0.3.1: version "0.3.1" @@ -8384,11 +8398,11 @@ is-extglob@^2.1.1: integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-finalizationregistry@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz#d74a7d0c5f3578e34a20729e69202e578d495dc2" - integrity sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA== + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz#eefdcdc6c94ddd0674d9c85887bf93f944a97c90" + integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" is-fullwidth-code-point@^2.0.0: version "2.0.0" @@ -8463,17 +8477,12 @@ is-map@^2.0.3: resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== -is-negative-zero@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" - integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== - -is-number-object@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.0.tgz#5a867e9ecc3d294dda740d9f127835857af7eb05" - integrity sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw== +is-number-object@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz#144b21e95a1bc148205dcc2814a9134ec41b2541" + integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" has-tostringtag "^1.0.2" is-number@^7.0.0: @@ -8508,13 +8517,13 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-regex@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.0.tgz#41b9d266e7eb7451312c64efc37e8a7d453077cf" - integrity sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA== +is-regex@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22" + integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== dependencies: - call-bind "^1.0.7" - gopd "^1.1.0" + call-bound "^1.0.2" + gopd "^1.2.0" has-tostringtag "^1.0.2" hasown "^2.0.2" @@ -8523,12 +8532,12 @@ is-set@^2.0.3: resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== -is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" - integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== +is-shared-array-buffer@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz#9b67844bd9b7f246ba0708c3a93e34269c774f6f" + integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" is-stream@^1.1.0: version "1.1.0" @@ -8545,22 +8554,22 @@ is-stream@^3.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== -is-string@^1.0.7, is-string@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.0.tgz#8cb83c5d57311bf8058bc6c8db294711641da45d" - integrity sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g== +is-string@^1.0.7, is-string@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9" + integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" has-tostringtag "^1.0.2" -is-symbol@^1.0.4, is-symbol@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.0.tgz#ae993830a56d4781886d39f9f0a46b3e89b7b60b" - integrity sha512-qS8KkNNXUZ/I+nX6QT8ZS1/Yx0A444yhzdTKxCzKkNjQ9sHErBxJnJAgh+f5YhusYECEcjo4XcyH87hn6+ks0A== +is-symbol@^1.0.4, is-symbol@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.1.tgz#f47761279f532e2b05a7024a7506dbbedacd0634" + integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== dependencies: - call-bind "^1.0.7" - has-symbols "^1.0.3" - safe-regex-test "^1.0.3" + call-bound "^1.0.2" + has-symbols "^1.1.0" + safe-regex-test "^1.1.0" is-text-path@^2.0.0: version "2.0.0" @@ -8569,12 +8578,12 @@ is-text-path@^2.0.0: dependencies: text-extensions "^2.0.0" -is-typed-array@^1.1.13, is-typed-array@^1.1.3: - version "1.1.13" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" - integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== +is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15, is-typed-array@^1.1.3: + version "1.1.15" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" + integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== dependencies: - which-typed-array "^1.1.14" + which-typed-array "^1.1.16" is-typedarray@~1.0.0: version "1.0.0" @@ -8598,20 +8607,20 @@ is-weakmap@^2.0.2: resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== +is-weakref@^1.0.2, is-weakref@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.0.tgz#47e3472ae95a63fa9cf25660bcf0c181c39770ef" + integrity sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q== dependencies: - call-bind "^1.0.2" + call-bound "^1.0.2" is-weakset@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" - integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.4.tgz#c9f5deb0bc1906c6d6f1027f284ddf459249daca" + integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== dependencies: - call-bind "^1.0.7" - get-intrinsic "^1.2.4" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" is-wsl@^1.1.0: version "1.1.0" @@ -8708,16 +8717,17 @@ iterare@1.2.1: resolved "https://registry.yarnpkg.com/iterare/-/iterare-1.2.1.tgz#139c400ff7363690e33abffa33cbba8920f00042" integrity sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q== -iterator.prototype@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.3.tgz#016c2abe0be3bbdb8319852884f60908ac62bf9c" - integrity sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ== +iterator.prototype@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.4.tgz#4ae6cf98b97fdc717b7e159d79dc25f8fc9482f1" + integrity sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA== dependencies: - define-properties "^1.2.1" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - reflect.getprototypeof "^1.0.4" - set-function-name "^2.0.1" + define-data-property "^1.1.4" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.6" + has-symbols "^1.1.0" + reflect.getprototypeof "^1.0.8" + set-function-name "^2.0.2" jackspeak@^3.1.2: version "3.4.3" @@ -9507,10 +9517,10 @@ jimp-compact@0.16.1: resolved "https://registry.yarnpkg.com/jimp-compact/-/jimp-compact-0.16.1.tgz#9582aea06548a2c1e04dd148d7c3ab92075aefa3" integrity sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww== -jiti@^1.21.6: - version "1.21.6" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" - integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== +jiti@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.4.2.tgz#d19b7732ebb6116b06e2038da74a55366faef560" + integrity sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A== joi@^17.2.1: version "17.13.3" @@ -9529,9 +9539,9 @@ join-component@^1.1.0: integrity sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ== jotai@^2.9.0: - version "2.10.3" - resolved "https://registry.yarnpkg.com/jotai/-/jotai-2.10.3.tgz#5a9bbefde06fea5e4eed4677c2b0df6ab7c49b4f" - integrity sha512-Nnf4IwrLhNfuz2JOQLI0V/AgwcpxvVy8Ec8PidIIDeRi4KCFpwTFIpHAAcU+yCgnw/oASYElq9UY0YdUUegsSA== + version "2.10.4" + resolved "https://registry.yarnpkg.com/jotai/-/jotai-2.10.4.tgz#635f499c0fd0202f78c4d4115a71880f915ffdbd" + integrity sha512-/T4ofyMSkAybEs2OvR8S4HACa+/ASUEPLz86SUjFXJqU9RdJKLvZDJrag398suvHC5CR0+Cs4P5m/gtVcryzlw== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -9800,9 +9810,9 @@ levn@^0.4.1: type-check "~0.4.0" libphonenumber-js@^1.10.53: - version "1.11.16" - resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.11.16.tgz#3aa64a8a95ffc59253a5df3009940a9604a02102" - integrity sha512-Noyazmt0yOvnG0OeRY45Cd1ur8G7Z0HWVkuCuKe+yysGNxPQwBAODBQQ40j0AIagi9ZWurfmmZWNlpg4h4W+XQ== + version "1.11.17" + resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.11.17.tgz#37ddbf16dc4dd45c723a150996c253c58dad034b" + integrity sha512-Jr6v8thd5qRlOlc6CslSTzGzzQW03uiscab7KHQZX1Dfo4R6n6FDhZ0Hri6/X7edLIDv9gl4VMZXhxTjLnl0VQ== lighthouse-logger@^1.0.0: version "1.4.2" @@ -10151,6 +10161,11 @@ marky@^1.2.2: resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.5.tgz#55796b688cbd72390d2d399eaaf1832c9413e3c0" integrity sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q== +math-intrinsics@^1.0.0, math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + md5-file@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/md5-file/-/md5-file-3.2.3.tgz#f9bceb941eca2214a4c0727f5e700314e770f06f" @@ -10727,7 +10742,7 @@ node-emoji@1.11.0: dependencies: lodash "^4.17.21" -node-fetch@^2.2.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: +node-fetch@^2.2.0, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7, node-fetch@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== @@ -10744,7 +10759,7 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.18: +node-releases@^2.0.19: version "2.0.19" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== @@ -10839,14 +10854,16 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.4, object.assign@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== +object.assign@^4.1.4, object.assign@^4.1.7: + version "4.1.7" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d" + integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== dependencies: - call-bind "^1.0.5" + call-bind "^1.0.8" + call-bound "^1.0.3" define-properties "^1.2.1" - has-symbols "^1.0.3" + es-object-atoms "^1.0.0" + has-symbols "^1.1.0" object-keys "^1.1.1" object.entries@^1.1.8: @@ -10878,11 +10895,12 @@ object.groupby@^1.0.3: es-abstract "^1.23.2" object.values@^1.1.6, object.values@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" - integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + version "1.2.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216" + integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" define-properties "^1.2.1" es-object-atoms "^1.0.0" @@ -11431,7 +11449,7 @@ prettier@^2.3.2: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== -prettier@^3.3.2: +prettier@^3.3.2, prettier@^3.4.2: version "3.4.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.4.2.tgz#a5ce1fb522a588bf2b78ca44c6e6fe5aa5a2b13f" integrity sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ== @@ -11955,19 +11973,19 @@ reflect-metadata@^0.1.13: resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.14.tgz#24cf721fe60677146bb77eeb0e1f9dece3d65859" integrity sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A== -reflect.getprototypeof@^1.0.4, reflect.getprototypeof@^1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.8.tgz#c58afb17a4007b4d1118c07b92c23fca422c5d82" - integrity sha512-B5dj6usc5dkk8uFliwjwDHM8To5/QwdKz9JcBZ8Ic4G1f0YmeeJTtE/ZTdgRFPAfxZFiUaPhZ1Jcs4qeagItGQ== +reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.8, reflect.getprototypeof@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.9.tgz#c905f3386008de95a62315f3ea8630404be19e2f" + integrity sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q== dependencies: call-bind "^1.0.8" define-properties "^1.2.1" - dunder-proto "^1.0.0" - es-abstract "^1.23.5" + dunder-proto "^1.0.1" + es-abstract "^1.23.6" es-errors "^1.3.0" - get-intrinsic "^1.2.4" + get-intrinsic "^1.2.6" gopd "^1.2.0" - which-builtin-type "^1.2.0" + which-builtin-type "^1.2.1" regenerate-unicode-properties@^10.2.0: version "10.2.0" @@ -11996,7 +12014,7 @@ regenerator-runtime@^0.14.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== -regexp.prototype.flags@^1.5.2, regexp.prototype.flags@^1.5.3: +regexp.prototype.flags@^1.5.3: version "1.5.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42" integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== @@ -12114,11 +12132,11 @@ resolve.exports@^2.0.0, resolve.exports@^2.0.2: integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A== resolve@^1.1.6, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.2, resolve@^1.22.4: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + version "1.22.10" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" + integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== dependencies: - is-core-module "^2.13.0" + is-core-module "^2.16.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -12212,14 +12230,15 @@ rxjs@7.8.1, rxjs@^7.2.0, rxjs@^7.5.1, rxjs@^7.5.5: dependencies: tslib "^2.1.0" -safe-array-concat@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" - integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== +safe-array-concat@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz#c9e54ec4f603b0bbb8e7e5007a5ee7aecd1538c3" + integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== dependencies: - call-bind "^1.0.7" - get-intrinsic "^1.2.4" - has-symbols "^1.0.3" + call-bind "^1.0.8" + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + has-symbols "^1.1.0" isarray "^2.0.5" safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: @@ -12232,14 +12251,14 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-regex-test@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" - integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== +safe-regex-test@^1.0.3, safe-regex-test@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz#7f87dfb67a3150782eaaf18583ff5d1711ac10c1" + integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== dependencies: - call-bind "^1.0.6" + call-bound "^1.0.2" es-errors "^1.3.0" - is-regex "^1.1.4" + is-regex "^1.2.1" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" @@ -12281,7 +12300,7 @@ schema-utils@^3.1.1, schema-utils@^3.1.2: ajv "^6.12.5" ajv-keywords "^3.5.2" -schema-utils@^4.0.1: +schema-utils@^4.0.1, schema-utils@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.0.tgz#3b669f04f71ff2dfb5aba7ce2d5a9d79b35622c0" integrity sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g== @@ -12357,7 +12376,7 @@ serialize-error@^2.1.0: resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a" integrity sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw== -serialize-javascript@^6.0.1: +serialize-javascript@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== @@ -12406,7 +12425,7 @@ set-function-length@^1.2.2: gopd "^1.0.1" has-property-descriptors "^1.0.2" -set-function-name@^2.0.1, set-function-name@^2.0.2: +set-function-name@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== @@ -12505,7 +12524,7 @@ side-channel-weakmap@^1.0.2: object-inspect "^1.13.3" side-channel-map "^1.0.1" -side-channel@^1.0.4, side-channel@^1.0.6: +side-channel@^1.0.4, side-channel@^1.0.6, side-channel@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== @@ -12843,22 +12862,23 @@ string.prototype.includes@^2.0.1: es-abstract "^1.23.3" string.prototype.matchall@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a" - integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg== + version "4.0.12" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz#6c88740e49ad4956b1332a911e949583a275d4c0" + integrity sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" define-properties "^1.2.1" - es-abstract "^1.23.2" + es-abstract "^1.23.6" es-errors "^1.3.0" es-object-atoms "^1.0.0" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.7" - regexp.prototype.flags "^1.5.2" + get-intrinsic "^1.2.6" + gopd "^1.2.0" + has-symbols "^1.1.0" + internal-slot "^1.1.0" + regexp.prototype.flags "^1.5.3" set-function-name "^2.0.2" - side-channel "^1.0.6" + side-channel "^1.1.0" string.prototype.repeat@^1.0.0: version "1.0.0" @@ -12868,17 +12888,20 @@ string.prototype.repeat@^1.0.0: define-properties "^1.1.3" es-abstract "^1.17.5" -string.prototype.trim@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" - integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== +string.prototype.trim@^1.2.10: + version "1.2.10" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz#40b2dd5ee94c959b4dcfb1d65ce72e90da480c81" + integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.2" + define-data-property "^1.1.4" define-properties "^1.2.1" - es-abstract "^1.23.0" + es-abstract "^1.23.5" es-object-atoms "^1.0.0" + has-property-descriptors "^1.0.2" -string.prototype.trimend@^1.0.8: +string.prototype.trimend@^1.0.8, string.prototype.trimend@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942" integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== @@ -13191,17 +13214,17 @@ terminal-link@^2.0.0, terminal-link@^2.1.1: supports-hyperlinks "^2.0.0" terser-webpack-plugin@^5.3.7: - version "5.3.10" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" - integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== + version "5.3.11" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz#93c21f44ca86634257cac176f884f942b7ba3832" + integrity sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ== dependencies: - "@jridgewell/trace-mapping" "^0.3.20" + "@jridgewell/trace-mapping" "^0.3.25" jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.1" - terser "^5.26.0" + schema-utils "^4.3.0" + serialize-javascript "^6.0.2" + terser "^5.31.1" -terser@^5.15.0, terser@^5.26.0: +terser@^5.15.0, terser@^5.31.1: version "5.37.0" resolved "https://registry.yarnpkg.com/terser/-/terser-5.37.0.tgz#38aa66d1cfc43d0638fab54e43ff8a4f72a21ba3" integrity sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA== @@ -13272,17 +13295,17 @@ tinyexec@^0.3.0: resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.1.tgz#0ab0daf93b43e2c211212396bdb836b468c97c98" integrity sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ== -tldts-core@^6.1.66: - version "6.1.66" - resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.66.tgz#78f823137876f80bf8986028e8839473c2d114af" - integrity sha512-s07jJruSwndD2X8bVjwioPfqpIc1pDTzszPe9pL1Skbh4bjytL85KNQ3tolqLbCvpQHawIsGfFi9dgerWjqW4g== +tldts-core@^6.1.69: + version "6.1.69" + resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.69.tgz#079ffcac8a4407bc74567e292aecf30b943674e1" + integrity sha512-nygxy9n2PBUFQUtAXAc122gGo+04/j5qr5TGQFZTHafTKYvmARVXt2cA5rgero2/dnXUfkdPtiJoKmrd3T+wdA== tldts@^6.1.32: - version "6.1.66" - resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.66.tgz#34cb048acf51964c8f66139284a4c863d8150bb2" - integrity sha512-l3ciXsYFel/jSRfESbyKYud1nOw7WfhrBEF9I3UiarYk/qEaOOwu3qXNECHw4fHGHGTEOuhf/VdKgoDX5M/dhQ== + version "6.1.69" + resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.69.tgz#0fe1fcb1ad09510459693e72f96062cee2411f1f" + integrity sha512-Oh/CqRQ1NXNY7cy9NkTPUauOWiTro0jEYZTioGbOmcQh6EC45oribyIMJp0OJO3677r13tO6SKdWoGZUx2BDFw== dependencies: - tldts-core "^6.1.66" + tldts-core "^6.1.69" tmp@^0.0.33: version "0.0.33" @@ -13546,40 +13569,40 @@ type-is@^1.6.4, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" -typed-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" - integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== +typed-array-buffer@^1.0.2, typed-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" + integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" es-errors "^1.3.0" - is-typed-array "^1.1.13" + is-typed-array "^1.1.14" -typed-array-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" - integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== +typed-array-byte-length@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz#8407a04f7d78684f3d252aa1a143d2b77b4160ce" + integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.14" -typed-array-byte-offset@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz#3fa9f22567700cc86aaf86a1e7176f74b59600f2" - integrity sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw== +typed-array-byte-offset@^1.0.2, typed-array-byte-offset@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355" + integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== dependencies: available-typed-arrays "^1.0.7" - call-bind "^1.0.7" + call-bind "^1.0.8" for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - reflect.getprototypeof "^1.0.6" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.15" + reflect.getprototypeof "^1.0.9" -typed-array-length@^1.0.6: +typed-array-length@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.7.tgz#ee4deff984b64be1e118b0de8c9c877d5ce73d3d" integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== @@ -13624,9 +13647,9 @@ typescript@~5.3.3: integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== ua-parser-js@^1.0.35: - version "1.0.39" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.39.tgz#bfc07f361549bf249bd8f4589a4cccec18fd2018" - integrity sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw== + version "1.0.40" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.40.tgz#ac6aff4fd8ea3e794a6aa743ec9c2fc29e75b675" + integrity sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew== uid@2.0.2: version "2.0.2" @@ -13635,15 +13658,15 @@ uid@2.0.2: dependencies: "@lukeed/csprng" "^1.0.0" -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== +unbox-primitive@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2" + integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== dependencies: - call-bind "^1.0.2" + call-bound "^1.0.3" has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" + has-symbols "^1.1.0" + which-boxed-primitive "^1.1.1" undici-types@~5.26.4: version "5.26.5" @@ -14020,35 +14043,35 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which-boxed-primitive@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.0.tgz#2d850d6c4ac37b95441a67890e19f3fda8b6c6d9" - integrity sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng== +which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz#d76ec27df7fa165f18d5808374a5fe23c29b176e" + integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== dependencies: is-bigint "^1.1.0" - is-boolean-object "^1.2.0" - is-number-object "^1.1.0" - is-string "^1.1.0" - is-symbol "^1.1.0" + is-boolean-object "^1.2.1" + is-number-object "^1.1.1" + is-string "^1.1.1" + is-symbol "^1.1.1" -which-builtin-type@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.0.tgz#58042ac9602d78a6d117c7e811349df1268ba63c" - integrity sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA== +which-builtin-type@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz#89183da1b4907ab089a6b02029cc5d8d6574270e" + integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.2" function.prototype.name "^1.1.6" has-tostringtag "^1.0.2" is-async-function "^2.0.0" - is-date-object "^1.0.5" + is-date-object "^1.1.0" is-finalizationregistry "^1.1.0" is-generator-function "^1.0.10" - is-regex "^1.1.4" + is-regex "^1.2.1" is-weakref "^1.0.2" isarray "^2.0.5" - which-boxed-primitive "^1.0.2" + which-boxed-primitive "^1.1.0" which-collection "^1.0.2" - which-typed-array "^1.1.15" + which-typed-array "^1.1.16" which-collection@^1.0.2: version "1.0.2" @@ -14065,15 +14088,16 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== -which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.2: - version "1.1.16" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.16.tgz#db4db429c4706feca2f01677a144278e4a8c216b" - integrity sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ== +which-typed-array@^1.1.15, which-typed-array@^1.1.16, which-typed-array@^1.1.18, which-typed-array@^1.1.2: + version "1.1.18" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.18.tgz#df2389ebf3fbb246a71390e90730a9edb6ce17ad" + integrity sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA== dependencies: available-typed-arrays "^1.0.7" - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" for-each "^0.3.3" - gopd "^1.0.1" + gopd "^1.2.0" has-tostringtag "^1.0.2" which@^1.2.9: