-
{currentUser.firstname + ' ' + currentUser.lastname}
+
+
{currentUser ? `${currentUser.firstname} ${currentUser.lastname}` : 'Guest User'}
+ {/*
{currentUser.firstname + ' ' + currentUser.lastname}
*/}
+
{title}
{recipes.map(recipe => (
- <>
+
-
+
{recipe.name}
- >)
+ )
)}
diff --git a/client/src/components/SortSelect.jsx b/client/src/components/SortSelect.jsx
index f55683e..c6115eb 100644
--- a/client/src/components/SortSelect.jsx
+++ b/client/src/components/SortSelect.jsx
@@ -1,4 +1,4 @@
-import { useState } from "react";
+
export function SortSelect ({setSorting}) {
return (
diff --git a/client/src/components/Upload.jsx b/client/src/components/Upload.jsx
index 94eb294..1c61459 100644
--- a/client/src/components/Upload.jsx
+++ b/client/src/components/Upload.jsx
@@ -4,11 +4,11 @@ import { Input } from "./common/Input";
import { Instruction } from "./Instruction";
import { uploadImage, uploadRecipe, updateUploaded } from "../ApiClient";
import { FileUpload } from "./FileUpload";
-import { AuthContext } from '../App';
+import { AuthContex } from "../context/AuthContext";
// ! General component: i know this file is a mess, but the tracking the form state and validation stressed me a lot.
export function Upload () {
- const currentUser = useContext(AuthContext);
+ const currentUser = useContext(AuthContex);
const [numOfIngredients, setNumOfIngredients] = useState(1);
const [numOfInstructions, setNumOfInstructions] = useState(1);
diff --git a/client/src/components/recipedetailspage/GeneralCard.jsx b/client/src/components/recipedetailspage/GeneralCard.jsx
deleted file mode 100644
index 41dbe63..0000000
--- a/client/src/components/recipedetailspage/GeneralCard.jsx
+++ /dev/null
@@ -1,63 +0,0 @@
-import { Rating } from '../Rating';
-import { Link } from 'react-router';
-import { useContext, useEffect, useState } from "react";
-import { AuthContext } from '../../App';
-import {updateFavorites} from '../../ApiClient';
-
-export function GeneralCard ({recipe}) {
-
- const currentUser = useContext(AuthContext);
- const [favorite, setFavorite] = useState(false);
-
- useEffect(() => {
- if (currentUser.favoriteRecipes) {
- console.log(favorite)
- console.log(currentUser)
- const isFavorite = currentUser.favoriteRecipes.some(
- favoriteRecipe => favoriteRecipe._id === recipe._id
- );
- setFavorite(isFavorite);
- }
- }, [currentUser]);
-
- function formatCookingTime (time) {
- const minutes = time%60;
- const hours = (time-minutes)/60;
-
- return (hours > 0 ? hours + 'h ' : '') + (minutes > 0 ? minutes + 'min' : '');
- }
-
- async function handleFavorite () {
- const newFavoriteStatus = !favorite;
- setFavorite(newFavoriteStatus);
- await updateFavorites(currentUser, recipe, newFavoriteStatus);
- }
-
- return (
- <>
-
-
-
-
-
-
-
{recipe.name}
-
- {recipe.category}
-
-
-
{formatCookingTime(recipe.cookingTimeInMinutes)}
-
-
-
-
-
- {favorite ? 'Remove from favorites' : 'Add to favorites'}
-
-
-
-
-
- >
- )
-}
diff --git a/client/src/components/recipedetailspage/GeneralCard.tsx b/client/src/components/recipedetailspage/GeneralCard.tsx
new file mode 100644
index 0000000..5f22d79
--- /dev/null
+++ b/client/src/components/recipedetailspage/GeneralCard.tsx
@@ -0,0 +1,84 @@
+import React from "react";
+import { Rating } from "../Rating";
+import { Link } from "react-router";
+import { useContext, useEffect, useState } from "react";
+import { AuthContex } from "../../context/AuthContext";
+import { updateFavorites } from "../../ApiClient";
+import { GeneralCardProps } from "../../types";
+import { User } from "../../types";
+
+export function GeneralCard({ recipe }: GeneralCardProps) {
+ const currentUser = useContext(AuthContex) as User | null;
+ const [favorite, setFavorite] = useState(false);
+
+ useEffect(() => {
+ if (currentUser && currentUser.favoriteRecipes) {
+ // Add validation for currentUser
+ console.log(favorite);
+ console.log(currentUser);
+ const isFavorite = currentUser.favoriteRecipes.some(
+ (favoriteRecipe) => favoriteRecipe._id === recipe._id
+ );
+ setFavorite(isFavorite);
+ }
+ }, [currentUser]);
+
+ function formatCookingTime(time: number): string {
+ const minutes = time % 60;
+ const hours = (time - minutes) / 60;
+
+ return (
+ (hours > 0 ? hours + "h " : "") + (minutes > 0 ? minutes + "min" : "")
+ );
+ }
+
+ async function handleFavorite() {
+ if (!currentUser) return;
+ const newFavoriteStatus = !favorite;
+ setFavorite(newFavoriteStatus);
+ await updateFavorites(currentUser, recipe, newFavoriteStatus);
+ }
+
+ return (
+ <>
+
+
+
+
+
+
+
{recipe.name}
+
+
+ {recipe.category}
+
+
+
+
+ {formatCookingTime(recipe.cookingTimeInMinutes)}
+
+
+
+
+
+
+ {favorite ? "Remove from favorites" : "Add to favorites"}
+
+
+
+
+
+ >
+ );
+}
diff --git a/client/src/components/recipedetailspage/Ingredients.jsx b/client/src/components/recipedetailspage/Ingredients.jsx
deleted file mode 100644
index 59998e9..0000000
--- a/client/src/components/recipedetailspage/Ingredients.jsx
+++ /dev/null
@@ -1,19 +0,0 @@
-export function Ingredients ({ingredients}) {
- return (
- <>
-
-
Ingredients
-
-
-
- {ingredients.map((ingredient, index) => {
- return 0 ? 'border-t border-t-solid' : '') + ' flex gap-2 p-2'}>
- {ingredient.measure}
- {ingredient.ingredient}
-
- })}
-
-
- >
- )
-}
\ No newline at end of file
diff --git a/client/src/components/recipedetailspage/Ingredients.tsx b/client/src/components/recipedetailspage/Ingredients.tsx
new file mode 100644
index 0000000..d00efe3
--- /dev/null
+++ b/client/src/components/recipedetailspage/Ingredients.tsx
@@ -0,0 +1,40 @@
+import React from "react";
+
+// Define the type for a single ingredient
+type Ingredient = {
+ measure: string; // Measurement
+ ingredient: string; // Ingredient name
+};
+
+type IngredientsProps = {
+ ingredients: Ingredient[]; // Ingredients is an array of strings
+};
+
+export function Ingredients({ ingredients }: IngredientsProps) {
+ return (
+ <>
+
+
+ Ingredients
+
+
+
+ {ingredients.map((ingredient, index) => {
+ return (
+ 0 ? "border-t border-t-solid" : "") +
+ " flex gap-2 p-2"
+ }
+ >
+ {ingredient.measure}
+ {ingredient.ingredient}
+
+ );
+ })}
+
+
+ >
+ );
+}
diff --git a/client/src/components/recipedetailspage/Instructions.jsx b/client/src/components/recipedetailspage/Instructions.jsx
deleted file mode 100644
index 82b76a7..0000000
--- a/client/src/components/recipedetailspage/Instructions.jsx
+++ /dev/null
@@ -1,21 +0,0 @@
-export function Instructions ({instructions}) {
- return (
- <>
-
-
Instructions
-
-
-
- {instructions.map((instruction, index) => (
- <>
-
- {'Step ' + (index+1)}
- {instruction}
-
- >
- ))}
-
-
- >
- )
-}
\ No newline at end of file
diff --git a/client/src/components/recipedetailspage/Instructions.tsx b/client/src/components/recipedetailspage/Instructions.tsx
new file mode 100644
index 0000000..9fca019
--- /dev/null
+++ b/client/src/components/recipedetailspage/Instructions.tsx
@@ -0,0 +1,31 @@
+import React from "react";
+
+type InstructionsProps = {
+ instructions: string[]; // Instructions is an array of strings
+};
+
+export function Instructions({ instructions }: InstructionsProps) {
+ return (
+ <>
+
+
+ Instructions
+
+
+
+ {instructions.map((instruction, index) => (
+
+
+ {"Step " + (index + 1)}
+
+ {instruction}
+
+ ))}
+
+
+ >
+ );
+}
diff --git a/client/src/components/recipedetailspage/RecipeDetailsPage.jsx b/client/src/components/recipedetailspage/RecipeDetailsPage.jsx
deleted file mode 100644
index fdc90e6..0000000
--- a/client/src/components/recipedetailspage/RecipeDetailsPage.jsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import { useEffect, useState } from 'react';
-import { useParams } from 'react-router';
-import { getRecipe } from '../../ApiClient';
-import { GeneralCard } from './GeneralCard';
-import { Ingredients } from './Ingredients';
-import { Instructions } from './Instructions';
-import { Reviews } from './Reviews';
-
-export function RecipeDetailsPage () {
- const { recipeId } = useParams();
- const [recipe, setRecipe] = useState(null);
- useEffect(() => {
- getRecipe(recipeId)
- .then(data => setRecipe(data))
- .catch(e => console.log(e));
- }, [recipeId]);
-
- if (!recipe) {
- return (Loading...
)
- }
-
- return (
- <>
-
-
-
-
- review.message.trim() !== '')}/>
-
- >
- );
-};
\ No newline at end of file
diff --git a/client/src/components/recipedetailspage/RecipeDetailsPage.tsx b/client/src/components/recipedetailspage/RecipeDetailsPage.tsx
new file mode 100644
index 0000000..2ade0d1
--- /dev/null
+++ b/client/src/components/recipedetailspage/RecipeDetailsPage.tsx
@@ -0,0 +1,39 @@
+import React from "react";
+import { useEffect, useState } from "react";
+import { useParams } from "react-router";
+import { getRecipe } from "../../ApiClient";
+import { GeneralCard } from "./GeneralCard";
+import { Ingredients } from "./Ingredients";
+import { Instructions } from "./Instructions";
+import { Reviews } from "./Reviews";
+import { Recipe } from "../../types";
+
+export function RecipeDetailsPage() {
+ const { recipeId } = useParams<{ recipeId: string }>();
+ const [recipe, setRecipe] = useState(null);
+
+ useEffect(() => {
+ getRecipe(recipeId)
+ .then((data) => setRecipe(data))
+ .catch((e) => console.log(e));
+ }, [recipeId]);
+
+ if (!recipe) {
+ return Loading...
;
+ }
+
+ return (
+ <>
+
+
+
+
+ review.message.trim() !== ""
+ )}
+ />
+
+ >
+ );
+}
diff --git a/client/src/components/recipedetailspage/Reviews.jsx b/client/src/components/recipedetailspage/Reviews.jsx
deleted file mode 100644
index c185905..0000000
--- a/client/src/components/recipedetailspage/Reviews.jsx
+++ /dev/null
@@ -1,81 +0,0 @@
-import { useContext, useState } from "react";
-import { Rating } from "../Rating";
-import { AuthContext } from "../../App";
-import { rateAndReview } from "../../ApiClient";
-import { useParams } from "react-router";
-import { Checkbox } from "../common/Checkbox";
-
-export function Reviews ({reviews}) {
- const {recipeId} = useParams();
- const currentUser = useContext(AuthContext);
-
- function formatDate (timestamp) {
- const date = timestamp.split('T')[0];
- return date.split('-').reverse().join('.');
- }
-
- const [review, setReview] = useState('');
- const [rating, setRating] = useState(0);
- const [onlyRating, setOnlyRating] = useState(false);
-
- async function handleSubmit (event) {
- event.preventDefault();
-
- const newReview = {
- author: currentUser.firstname + ' ' + currentUser.lastname,
- message: review,
- rating: rating,
- timestamp: (new Date()).toISOString()
- };
- await rateAndReview(recipeId, newReview);
- }
-
- function validate() {
- if (onlyRating && rating===0) return true;
- else if(!onlyRating && (rating===0 || review.trim() === '')) return true;
- return false;
- }
-
- function handleChange (event) {
- const newVal = event.target.checked;
- setOnlyRating(newVal);
- }
- return (
- <>
-
-
Reviews
-
-
- {reviews.map((review, index) => {
- return (
- <>
-
-
- {review.author}
- {formatDate(review.timestamp)}
-
-
{review.message}
-
- >
- )})}
-
-
- >
- )
-}
\ No newline at end of file
diff --git a/client/src/components/recipedetailspage/Reviews.tsx b/client/src/components/recipedetailspage/Reviews.tsx
new file mode 100644
index 0000000..9005401
--- /dev/null
+++ b/client/src/components/recipedetailspage/Reviews.tsx
@@ -0,0 +1,108 @@
+import React, { FormEvent, useState, useContext } from "react";
+import { Rating } from "../Rating";
+import { AuthContex } from "../../context/AuthContext";
+import { rateAndReview } from "../../ApiClient";
+import { useParams } from "react-router";
+import { Checkbox } from "../common/Checkbox";
+import { NewReview, ReviewsProps } from "../../types";
+
+export function Reviews({ reviews }: ReviewsProps) {
+ const { recipeId } = useParams<{ recipeId: string }>();
+ const currentUser = useContext(AuthContex);
+
+ const [review, setReview] = useState("");
+ const [rating, setRating] = useState(0);
+ const [onlyRating, setOnlyRating] = useState(false);
+
+ const handleChange = (event: React.ChangeEvent) => {
+ const newVal = event.target.checked;
+ setOnlyRating(newVal);
+ };
+
+ function formatDate(timestamp: string) {
+ const date = timestamp.split("T")[0];
+ return date.split("-").reverse().join(".");
+ }
+
+ async function handleSubmit(event: FormEvent) {
+ event.preventDefault();
+ if (!currentUser) return;
+
+ const newReview: NewReview = {
+ // author: `${currentUser.firstname} ${currentUser.lastname}`,
+ recipeId: recipeId as string,
+ message: review,
+ rating: rating,
+ // timestamp: (new Date()).toISOString()
+ };
+ await rateAndReview(recipeId, newReview);
+ setReview("");
+ setRating(0);
+ setOnlyRating(false);
+ }
+
+ function validate() {
+ if (onlyRating && rating === 0) return true;
+ else if (!onlyRating && (rating === 0 || review.trim() === "")) return true;
+ return false;
+ }
+
+ return (
+ <>
+
+
+ Reviews
+
+
+
+ Here you can rate the recipe and give feedback to the creator and
+ other users. You can also rate the recipe without writing a review.
+
+
+
+ setReview(event.target.value)}
+ className={
+ (onlyRating ? "hidden" : "block") +
+ " outline-none rounded-md px-1"
+ }
+ >
+
+ {!onlyRating ? "Post review" : "Rate without Review"}
+
+
+
+ {reviews.map((review, index) => {
+ return (
+ <>
+
+
+ {review.author}
+ {formatDate(review.timestamp)}
+
+
{review.message}
+
+ >
+ );
+ })}
+
+
+ >
+ );
+}
diff --git a/client/src/context/AuthContext.ts b/client/src/context/AuthContext.ts
new file mode 100644
index 0000000..5f8db27
--- /dev/null
+++ b/client/src/context/AuthContext.ts
@@ -0,0 +1,12 @@
+import { User } from "../types";
+import { createContext } from "react";
+
+export const AuthContex = createContext({
+ id: '',
+ firstname: 'Guest',
+ lastname: 'User',
+ email: '',
+ image: 'default',
+ favoriteRecipes: [],
+ uploadedRecipes: []
+});
\ No newline at end of file
diff --git a/client/src/hooks/useFetchData.ts b/client/src/hooks/useFetchData.ts
new file mode 100644
index 0000000..c326174
--- /dev/null
+++ b/client/src/hooks/useFetchData.ts
@@ -0,0 +1,36 @@
+import { useEffect, useState } from "react"
+import { Category, Recipe, User } from "../types"
+import { getCategories, getLatestRecipes, login } from "../ApiClient";
+
+
+export const useFetchData = () => {
+ const [categories, setCaregories] =useState([]);
+ const [latestRecipes, setLatestRecipes] = useState([]);
+ const [currentUser, setCurrentUser] = useState(null);
+
+ useEffect(() => {
+
+ getCategories()
+ .then(setCaregories)
+ .catch((err) => console.error("Error fetching categories:", err));
+
+ getLatestRecipes()
+ .then(setLatestRecipes)
+ .catch((err) => console.error('Error fetching recipes:', err));
+
+ login({email: 'zappe.thomson@test.com', password: 'Test123!'})
+ .then(setCurrentUser)
+ .catch((err) => console.error('Error logging:', err));
+
+ console.log(`
+ π Starting the Cooksphere app!
+ β¨ Shoutout to Burak for the incredible work on this project!
+ β οΈ The only reason we are making changes is because CodeWorks demands it.
+ If it were up to us, I'd leave this masterpiece untouched. π
+ Let's call this "forced improvement." π
+ `);
+ }, []);
+
+ return { categories, latestRecipes, currentUser}
+
+}
\ No newline at end of file
diff --git a/client/src/main.jsx b/client/src/main.jsx
index 81def89..5ae5d89 100644
--- a/client/src/main.jsx
+++ b/client/src/main.jsx
@@ -1,7 +1,7 @@
import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import './index.css'
-import App from './App.jsx'
+import App from './App.tsx'
import { BrowserRouter } from "react-router";
createRoot(document.getElementById('root')).render(
diff --git a/client/src/types.d.ts b/client/src/types.d.ts
new file mode 100644
index 0000000..e624525
--- /dev/null
+++ b/client/src/types.d.ts
@@ -0,0 +1,63 @@
+
+export interface Category {
+ id: number;
+ name: string;
+}
+
+export interface Recipe {
+ recipeId: string;
+ id: string;
+ name: string;
+ category: string;
+ instructions: string[];
+ image: string;
+ tags: string[];
+ ingredients: { ingredient: string; measure: string }[];
+ cookingTimeInMinutes: number;
+ rating: number;
+ reviews: {
+ author: string;
+ message: string;
+ rating: number;
+ timestamp: Date;
+ }[];
+}
+
+export interface User {
+ id: string;
+ firstname: string;
+ lastname: string;
+ email: string;
+ image: string;
+ favoriteRecipes: any[];
+ uploadedRecipes: any[];
+}
+
+export interface Review {
+ author: Author;
+ message: string;
+ rating: number;
+ timestamp: string;
+ likesCount?: number;
+}
+
+export interface NewReview {
+ recipeId: string;
+ message: string;
+ rating: number;
+ author?: string;
+ timestamp?: string;
+}
+
+export interface ReviewsProps {
+ reviews: Reviews[];
+}
+
+export interface AppRoutesProps {
+ categories: any[];
+ latestRecipes: any[];
+}
+
+export interface GeneralCardProps {
+ recipe: Recipe;
+}
\ No newline at end of file
diff --git a/client/tests/setup.ts b/client/tests/setup.ts
new file mode 100644
index 0000000..5a54682
--- /dev/null
+++ b/client/tests/setup.ts
@@ -0,0 +1 @@
+import '@testing-library/jest-dom'; // For jest-dom matchers like toBeInTheDocument
diff --git a/client/tsconfig.json b/client/tsconfig.json
new file mode 100644
index 0000000..4e5e639
--- /dev/null
+++ b/client/tsconfig.json
@@ -0,0 +1,113 @@
+{
+ "compilerOptions": {
+ /* Visit https://aka.ms/tsconfig to read more about this file */
+
+ /* Projects */
+ // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
+ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
+ // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
+ // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
+ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
+ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
+
+ /* Language and Environment */
+ "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
+ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
+ "jsx": "react", /* Specify what JSX code is generated. */
+ // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
+ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
+ // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
+ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
+ // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
+ // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
+ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
+ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
+ // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
+
+ /* Modules */
+ "module": "ESNext", /* Specify what module code is generated. */
+ // "rootDir": "./", /* Specify the root folder within your source files. */
+ // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
+ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
+ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
+ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
+ // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
+ // "types": [], /* Specify type package names to be included without being referenced in a source file. */
+ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
+ // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
+ // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */
+ // "rewriteRelativeImportExtensions": true, /* Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files. */
+ // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */
+ // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */
+ // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */
+ // "noUncheckedSideEffectImports": true, /* Check side effect imports. */
+ // "resolveJsonModule": true, /* Enable importing .json files. */
+ // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
+ // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */
+
+ /* JavaScript Support */
+ "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
+ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
+ // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
+
+ /* Emit */
+ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
+ // "declarationMap": true, /* Create sourcemaps for d.ts files. */
+ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
+ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */
+ // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
+ // "noEmit": true, /* Disable emitting files from a compilation. */
+ // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
+ // "outDir": "./", /* Specify an output folder for all emitted files. */
+ // "removeComments": true, /* Disable emitting comments. */
+ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
+ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
+ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
+ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
+ // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
+ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
+ // "newLine": "crlf", /* Set the newline character for emitting files. */
+ // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
+ // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
+ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
+ // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
+ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */
+
+ /* Interop Constraints */
+ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
+ // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */
+ // "isolatedDeclarations": true, /* Require sufficient annotation on exports so other tools can trivially generate declaration files. */
+ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
+ "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
+ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
+ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */
+
+ /* Type Checking */
+ "strict": true, /* Enable all strict type-checking options. */
+ // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
+ // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
+ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
+ // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
+ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
+ // "strictBuiltinIteratorReturn": true, /* Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'. */
+ // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
+ // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
+ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
+ // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
+ // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
+ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
+ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
+ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
+ // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
+ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
+ // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
+ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
+ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
+
+ /* Completeness */
+ // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
+ "skipLibCheck": true /* Skip type checking all .d.ts files. */
+ },
+ "include": ["src", "tests", "cypress.config.ts",
+ "cypress/**/*.ts", "cypress/**/*.cy.ts"]
+}
diff --git a/client/vite.config.js b/client/vite.config.ts
similarity index 62%
rename from client/vite.config.js
rename to client/vite.config.ts
index 8b0f57b..0d39a9b 100644
--- a/client/vite.config.js
+++ b/client/vite.config.ts
@@ -4,4 +4,9 @@ import react from '@vitejs/plugin-react'
// https://vite.dev/config/
export default defineConfig({
plugins: [react()],
+ test: {
+ globals: true,
+ environment: 'jsdom',
+ setupFiles: './tests/setup.ts',
+ },
})
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 1aa176c..ac5942f 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -1,36 +1,14 @@
import globals from "globals";
import pluginJs from "@eslint/js";
+import tseslint from "typescript-eslint";
import pluginReact from "eslint-plugin-react";
-import pluginNode from "eslint-plugin-n";
+
+/** @type {import('eslint').Linter.Config[]} */
export default [
- // Common configuration for all files
- {
- files: ["**/*.{js,mjs,cjs,jsx}"],
- ignores: ["node_modules/**", "server/node_modules/**", "server/node_modules/ipaddr.js"],
- languageOptions: {
- globals: { ...globals.browser, ...globals.node },
- },
- },
- // JavaScript recommended rules
+ {files: ["**/*.{js,mjs,cjs,ts,jsx,tsx}"]},
+ {languageOptions: { globals: globals.browser }},
pluginJs.configs.recommended,
- // React-specific rules
+ ...tseslint.configs.recommended,
pluginReact.configs.flat.recommended,
- // Node.js-specific rules
- {
- files: ["server/**/*.{js,mjs,cjs}"],
- plugins: { n: pluginNode },
- rules: {
- "n/no-unpublished-require": "off", // Example rule for Node.js
- "n/no-unsupported-features/es-syntax": "off",
- },
- },
- // React-specific overrides
- {
- files: ["client/**/*.{js,jsx}"],
- rules: {
- "react/react-in-jsx-scope": "off", // React 17+ doesn't require React in scope
- "react/prop-types": "off", // Turn off if not using prop-types
- },
- },
-];
+];
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index ca534bd..df7da75 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,13 +10,17 @@
"license": "ISC",
"devDependencies": {
"@babel/eslint-parser": "^7.25.9",
- "@eslint/js": "^9.17.0",
- "eslint": "^9.17.0",
+ "@eslint/js": "^9.18.0",
+ "@types/node": "^22.10.7",
+ "@types/react": "^19.0.7",
+ "@types/react-dom": "^19.0.3",
+ "eslint": "^9.18.0",
"eslint-plugin-n": "^17.15.1",
"eslint-plugin-node": "^11.1.0",
- "eslint-plugin-react": "^7.37.3",
+ "eslint-plugin-react": "^7.37.4",
"eslint-plugin-react-hooks": "^5.1.0",
- "globals": "^15.14.0"
+ "globals": "^15.14.0",
+ "typescript-eslint": "^8.21.0"
}
},
"node_modules/@ampproject/remapping": {
@@ -377,9 +381,9 @@
}
},
"node_modules/@eslint/core": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz",
- "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==",
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz",
+ "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -427,9 +431,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "9.17.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz",
- "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==",
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz",
+ "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==",
"dev": true,
"license": "MIT",
"engines": {
@@ -447,12 +451,13 @@
}
},
"node_modules/@eslint/plugin-kit": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz",
- "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==",
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz",
+ "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
+ "@eslint/core": "^0.10.0",
"levn": "^0.4.1"
},
"engines": {
@@ -617,6 +622,44 @@
"node": ">=4.0"
}
},
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/@types/estree": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
@@ -631,6 +674,255 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/node": {
+ "version": "22.10.7",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz",
+ "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.20.0"
+ }
+ },
+ "node_modules/@types/react": {
+ "version": "19.0.7",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.7.tgz",
+ "integrity": "sha512-MoFsEJKkAtZCrC1r6CM8U22GzhG7u2Wir8ons/aCKH6MBdD1ibV24zOSSkdZVUKqN5i396zG5VKLYZ3yaUZdLA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "19.0.3",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.3.tgz",
+ "integrity": "sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "^19.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "8.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.21.0.tgz",
+ "integrity": "sha512-eTH+UOR4I7WbdQnG4Z48ebIA6Bgi7WO8HvFEneeYBxG8qCOYgTOFPSg6ek9ITIDvGjDQzWHcoWHCDO2biByNzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.10.0",
+ "@typescript-eslint/scope-manager": "8.21.0",
+ "@typescript-eslint/type-utils": "8.21.0",
+ "@typescript-eslint/utils": "8.21.0",
+ "@typescript-eslint/visitor-keys": "8.21.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.3.1",
+ "natural-compare": "^1.4.0",
+ "ts-api-utils": "^2.0.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <5.8.0"
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "8.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.21.0.tgz",
+ "integrity": "sha512-Wy+/sdEH9kI3w9civgACwabHbKl+qIOu0uFZ9IMKzX3Jpv9og0ZBJrZExGrPpFAY7rWsXuxs5e7CPPP17A4eYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "8.21.0",
+ "@typescript-eslint/types": "8.21.0",
+ "@typescript-eslint/typescript-estree": "8.21.0",
+ "@typescript-eslint/visitor-keys": "8.21.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <5.8.0"
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "8.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.21.0.tgz",
+ "integrity": "sha512-G3IBKz0/0IPfdeGRMbp+4rbjfSSdnGkXsM/pFZA8zM9t9klXDnB/YnKOBQ0GoPmoROa4bCq2NeHgJa5ydsQ4mA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.21.0",
+ "@typescript-eslint/visitor-keys": "8.21.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "8.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.21.0.tgz",
+ "integrity": "sha512-95OsL6J2BtzoBxHicoXHxgk3z+9P3BEcQTpBKriqiYzLKnM2DeSqs+sndMKdamU8FosiadQFT3D+BSL9EKnAJQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "8.21.0",
+ "@typescript-eslint/utils": "8.21.0",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^2.0.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <5.8.0"
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "8.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.21.0.tgz",
+ "integrity": "sha512-PAL6LUuQwotLW2a8VsySDBwYMm129vFm4tMVlylzdoTybTHaAi0oBp7Ac6LhSrHHOdLM3efH+nAR6hAWoMF89A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "8.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.21.0.tgz",
+ "integrity": "sha512-x+aeKh/AjAArSauz0GiQZsjT8ciadNMHdkUSwBB9Z6PrKc/4knM4g3UfHml6oDJmKC88a6//cdxnO/+P2LkMcg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.21.0",
+ "@typescript-eslint/visitor-keys": "8.21.0",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.2",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^2.0.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <5.8.0"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "8.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.21.0.tgz",
+ "integrity": "sha512-xcXBfcq0Kaxgj7dwejMbFyq7IOHgpNMtVuDveK7w3ZGwG9owKzhALVwKpTF2yrZmEwl9SWdetf3fxNzJQaVuxw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@typescript-eslint/scope-manager": "8.21.0",
+ "@typescript-eslint/types": "8.21.0",
+ "@typescript-eslint/typescript-estree": "8.21.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <5.8.0"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.21.0.tgz",
+ "integrity": "sha512-BkLMNpdV6prozk8LlyK/SOoWLmUFi+ZD+pcqti9ILCbVvHGk1ui1g4jJOc2WDLaeExz2qWwojxlPce5PljcT3w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.21.0",
+ "eslint-visitor-keys": "^4.2.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
"node_modules/acorn": {
"version": "8.14.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
@@ -864,6 +1156,19 @@
"concat-map": "0.0.1"
}
},
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/browserslist": {
"version": "4.24.4",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
@@ -1047,6 +1352,13 @@
"node": ">= 8"
}
},
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/data-view-buffer": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
@@ -1408,19 +1720,19 @@
}
},
"node_modules/eslint": {
- "version": "9.17.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz",
- "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==",
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz",
+ "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==",
"dev": true,
"license": "MIT",
"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/core": "^0.10.0",
"@eslint/eslintrc": "^3.2.0",
- "@eslint/js": "9.17.0",
- "@eslint/plugin-kit": "^0.2.3",
+ "@eslint/js": "9.18.0",
+ "@eslint/plugin-kit": "^0.2.5",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.4.1",
@@ -1646,9 +1958,9 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.37.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz",
- "integrity": "sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==",
+ "version": "7.37.4",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz",
+ "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1818,6 +2130,36 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
@@ -1832,6 +2174,16 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/fastq": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz",
+ "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
"node_modules/file-entry-cache": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
@@ -1845,6 +2197,19 @@
"node": ">=16.0.0"
}
},
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
@@ -2078,6 +2443,13 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/has-bigints": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
@@ -2429,6 +2801,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
"node_modules/is-number-object": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
@@ -2789,6 +3171,30 @@
"node": ">= 0.4"
}
},
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -3047,6 +3453,19 @@
"license": "ISC",
"peer": true
},
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/possible-typed-array-names": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
@@ -3089,6 +3508,27 @@
"node": ">=6"
}
},
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -3191,6 +3631,41 @@
"url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
}
},
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
"node_modules/safe-array-concat": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
@@ -3551,6 +4026,32 @@
"node": ">=6"
}
},
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/ts-api-utils": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz",
+ "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.12"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4"
+ }
+ },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -3642,6 +4143,44 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/typescript": {
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
+ "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "peer": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/typescript-eslint": {
+ "version": "8.21.0",
+ "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.21.0.tgz",
+ "integrity": "sha512-txEKYY4XMKwPXxNkN8+AxAdX6iIJAPiJbHE/FpQccs/sxw8Lf26kqwC3cn0xkHlW8kEbLhkhCsjWuMveaY9Rxw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/eslint-plugin": "8.21.0",
+ "@typescript-eslint/parser": "8.21.0",
+ "@typescript-eslint/utils": "8.21.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <5.8.0"
+ }
+ },
"node_modules/unbox-primitive": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
@@ -3661,6 +4200,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/undici-types": {
+ "version": "6.20.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
+ "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/update-browserslist-db": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz",
diff --git a/package.json b/package.json
index 5887716..48f369f 100644
--- a/package.json
+++ b/package.json
@@ -13,12 +13,16 @@
"description": "",
"devDependencies": {
"@babel/eslint-parser": "^7.25.9",
- "@eslint/js": "^9.17.0",
- "eslint": "^9.17.0",
+ "@eslint/js": "^9.18.0",
+ "@types/node": "^22.10.7",
+ "@types/react": "^19.0.7",
+ "@types/react-dom": "^19.0.3",
+ "eslint": "^9.18.0",
"eslint-plugin-n": "^17.15.1",
"eslint-plugin-node": "^11.1.0",
- "eslint-plugin-react": "^7.37.3",
+ "eslint-plugin-react": "^7.37.4",
"eslint-plugin-react-hooks": "^5.1.0",
- "globals": "^15.14.0"
+ "globals": "^15.14.0",
+ "typescript-eslint": "^8.21.0"
}
}
diff --git a/server/controllers/categoryController.js b/server/controllers/categoryController.js
index 60c59df..a5eec8b 100644
--- a/server/controllers/categoryController.js
+++ b/server/controllers/categoryController.js
@@ -1,5 +1,5 @@
-'use strict';
-import Category from './../models/category.js';
+"use strict";
+import Category from "./../models/category.js";
const getAllCategories = async (req, res) => {
try {
@@ -7,8 +7,10 @@ const getAllCategories = async (req, res) => {
return res.send(categories);
} catch (e) {
console.log(e);
- return res.status(500).send({error: {message: 'Error getting categories!', code: 500}});
+ return res
+ .status(500)
+ .send({ error: { message: "Error getting categories!", code: 500 } });
}
};
-export {getAllCategories};
\ No newline at end of file
+export { getAllCategories };
diff --git a/server/controllers/recipeController.js b/server/controllers/recipeController.js
index ad7c281..d8c6c3f 100644
--- a/server/controllers/recipeController.js
+++ b/server/controllers/recipeController.js
@@ -1,5 +1,5 @@
-'use strict';
-import Recipe from './../models/recipe.js';
+"use strict";
+import Recipe from "./../models/recipe.js";
const getRecipes = async (req, res) => {
try {
@@ -7,13 +7,15 @@ const getRecipes = async (req, res) => {
const recipes = await Recipe.find();
return res.send(recipes);
} else {
- const searchQuery = req.query['q'];
- const recipes = await Recipe.find({$text: {$search: searchQuery}});
+ const searchQuery = req.query["q"];
+ const recipes = await Recipe.find({ $text: { $search: searchQuery } });
return res.send(recipes);
}
} catch (e) {
console.log(e);
- return res.status(500).send({error: {message: 'Error getting recipes!', code: 500}});
+ return res
+ .status(500)
+ .send({ error: { message: "Error getting recipes!", code: 500 } });
}
};
@@ -21,13 +23,17 @@ const getRecipe = async (req, res) => {
try {
const id = req.params.recipeId;
if (!id) {
- return res.status(400).send({error: {message: 'No recipe id provided!', code: 400}});
+ return res
+ .status(400)
+ .send({ error: { message: "No recipe id provided!", code: 400 } });
}
- const recipe = await Recipe.findOne({_id: id});
+ const recipe = await Recipe.findOne({ _id: id });
return res.send(recipe);
} catch (e) {
console.log(e);
- return res.status(500).send({error: {message: 'Error getting recipe!', code: 500}});
+ return res
+ .status(500)
+ .send({ error: { message: "Error getting recipe!", code: 500 } });
}
};
@@ -35,13 +41,17 @@ const getRecipesByCategory = async (req, res) => {
try {
const category = req.params.category;
if (!category) {
- return res.status(400).send({error: {message: 'No category provided!', code: 400}});
+ return res
+ .status(400)
+ .send({ error: { message: "No category provided!", code: 400 } });
}
- const recipes = await Recipe.find({category});
+ const recipes = await Recipe.find({ category });
return res.send(recipes);
} catch (e) {
console.log(e);
- return res.status(500).send({error: {message: 'Error getting recipes!', code: 500}});
+ return res
+ .status(500)
+ .send({ error: { message: "Error getting recipes!", code: 500 } });
}
};
@@ -51,7 +61,9 @@ const getLastAddedRecipes = async (req, res) => {
return res.send(recipes);
} catch (e) {
console.log(e);
- return res.status(500).send({error: {message: 'Error getting recipes!', code: 500}});
+ return res
+ .status(500)
+ .send({ error: { message: "Error getting recipes!", code: 500 } });
}
};
@@ -59,38 +71,57 @@ const postRecipe = async (req, res) => {
try {
const body = req.body;
if (!body) {
- return res.status(400).send({error: {message: 'Request body missing!', code: 400}});
+ return res
+ .status(400)
+ .send({ error: { message: "Request body missing!", code: 400 } });
}
const recipe = await Recipe.create(body);
return res.status(201).send(recipe);
} catch (e) {
console.log(e);
- return res.status(500).send({error: {message: 'Error creating recipe!', code: 500}});
+ return res
+ .status(500)
+ .send({ error: { message: "Error creating recipe!", code: 500 } });
}
};
const postReview = async (req, res) => {
try {
- const {rating, message} = req.body;
+ const { rating, message } = req.body;
if (!rating && !message) {
- return res.status(400).send({error: {message: 'Missing rating or review!', code: 400}});
+ return res
+ .status(400)
+ .send({ error: { message: "Missing rating or review!", code: 400 } });
}
const id = req.params.recipeId;
if (!id) {
- return res.status(400).send({error: {message: 'No recipe id provided!', code: 400}});
+ return res
+ .status(400)
+ .send({ error: { message: "No recipe id provided!", code: 400 } });
}
- const recipe = await Recipe.findOne({_id: id});
+ const recipe = await Recipe.findOne({ _id: id });
const oldRating = recipe.rating;
recipe.reviews.push(req.body);
- const newRating = parseFloat(((oldRating + rating)/recipe.reviews.length).toFixed(2));
+ const newRating = parseFloat(
+ ((oldRating + rating) / recipe.reviews.length).toFixed(2)
+ );
recipe.rating = newRating;
await recipe.save();
return res.status(200).send(req.body);
} catch (e) {
console.log(e);
- return res.status(500).send({error: {message: 'Error creating recipe!', code: 500}});
+ return res
+ .status(500)
+ .send({ error: { message: "Error creating recipe!", code: 500 } });
}
};
-export {getRecipes, getRecipe, getRecipesByCategory, getLastAddedRecipes, postRecipe, postReview};
\ No newline at end of file
+export {
+ getRecipes,
+ getRecipe,
+ getRecipesByCategory,
+ getLastAddedRecipes,
+ postRecipe,
+ postReview,
+};
diff --git a/server/controllers/userController.js b/server/controllers/userController.js
index 2de2079..298ec34 100644
--- a/server/controllers/userController.js
+++ b/server/controllers/userController.js
@@ -1,70 +1,100 @@
-'use strict';
-import User from './../models/user.js';
-import bcrypt from 'bcrypt';
+"use strict";
+import User from "./../models/user.js";
+import bcrypt from "bcrypt";
const login = async (req, res) => {
try {
- const {email, password} = req.body;
+ const { email, password } = req.body;
if (!email || !password) {
- return res.status(401).send({error: {message: 'Missing credentials!', code: 401}});
+ return res
+ .status(401)
+ .send({ error: { message: "Missing credentials!", code: 401 } });
}
- const user = await User.findOne({ email }).populate('uploadedRecipes').populate('favoriteRecipes');
+ const user = await User.findOne({ email })
+ .populate("uploadedRecipes")
+ .populate("favoriteRecipes");
if (!user) {
- return res.status(401).send({ error: 'Wrong credentials' });
+ return res.status(401).send({ error: "Wrong credentials" });
}
if (bcrypt.compareSync(password, user.password)) {
return res.send(user);
} else {
- return res.status(401).send({ error: 'Wrong credentials' });
+ return res.status(401).send({ error: "Wrong credentials" });
}
} catch (e) {
console.log(e);
- return res.status(500).send({error: {message: 'Error getting user!', code: 500}});
+ return res
+ .status(500)
+ .send({ error: { message: "Error getting user!", code: 500 } });
}
};
const updateUploaded = async (req, res) => {
try {
- const {user, recipe} = req.body;
+ const { user, recipe } = req.body;
if (!user) {
- return res.status(400).send({error: {message: 'Missing user!', code: 400}});
+ return res
+ .status(400)
+ .send({ error: { message: "Missing user!", code: 400 } });
} else if (!recipe) {
- return res.status(400).send({error: {message: 'Missing recipe!', code: 400}});
+ return res
+ .status(400)
+ .send({ error: { message: "Missing recipe!", code: 400 } });
}
- const userDB = await User.findOne({email: user.email});
+ const userDB = await User.findOne({ email: user.email });
userDB.uploadedRecipes.push(recipe);
await userDB.save();
res.send(userDB);
} catch (e) {
console.log(e);
- return res.status(500).send({error: {message: 'Error updated uploaded recipes for user!', code: 500}});
+ return res
+ .status(500)
+ .send({
+ error: {
+ message: "Error updated uploaded recipes for user!",
+ code: 500,
+ },
+ });
}
};
const updateFavorites = async (req, res) => {
try {
- const {user, recipe, favorite} = req.body;
+ const { user, recipe, favorite } = req.body;
if (!user) {
- return res.status(400).send({error: {message: 'Missing user!', code: 400}});
+ return res
+ .status(400)
+ .send({ error: { message: "Missing user!", code: 400 } });
} else if (!recipe) {
- return res.status(400).send({error: {message: 'Missing recipe!', code: 400}});
+ return res
+ .status(400)
+ .send({ error: { message: "Missing recipe!", code: 400 } });
}
- const userDB = await User.findOne({email: user.email});
+ const userDB = await User.findOne({ email: user.email });
if (favorite) {
userDB.favoriteRecipes.push(recipe);
} else {
- userDB.favoriteRecipes = userDB.favoriteRecipes.filter(favorite => favorite.toString() !== recipe._id);
+ userDB.favoriteRecipes = userDB.favoriteRecipes.filter(
+ (favorite) => favorite.toString() !== recipe._id
+ );
}
await userDB.save();
res.send(userDB);
} catch (e) {
console.log(e);
- return res.status(500).send({error: {message: 'Error updated uploaded recipes for user!', code: 500}});
+ return res
+ .status(500)
+ .send({
+ error: {
+ message: "Error updated uploaded recipes for user!",
+ code: 500,
+ },
+ });
}
};
-export { login, updateUploaded, updateFavorites };
\ No newline at end of file
+export { login, updateUploaded, updateFavorites };
diff --git a/server/index.js b/server/index.js
index fc696df..d332fab 100644
--- a/server/index.js
+++ b/server/index.js
@@ -1,15 +1,16 @@
-'use strict';
-import cors from 'cors';
-import express from 'express';
-import router from './router.js'
+"use strict";
+import cors from "cors";
+import express from "express";
+import router from "./router.js";
const app = express();
-const PORT = 3000;
+const PORT = process.env.PORT || 3000;
-app.use(cors({origin: 'http://localhost:5173'}));
+app.use(cors({ origin: "http://localhost:5173" }));
app.use(express.json());
app.use(router);
app.listen(PORT, () => {
- console.log(`Server listening on port ${PORT}`);
+ console.log(`Server listening on port ${PORT} πβ¨`);
+ console.log("");
});
diff --git a/server/mocha.opts b/server/mocha.opts
new file mode 100644
index 0000000..9b5e672
--- /dev/null
+++ b/server/mocha.opts
@@ -0,0 +1,2 @@
+--recursive
+--watch-extensions ts,tsx
\ No newline at end of file
diff --git a/server/models/category.js b/server/models/category.js
index 10dbce0..12c9169 100644
--- a/server/models/category.js
+++ b/server/models/category.js
@@ -1,10 +1,10 @@
-import mongoose from './index.js';
+import mongoose from "./index.js";
const categorySchema = new mongoose.Schema({
- name: {type: String, required: true},
- image: {type: String, required: true},
+ name: { type: String, required: true },
+ image: { type: String, required: true },
});
-const Category = mongoose.model('Category', categorySchema);
+const Category = mongoose.model("Category", categorySchema);
-export default Category;
\ No newline at end of file
+export default Category;
diff --git a/server/models/index.js b/server/models/index.js
index d42656f..70143fc 100644
--- a/server/models/index.js
+++ b/server/models/index.js
@@ -1,13 +1,13 @@
-'use strict';
+"use strict";
import mongoose from "mongoose";
(async () => {
try {
await mongoose.connect("mongodb://127.0.0.1:27017/cooksphere");
- console.log("Connected to MongoDB");
+ console.log("Connected to MongoDB π");
} catch (e) {
- console.log(`MongoDB connection error: ${e}`)
+ console.log(`MongoDB connection error: ${e}`);
}
})();
-export default mongoose;
\ No newline at end of file
+export default mongoose;
diff --git a/server/models/recipe.js b/server/models/recipe.js
index 2feda34..507addb 100644
--- a/server/models/recipe.js
+++ b/server/models/recipe.js
@@ -1,18 +1,29 @@
-import mongoose from './index.js';
+import mongoose from "./index.js";
-const recipeSchema = new mongoose.Schema({
- name: {type: String, required: true},
- category: {type: String, required: true},
- // TODO area: str (needed? maybe for search)
- instructions: {type: [String], required: true},
- image: {type: String, required: true},
- tags: {type: [String], required: true},
- ingredients: {type: [{ingredient: String, measure: String}], required: true},
- cookingTimeInMinutes: {type: Number, required: true},
- rating: {type: Number, default: 0},
- reviews: {type: [{author: String, message: String, rating: Number, timestamp: Date}], default: []},
-}, {timestamps: true});
+const recipeSchema = new mongoose.Schema(
+ {
+ name: { type: String, required: true },
+ category: { type: String, required: true },
+ // TODO area: str (needed? maybe for search)
+ instructions: { type: [String], required: true },
+ image: { type: String, required: true },
+ tags: { type: [String], required: true },
+ ingredients: {
+ type: [{ ingredient: String, measure: String }],
+ required: true,
+ },
+ cookingTimeInMinutes: { type: Number, required: true },
+ rating: { type: Number, default: 0 },
+ reviews: {
+ type: [
+ { author: String, message: String, rating: Number, timestamp: Date },
+ ],
+ default: [],
+ },
+ },
+ { timestamps: true }
+);
-recipeSchema.index({ name: 'text', category: 'text', tags: 'text' });
-const Recipe = mongoose.model('Recipe', recipeSchema);
-export default Recipe;
\ No newline at end of file
+recipeSchema.index({ name: "text", category: "text", tags: "text" });
+const Recipe = mongoose.model("Recipe", recipeSchema);
+export default Recipe;
diff --git a/server/models/user.js b/server/models/user.js
index b44ce97..cc49ae1 100644
--- a/server/models/user.js
+++ b/server/models/user.js
@@ -1,15 +1,24 @@
-import mongoose from './index.js';
+import mongoose from "./index.js";
-const userSchema = new mongoose.Schema({
- firstname: {type: String, required: true},
- lastname: {type: String, required: true},
- image: {type: String, required: true, default: 'man'},
- email: {type: String, required: true},
- password: {type: String, required: true},
- favoriteRecipes: {type: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Recipe' }], default: []},
- uploadedRecipes: {type: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Recipe' }], default: []},
-}, {timestamps: true});
+const userSchema = new mongoose.Schema(
+ {
+ firstname: { type: String, required: true },
+ lastname: { type: String, required: true },
+ image: { type: String, required: true, default: "man" },
+ email: { type: String, required: true },
+ password: { type: String, required: true },
+ favoriteRecipes: {
+ type: [{ type: mongoose.Schema.Types.ObjectId, ref: "Recipe" }],
+ default: [],
+ },
+ uploadedRecipes: {
+ type: [{ type: mongoose.Schema.Types.ObjectId, ref: "Recipe" }],
+ default: [],
+ },
+ },
+ { timestamps: true }
+);
-const User = mongoose.model('User', userSchema);
+const User = mongoose.model("User", userSchema);
-export default User;
\ No newline at end of file
+export default User;
diff --git a/server/package-lock.json b/server/package-lock.json
index 00b2941..f1e3726 100644
--- a/server/package-lock.json
+++ b/server/package-lock.json
@@ -1,1693 +1,21516 @@
{
+
"name": "server",
+
"version": "1.0.0",
+
"lockfileVersion": 3,
+
"requires": true,
+
"packages": {
- "": {
- "name": "server",
- "version": "1.0.0",
- "license": "ISC",
- "dependencies": {
- "bcrypt": "^5.1.1",
- "cors": "^2.8.5",
- "express": "^4.21.2",
- "mongoose": "^8.9.3"
- }
- },
- "node_modules/@mapbox/node-pre-gyp": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz",
- "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "detect-libc": "^2.0.0",
- "https-proxy-agent": "^5.0.0",
- "make-dir": "^3.1.0",
- "node-fetch": "^2.6.7",
- "nopt": "^5.0.0",
- "npmlog": "^5.0.1",
- "rimraf": "^3.0.2",
- "semver": "^7.3.5",
- "tar": "^6.1.11"
- },
- "bin": {
- "node-pre-gyp": "bin/node-pre-gyp"
- }
- },
- "node_modules/@mongodb-js/saslprep": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.9.tgz",
- "integrity": "sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw==",
- "license": "MIT",
- "dependencies": {
- "sparse-bitfield": "^3.0.3"
- }
- },
- "node_modules/@types/webidl-conversions": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz",
- "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==",
- "license": "MIT"
- },
- "node_modules/@types/whatwg-url": {
- "version": "11.0.5",
- "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz",
- "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==",
- "license": "MIT",
- "dependencies": {
- "@types/webidl-conversions": "*"
- }
- },
- "node_modules/abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
- "license": "ISC"
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "license": "MIT",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "license": "MIT",
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/aproba": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
- "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
- "license": "ISC"
- },
- "node_modules/are-we-there-yet": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
- "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
- "deprecated": "This package is no longer supported.",
- "license": "ISC",
- "dependencies": {
- "delegates": "^1.0.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
- "license": "MIT"
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "license": "MIT"
- },
- "node_modules/bcrypt": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz",
- "integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==",
- "hasInstallScript": true,
- "license": "MIT",
- "dependencies": {
- "@mapbox/node-pre-gyp": "^1.0.11",
- "node-addon-api": "^5.0.0"
- },
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/body-parser": {
- "version": "1.20.3",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
- "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
- "license": "MIT",
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.5",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.13.0",
- "raw-body": "2.5.2",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/bson": {
- "version": "6.10.1",
- "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.1.tgz",
- "integrity": "sha512-P92xmHDQjSKPLHqFxefqMxASNq/aWJMEZugpCjf+AF/pgcUpMMQCg7t7+ewko0/u8AapvF3luf/FoehddEK+sA==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=16.20.1"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/call-bind-apply-helpers": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz",
- "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==",
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/call-bound": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz",
- "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==",
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.1",
- "get-intrinsic": "^1.2.6"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
- "license": "ISC",
- "bin": {
- "color-support": "bin.js"
- }
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "license": "MIT"
- },
- "node_modules/console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
- "license": "ISC"
- },
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
- "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
- "license": "MIT"
- },
- "node_modules/cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
- "license": "MIT",
- "dependencies": {
- "object-assign": "^4",
- "vary": "^1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/debug": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
- "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
- "license": "MIT"
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/detect-libc": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
- "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/dunder-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
- "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.1",
- "es-errors": "^1.3.0",
- "gopd": "^1.2.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
- "license": "MIT"
- },
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/encodeurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
- "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/es-define-property": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
- "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-object-atoms": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
- "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
- "license": "MIT"
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/express": {
- "version": "4.21.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
- "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
- "license": "MIT",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.3",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.7.1",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.3.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.3",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.12",
- "proxy-addr": "~2.0.7",
- "qs": "6.13.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.19.0",
- "serve-static": "1.16.2",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/express"
- }
- },
- "node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/finalhandler": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
- "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
- "license": "MIT",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/finalhandler/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "license": "ISC",
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/fs-minipass/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "license": "ISC"
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gauge": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
- "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
- "deprecated": "This package is no longer supported.",
- "license": "ISC",
- "dependencies": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.2",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.1",
- "object-assign": "^4.1.1",
- "signal-exit": "^3.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz",
- "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==",
- "license": "MIT",
- "dependencies": {
- "call-bind-apply-helpers": "^1.0.1",
- "es-define-property": "^1.0.1",
- "es-errors": "^1.3.0",
- "es-object-atoms": "^1.0.0",
- "function-bind": "^1.1.2",
- "get-proto": "^1.0.0",
- "gopd": "^1.2.0",
- "has-symbols": "^1.1.0",
- "hasown": "^2.0.2",
- "math-intrinsics": "^1.1.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
- "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
- "license": "MIT",
- "dependencies": {
- "dunder-proto": "^1.0.1",
- "es-object-atoms": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/gopd": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
- "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
- "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
- "license": "ISC"
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "license": "MIT",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "license": "MIT",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
- "license": "MIT",
- "dependencies": {
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "license": "MIT",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
- "license": "ISC",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "license": "ISC"
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/kareem": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz",
- "integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "license": "MIT",
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/make-dir/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/math-intrinsics": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
- "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/memory-pager": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
- "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
- "license": "MIT"
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
- "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "license": "MIT",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "license": "ISC",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "license": "MIT",
- "dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/minizlib/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "license": "MIT",
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/mongodb": {
- "version": "6.12.0",
- "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.12.0.tgz",
- "integrity": "sha512-RM7AHlvYfS7jv7+BXund/kR64DryVI+cHbVAy9P61fnb1RcWZqOW1/Wj2YhqMCx+MuYhqTRGv7AwHBzmsCKBfA==",
- "license": "Apache-2.0",
- "dependencies": {
- "@mongodb-js/saslprep": "^1.1.9",
- "bson": "^6.10.1",
- "mongodb-connection-string-url": "^3.0.0"
- },
- "engines": {
- "node": ">=16.20.1"
- },
- "peerDependencies": {
- "@aws-sdk/credential-providers": "^3.188.0",
- "@mongodb-js/zstd": "^1.1.0 || ^2.0.0",
- "gcp-metadata": "^5.2.0",
- "kerberos": "^2.0.1",
- "mongodb-client-encryption": ">=6.0.0 <7",
- "snappy": "^7.2.2",
- "socks": "^2.7.1"
- },
- "peerDependenciesMeta": {
- "@aws-sdk/credential-providers": {
- "optional": true
- },
- "@mongodb-js/zstd": {
- "optional": true
- },
- "gcp-metadata": {
- "optional": true
- },
- "kerberos": {
- "optional": true
- },
- "mongodb-client-encryption": {
- "optional": true
- },
- "snappy": {
- "optional": true
- },
- "socks": {
- "optional": true
- }
- }
- },
- "node_modules/mongodb-connection-string-url": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.1.tgz",
- "integrity": "sha512-XqMGwRX0Lgn05TDB4PyG2h2kKO/FfWJyCzYQbIhXUxz7ETt0I/FqHjUeqj37irJ+Dl1ZtU82uYyj14u2XsZKfg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@types/whatwg-url": "^11.0.2",
- "whatwg-url": "^13.0.0"
- }
- },
- "node_modules/mongoose": {
- "version": "8.9.3",
- "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.9.3.tgz",
- "integrity": "sha512-G50GNPdMqhoiRAJ/24GYAzg13yxXDD3FOOFeYiFwtHmHpAJem3hxbYIxAhLJGWbYEiUZL0qFMu2LXYkgGAmo+Q==",
- "license": "MIT",
- "dependencies": {
- "bson": "^6.10.1",
- "kareem": "2.6.3",
- "mongodb": "~6.12.0",
- "mpath": "0.9.0",
- "mquery": "5.0.0",
- "ms": "2.1.3",
- "sift": "17.1.3"
- },
- "engines": {
- "node": ">=16.20.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/mongoose"
- }
- },
- "node_modules/mpath": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz",
- "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==",
- "license": "MIT",
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/mquery": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz",
- "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==",
- "license": "MIT",
- "dependencies": {
- "debug": "4.x"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "license": "MIT"
- },
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/node-addon-api": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
- "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==",
- "license": "MIT"
- },
- "node_modules/node-fetch": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
- "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
- "license": "MIT",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-fetch/node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "license": "MIT"
- },
- "node_modules/node-fetch/node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "license": "BSD-2-Clause"
- },
- "node_modules/node-fetch/node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "license": "MIT",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/nopt": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
- "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
- "license": "ISC",
- "dependencies": {
- "abbrev": "1"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/npmlog": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
- "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
- "deprecated": "This package is no longer supported.",
- "license": "ISC",
- "dependencies": {
- "are-we-there-yet": "^2.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^3.0.0",
- "set-blocking": "^2.0.0"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.13.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
- "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "license": "MIT",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "license": "ISC",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-to-regexp": {
- "version": "0.1.12",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
- "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
- "license": "MIT"
- },
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "license": "MIT",
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "side-channel": "^1.0.6"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "license": "MIT",
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
- "license": "ISC",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "license": "MIT"
- },
- "node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/send": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
- "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
- "license": "MIT",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/send/node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/send/node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/serve-static": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
- "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
- "license": "MIT",
- "dependencies": {
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.19.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "license": "ISC"
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "license": "ISC"
- },
- "node_modules/side-channel": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
- "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3",
- "side-channel-list": "^1.0.0",
- "side-channel-map": "^1.0.1",
- "side-channel-weakmap": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel-list": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
- "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "object-inspect": "^1.13.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel-map": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
- "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/side-channel-weakmap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
- "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
- "license": "MIT",
- "dependencies": {
- "call-bound": "^1.0.2",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.5",
- "object-inspect": "^1.13.3",
- "side-channel-map": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/sift": {
- "version": "17.1.3",
- "resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz",
- "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==",
- "license": "MIT"
- },
- "node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "license": "ISC"
- },
- "node_modules/sparse-bitfield": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
- "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
- "license": "MIT",
- "dependencies": {
- "memory-pager": "^1.0.2"
- }
- },
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/tar": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
- "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
- "license": "ISC",
- "dependencies": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^5.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/tr46": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz",
- "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==",
- "license": "MIT",
- "dependencies": {
- "punycode": "^2.3.0"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "license": "MIT",
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "license": "MIT"
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
- "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/whatwg-url": {
- "version": "13.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz",
- "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==",
- "license": "MIT",
- "dependencies": {
- "tr46": "^4.1.1",
- "webidl-conversions": "^7.0.0"
- },
- "engines": {
- "node": ">=16"
- }
- },
- "node_modules/wide-align": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
- "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
- "license": "ISC",
- "dependencies": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "license": "ISC"
- },
- "node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "license": "ISC"
- }
+
+
+ "": {
+
+
+
+ "name": "server",
+
+
+
+ "version": "1.0.0",
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "bcrypt": "^5.1.1",
+
+
+
+
+ "cors": "^2.8.5",
+
+
+
+
+ "express": "^4.21.2",
+
+
+
+
+ "mongoose": "^8.9.5"
+
+
+
+ },
+
+
+
+ "devDependencies": {
+
+
+
+
+ "@babel/core": "^7.26.0",
+
+
+
+
+ "@babel/preset-env": "^7.26.0",
+
+
+
+
+ "@types/chai": "^5.0.1",
+
+
+
+
+ "@types/express": "^5.0.0",
+
+
+
+
+ "@types/mocha": "^10.0.10",
+
+
+
+
+ "@types/supertest": "^6.0.2",
+
+
+
+
+ "chai": "^5.1.2",
+
+
+
+
+ "mocha": "^11.0.1",
+
+
+
+
+ "supertest": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@ampproject/remapping": {
+
+
+
+ "version": "2.3.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+
+
+
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "Apache-2.0",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@jridgewell/gen-mapping": "^0.3.5",
+
+
+
+
+ "@jridgewell/trace-mapping": "^0.3.24"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/code-frame": {
+
+
+
+ "version": "7.26.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
+
+
+
+ "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-validator-identifier": "^7.25.9",
+
+
+
+
+ "js-tokens": "^4.0.0",
+
+
+
+
+ "picocolors": "^1.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/compat-data": {
+
+
+
+ "version": "7.26.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz",
+
+
+
+ "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/core": {
+
+
+
+ "version": "7.26.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz",
+
+
+
+ "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@ampproject/remapping": "^2.2.0",
+
+
+
+
+ "@babel/code-frame": "^7.26.0",
+
+
+
+
+ "@babel/generator": "^7.26.0",
+
+
+
+
+ "@babel/helper-compilation-targets": "^7.25.9",
+
+
+
+
+ "@babel/helper-module-transforms": "^7.26.0",
+
+
+
+
+ "@babel/helpers": "^7.26.0",
+
+
+
+
+ "@babel/parser": "^7.26.0",
+
+
+
+
+ "@babel/template": "^7.25.9",
+
+
+
+
+ "@babel/traverse": "^7.25.9",
+
+
+
+
+ "@babel/types": "^7.26.0",
+
+
+
+
+ "convert-source-map": "^2.0.0",
+
+
+
+
+ "debug": "^4.1.0",
+
+
+
+
+ "gensync": "^1.0.0-beta.2",
+
+
+
+
+ "json5": "^2.2.3",
+
+
+
+
+ "semver": "^6.3.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "type": "opencollective",
+
+
+
+
+ "url": "https://opencollective.com/babel"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/core/node_modules/semver": {
+
+
+
+ "version": "6.3.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+
+
+
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "bin": {
+
+
+
+
+ "semver": "bin/semver.js"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/generator": {
+
+
+
+ "version": "7.26.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz",
+
+
+
+ "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/parser": "^7.26.5",
+
+
+
+
+ "@babel/types": "^7.26.5",
+
+
+
+
+ "@jridgewell/gen-mapping": "^0.3.5",
+
+
+
+
+ "@jridgewell/trace-mapping": "^0.3.25",
+
+
+
+
+ "jsesc": "^3.0.2"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-annotate-as-pure": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/types": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-compilation-targets": {
+
+
+
+ "version": "7.26.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz",
+
+
+
+ "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/compat-data": "^7.26.5",
+
+
+
+
+ "@babel/helper-validator-option": "^7.25.9",
+
+
+
+
+ "browserslist": "^4.24.0",
+
+
+
+
+ "lru-cache": "^5.1.1",
+
+
+
+
+ "semver": "^6.3.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
+
+
+
+ "version": "6.3.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+
+
+
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "bin": {
+
+
+
+
+ "semver": "bin/semver.js"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-create-class-features-plugin": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+
+
+
+
+ "@babel/helper-member-expression-to-functions": "^7.25.9",
+
+
+
+
+ "@babel/helper-optimise-call-expression": "^7.25.9",
+
+
+
+
+ "@babel/helper-replace-supers": "^7.25.9",
+
+
+
+
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
+
+
+
+
+ "@babel/traverse": "^7.25.9",
+
+
+
+
+ "semver": "^6.3.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
+
+
+
+ "version": "6.3.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+
+
+
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "bin": {
+
+
+
+
+ "semver": "bin/semver.js"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
+
+
+
+ "version": "7.26.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz",
+
+
+
+ "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+
+
+
+
+ "regexpu-core": "^6.2.0",
+
+
+
+
+ "semver": "^6.3.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
+
+
+
+ "version": "6.3.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+
+
+
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "bin": {
+
+
+
+
+ "semver": "bin/semver.js"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-define-polyfill-provider": {
+
+
+
+ "version": "0.6.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz",
+
+
+
+ "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-compilation-targets": "^7.22.6",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.22.5",
+
+
+
+
+ "debug": "^4.1.1",
+
+
+
+
+ "lodash.debounce": "^4.0.8",
+
+
+
+
+ "resolve": "^1.14.2"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-member-expression-to-functions": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/traverse": "^7.25.9",
+
+
+
+
+ "@babel/types": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-module-imports": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/traverse": "^7.25.9",
+
+
+
+
+ "@babel/types": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-module-transforms": {
+
+
+
+ "version": "7.26.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
+
+
+
+ "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-module-imports": "^7.25.9",
+
+
+
+
+ "@babel/helper-validator-identifier": "^7.25.9",
+
+
+
+
+ "@babel/traverse": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-optimise-call-expression": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/types": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-plugin-utils": {
+
+
+
+ "version": "7.26.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz",
+
+
+
+ "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-remap-async-to-generator": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+
+
+
+
+ "@babel/helper-wrap-function": "^7.25.9",
+
+
+
+
+ "@babel/traverse": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-replace-supers": {
+
+
+
+ "version": "7.26.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz",
+
+
+
+ "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-member-expression-to-functions": "^7.25.9",
+
+
+
+
+ "@babel/helper-optimise-call-expression": "^7.25.9",
+
+
+
+
+ "@babel/traverse": "^7.26.5"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/traverse": "^7.25.9",
+
+
+
+
+ "@babel/types": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-string-parser": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-validator-identifier": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-validator-option": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helper-wrap-function": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/template": "^7.25.9",
+
+
+
+
+ "@babel/traverse": "^7.25.9",
+
+
+
+
+ "@babel/types": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/helpers": {
+
+
+
+ "version": "7.26.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz",
+
+
+
+ "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/template": "^7.25.9",
+
+
+
+
+ "@babel/types": "^7.26.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/parser": {
+
+
+
+ "version": "7.26.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz",
+
+
+
+ "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/types": "^7.26.5"
+
+
+
+ },
+
+
+
+ "bin": {
+
+
+
+
+ "parser": "bin/babel-parser.js"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "@babel/traverse": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-optional-chaining": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.13.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "@babel/traverse": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-proposal-private-property-in-object": {
+
+
+
+ "version": "7.21.0-placeholder-for-preset-env.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+
+
+
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+
+
+
+ "version": "7.26.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz",
+
+
+
+ "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+
+
+
+ "version": "7.26.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz",
+
+
+
+ "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
+
+
+
+ "version": "7.18.6",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+
+
+
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.18.6"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-async-generator-functions": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "@babel/helper-remap-async-to-generator": "^7.25.9",
+
+
+
+
+ "@babel/traverse": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-module-imports": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "@babel/helper-remap-async-to-generator": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+
+
+
+ "version": "7.26.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz",
+
+
+
+ "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.26.5"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-block-scoping": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-class-properties": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-class-static-block": {
+
+
+
+ "version": "7.26.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz",
+
+
+
+ "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.12.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-classes": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+
+
+
+
+ "@babel/helper-compilation-targets": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "@babel/helper-replace-supers": "^7.25.9",
+
+
+
+
+ "@babel/traverse": "^7.25.9",
+
+
+
+
+ "globals": "^11.1.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-computed-properties": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "@babel/template": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-destructuring": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-dynamic-import": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
+
+
+
+ "version": "7.26.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz",
+
+
+
+ "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-export-namespace-from": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-for-of": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-function-name": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-compilation-targets": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "@babel/traverse": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-json-strings": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-literals": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-logical-assignment-operators": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-member-expression-literals": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-modules-amd": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-module-transforms": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
+
+
+
+ "version": "7.26.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz",
+
+
+
+ "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-module-transforms": "^7.26.0",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-module-transforms": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "@babel/helper-validator-identifier": "^7.25.9",
+
+
+
+
+ "@babel/traverse": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-modules-umd": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-module-transforms": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-new-target": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
+
+
+
+ "version": "7.26.6",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz",
+
+
+
+ "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.26.5"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-numeric-separator": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-object-rest-spread": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-compilation-targets": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-parameters": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-object-super": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "@babel/helper-replace-supers": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-optional-catch-binding": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-optional-chaining": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-parameters": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-private-methods": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-private-property-in-object": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+
+
+
+
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-property-literals": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-regenerator": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "regenerator-transform": "^0.15.2"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-regexp-modifiers": {
+
+
+
+ "version": "7.26.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz",
+
+
+
+ "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-reserved-words": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-spread": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-sticky-regex": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-template-literals": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-unicode-property-regex": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-unicode-regex": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/plugin-transform-unicode-sets-regex": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/preset-env": {
+
+
+
+ "version": "7.26.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz",
+
+
+
+ "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/compat-data": "^7.26.0",
+
+
+
+
+ "@babel/helper-compilation-targets": "^7.25.9",
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.25.9",
+
+
+
+
+ "@babel/helper-validator-option": "^7.25.9",
+
+
+
+
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9",
+
+
+
+
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9",
+
+
+
+
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9",
+
+
+
+
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9",
+
+
+
+
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9",
+
+
+
+
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+
+
+
+
+ "@babel/plugin-syntax-import-assertions": "^7.26.0",
+
+
+
+
+ "@babel/plugin-syntax-import-attributes": "^7.26.0",
+
+
+
+
+ "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
+
+
+
+
+ "@babel/plugin-transform-arrow-functions": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-async-generator-functions": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-async-to-generator": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-block-scoped-functions": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-block-scoping": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-class-properties": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-class-static-block": "^7.26.0",
+
+
+
+
+ "@babel/plugin-transform-classes": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-computed-properties": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-destructuring": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-dotall-regex": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-duplicate-keys": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-dynamic-import": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-exponentiation-operator": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-export-namespace-from": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-for-of": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-function-name": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-json-strings": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-literals": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-logical-assignment-operators": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-member-expression-literals": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-modules-amd": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-modules-commonjs": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-modules-systemjs": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-modules-umd": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-new-target": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-numeric-separator": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-object-rest-spread": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-object-super": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-optional-catch-binding": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-optional-chaining": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-parameters": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-private-methods": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-private-property-in-object": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-property-literals": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-regenerator": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-regexp-modifiers": "^7.26.0",
+
+
+
+
+ "@babel/plugin-transform-reserved-words": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-shorthand-properties": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-spread": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-sticky-regex": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-template-literals": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-typeof-symbol": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-unicode-escapes": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-unicode-property-regex": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-unicode-regex": "^7.25.9",
+
+
+
+
+ "@babel/plugin-transform-unicode-sets-regex": "^7.25.9",
+
+
+
+
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+
+
+
+
+ "babel-plugin-polyfill-corejs2": "^0.4.10",
+
+
+
+
+ "babel-plugin-polyfill-corejs3": "^0.10.6",
+
+
+
+
+ "babel-plugin-polyfill-regenerator": "^0.6.1",
+
+
+
+
+ "core-js-compat": "^3.38.1",
+
+
+
+
+ "semver": "^6.3.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/preset-env/node_modules/semver": {
+
+
+
+ "version": "6.3.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+
+
+
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "bin": {
+
+
+
+
+ "semver": "bin/semver.js"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/preset-modules": {
+
+
+
+ "version": "0.1.6-no-external-plugins",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+
+
+
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-plugin-utils": "^7.0.0",
+
+
+
+
+ "@babel/types": "^7.4.4",
+
+
+
+
+ "esutils": "^2.0.2"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/runtime": {
+
+
+
+ "version": "7.26.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz",
+
+
+
+ "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "regenerator-runtime": "^0.14.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/template": {
+
+
+
+ "version": "7.25.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz",
+
+
+
+ "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/code-frame": "^7.25.9",
+
+
+
+
+ "@babel/parser": "^7.25.9",
+
+
+
+
+ "@babel/types": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/traverse": {
+
+
+
+ "version": "7.26.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz",
+
+
+
+ "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/code-frame": "^7.26.2",
+
+
+
+
+ "@babel/generator": "^7.26.5",
+
+
+
+
+ "@babel/parser": "^7.26.5",
+
+
+
+
+ "@babel/template": "^7.25.9",
+
+
+
+
+ "@babel/types": "^7.26.5",
+
+
+
+
+ "debug": "^4.3.1",
+
+
+
+
+ "globals": "^11.1.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@babel/types": {
+
+
+
+ "version": "7.26.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz",
+
+
+
+ "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-string-parser": "^7.25.9",
+
+
+
+
+ "@babel/helper-validator-identifier": "^7.25.9"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@isaacs/cliui": {
+
+
+
+ "version": "8.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+
+
+
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "string-width": "^5.1.2",
+
+
+
+
+ "string-width-cjs": "npm:string-width@^4.2.0",
+
+
+
+
+ "strip-ansi": "^7.0.1",
+
+
+
+
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+
+
+
+
+ "wrap-ansi": "^8.1.0",
+
+
+
+
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=12"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+
+
+
+ "version": "6.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+
+
+
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=12"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+
+
+
+ "version": "6.2.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+
+
+
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=12"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+
+
+
+ "version": "9.2.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+
+
+
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+
+
+
+ "version": "5.1.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+
+
+
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "eastasianwidth": "^0.2.0",
+
+
+
+
+ "emoji-regex": "^9.2.2",
+
+
+
+
+ "strip-ansi": "^7.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=12"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+
+
+
+ "version": "7.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+
+
+
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "ansi-regex": "^6.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=12"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+
+
+
+ "version": "8.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+
+
+
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "ansi-styles": "^6.1.0",
+
+
+
+
+ "string-width": "^5.0.1",
+
+
+
+
+ "strip-ansi": "^7.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=12"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@jridgewell/gen-mapping": {
+
+
+
+ "version": "0.3.8",
+
+
+
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
+
+
+
+ "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@jridgewell/set-array": "^1.2.1",
+
+
+
+
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+
+
+
+
+ "@jridgewell/trace-mapping": "^0.3.24"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@jridgewell/resolve-uri": {
+
+
+
+ "version": "3.1.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+
+
+
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@jridgewell/set-array": {
+
+
+
+ "version": "1.2.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+
+
+
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@jridgewell/sourcemap-codec": {
+
+
+
+ "version": "1.5.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+
+
+
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/@jridgewell/trace-mapping": {
+
+
+
+ "version": "0.3.25",
+
+
+
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+
+
+
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@jridgewell/resolve-uri": "^3.1.0",
+
+
+
+
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@mapbox/node-pre-gyp": {
+
+
+
+ "version": "1.0.11",
+
+
+
+ "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz",
+
+
+
+ "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==",
+
+
+
+ "license": "BSD-3-Clause",
+
+
+
+ "dependencies": {
+
+
+
+
+ "detect-libc": "^2.0.0",
+
+
+
+
+ "https-proxy-agent": "^5.0.0",
+
+
+
+
+ "make-dir": "^3.1.0",
+
+
+
+
+ "node-fetch": "^2.6.7",
+
+
+
+
+ "nopt": "^5.0.0",
+
+
+
+
+ "npmlog": "^5.0.1",
+
+
+
+
+ "rimraf": "^3.0.2",
+
+
+
+
+ "semver": "^7.3.5",
+
+
+
+
+ "tar": "^6.1.11"
+
+
+
+ },
+
+
+
+ "bin": {
+
+
+
+
+ "node-pre-gyp": "bin/node-pre-gyp"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@mongodb-js/saslprep": {
+
+
+
+ "version": "1.1.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.9.tgz",
+
+
+
+ "integrity": "sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "sparse-bitfield": "^3.0.3"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@pkgjs/parseargs": {
+
+
+
+ "version": "0.11.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+
+
+
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "optional": true,
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=14"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/body-parser": {
+
+
+
+ "version": "1.19.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
+
+
+
+ "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@types/connect": "*",
+
+
+
+
+ "@types/node": "*"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/chai": {
+
+
+
+ "version": "5.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.0.1.tgz",
+
+
+
+ "integrity": "sha512-5T8ajsg3M/FOncpLYW7sdOcD6yf4+722sze/tc4KQV0P8Z2rAr3SAuHCIkYmYpt8VbcQlnz8SxlOlPQYefe4cA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@types/deep-eql": "*"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/connect": {
+
+
+
+ "version": "3.4.38",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
+
+
+
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@types/node": "*"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/cookiejar": {
+
+
+
+ "version": "2.1.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/cookiejar/-/cookiejar-2.1.5.tgz",
+
+
+
+ "integrity": "sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/@types/deep-eql": {
+
+
+
+ "version": "4.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
+
+
+
+ "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/@types/express": {
+
+
+
+ "version": "5.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz",
+
+
+
+ "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@types/body-parser": "*",
+
+
+
+
+ "@types/express-serve-static-core": "^5.0.0",
+
+
+
+
+ "@types/qs": "*",
+
+
+
+
+ "@types/serve-static": "*"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/express-serve-static-core": {
+
+
+
+ "version": "5.0.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.5.tgz",
+
+
+
+ "integrity": "sha512-GLZPrd9ckqEBFMcVM/qRFAP0Hg3qiVEojgEFsx/N/zKXsBzbGF6z5FBDpZ0+Xhp1xr+qRZYjfGr1cWHB9oFHSA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@types/node": "*",
+
+
+
+
+ "@types/qs": "*",
+
+
+
+
+ "@types/range-parser": "*",
+
+
+
+
+ "@types/send": "*"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/http-errors": {
+
+
+
+ "version": "2.0.4",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
+
+
+
+ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/@types/methods": {
+
+
+
+ "version": "1.1.4",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/methods/-/methods-1.1.4.tgz",
+
+
+
+ "integrity": "sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/@types/mime": {
+
+
+
+ "version": "1.3.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
+
+
+
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/@types/mocha": {
+
+
+
+ "version": "10.0.10",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz",
+
+
+
+ "integrity": "sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/@types/node": {
+
+
+
+ "version": "22.10.7",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz",
+
+
+
+ "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "undici-types": "~6.20.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/qs": {
+
+
+
+ "version": "6.9.18",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz",
+
+
+
+ "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/@types/range-parser": {
+
+
+
+ "version": "1.2.7",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
+
+
+
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/@types/send": {
+
+
+
+ "version": "0.17.4",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
+
+
+
+ "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@types/mime": "^1",
+
+
+
+
+ "@types/node": "*"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/serve-static": {
+
+
+
+ "version": "1.15.7",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
+
+
+
+ "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@types/http-errors": "*",
+
+
+
+
+ "@types/node": "*",
+
+
+
+
+ "@types/send": "*"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/superagent": {
+
+
+
+ "version": "8.1.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/superagent/-/superagent-8.1.9.tgz",
+
+
+
+ "integrity": "sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@types/cookiejar": "^2.1.5",
+
+
+
+
+ "@types/methods": "^1.1.4",
+
+
+
+
+ "@types/node": "*",
+
+
+
+
+ "form-data": "^4.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/supertest": {
+
+
+
+ "version": "6.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-6.0.2.tgz",
+
+
+
+ "integrity": "sha512-137ypx2lk/wTQbW6An6safu9hXmajAifU/s7szAHLN/FeIm5w7yR0Wkl9fdJMRSHwOn4HLAI0DaB2TOORuhPDg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@types/methods": "^1.1.4",
+
+
+
+
+ "@types/superagent": "^8.1.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/@types/webidl-conversions": {
+
+
+
+ "version": "7.0.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz",
+
+
+
+ "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/@types/whatwg-url": {
+
+
+
+ "version": "11.0.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz",
+
+
+
+ "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@types/webidl-conversions": "*"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/abbrev": {
+
+
+
+ "version": "1.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+
+
+
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/accepts": {
+
+
+
+ "version": "1.3.8",
+
+
+
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+
+
+
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "mime-types": "~2.1.34",
+
+
+
+
+ "negotiator": "0.6.3"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/agent-base": {
+
+
+
+ "version": "6.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+
+
+
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "debug": "4"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 6.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ansi-colors": {
+
+
+
+ "version": "4.1.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+
+
+
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ansi-regex": {
+
+
+
+ "version": "5.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+
+
+
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ansi-styles": {
+
+
+
+ "version": "4.3.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+
+
+
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "color-convert": "^2.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/anymatch": {
+
+
+
+ "version": "3.1.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+
+
+
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "normalize-path": "^3.0.0",
+
+
+
+
+ "picomatch": "^2.0.4"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/aproba": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/are-we-there-yet": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
+
+
+
+ "deprecated": "This package is no longer supported.",
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "delegates": "^1.0.0",
+
+
+
+
+ "readable-stream": "^3.6.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/argparse": {
+
+
+
+ "version": "2.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+
+
+
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "Python-2.0"
+
+
+ },
+
+
+ "node_modules/array-flatten": {
+
+
+
+ "version": "1.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+
+
+
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/asap": {
+
+
+
+ "version": "2.0.6",
+
+
+
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+
+
+
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/assertion-error": {
+
+
+
+ "version": "2.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
+
+
+
+ "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=12"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/asynckit": {
+
+
+
+ "version": "0.4.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+
+
+
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/babel-plugin-polyfill-corejs2": {
+
+
+
+ "version": "0.4.12",
+
+
+
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz",
+
+
+
+ "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/compat-data": "^7.22.6",
+
+
+
+
+ "@babel/helper-define-polyfill-provider": "^0.6.3",
+
+
+
+
+ "semver": "^6.3.1"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
+
+
+
+ "version": "6.3.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+
+
+
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "bin": {
+
+
+
+
+ "semver": "bin/semver.js"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/babel-plugin-polyfill-corejs3": {
+
+
+
+ "version": "0.10.6",
+
+
+
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz",
+
+
+
+ "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-define-polyfill-provider": "^0.6.2",
+
+
+
+
+ "core-js-compat": "^3.38.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/babel-plugin-polyfill-regenerator": {
+
+
+
+ "version": "0.6.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz",
+
+
+
+ "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/helper-define-polyfill-provider": "^0.6.3"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/balanced-match": {
+
+
+
+ "version": "1.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+
+
+
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/bcrypt": {
+
+
+
+ "version": "5.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz",
+
+
+
+ "integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==",
+
+
+
+ "hasInstallScript": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@mapbox/node-pre-gyp": "^1.0.11",
+
+
+
+
+ "node-addon-api": "^5.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 10.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/binary-extensions": {
+
+
+
+ "version": "2.3.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+
+
+
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/body-parser": {
+
+
+
+ "version": "1.20.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
+
+
+
+ "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "bytes": "3.1.2",
+
+
+
+
+ "content-type": "~1.0.5",
+
+
+
+
+ "debug": "2.6.9",
+
+
+
+
+ "depd": "2.0.0",
+
+
+
+
+ "destroy": "1.2.0",
+
+
+
+
+ "http-errors": "2.0.0",
+
+
+
+
+ "iconv-lite": "0.4.24",
+
+
+
+
+ "on-finished": "2.4.1",
+
+
+
+
+ "qs": "6.13.0",
+
+
+
+
+ "raw-body": "2.5.2",
+
+
+
+
+ "type-is": "~1.6.18",
+
+
+
+
+ "unpipe": "1.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8",
+
+
+
+
+ "npm": "1.2.8000 || >= 1.4.16"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/body-parser/node_modules/debug": {
+
+
+
+ "version": "2.6.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+
+
+
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "ms": "2.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/body-parser/node_modules/ms": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/brace-expansion": {
+
+
+
+ "version": "1.1.11",
+
+
+
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+
+
+
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "balanced-match": "^1.0.0",
+
+
+
+
+ "concat-map": "0.0.1"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/braces": {
+
+
+
+ "version": "3.0.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+
+
+
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "fill-range": "^7.1.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/browser-stdout": {
+
+
+
+ "version": "1.3.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+
+
+
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/browserslist": {
+
+
+
+ "version": "4.24.4",
+
+
+
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
+
+
+
+ "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
+
+
+
+ "dev": true,
+
+
+
+ "funding": [
+
+
+
+
+ {
+
+
+
+
+
+ "type": "opencollective",
+
+
+
+
+
+ "url": "https://opencollective.com/browserslist"
+
+
+
+
+ },
+
+
+
+
+ {
+
+
+
+
+
+ "type": "tidelift",
+
+
+
+
+
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+
+
+
+
+ },
+
+
+
+
+ {
+
+
+
+
+
+ "type": "github",
+
+
+
+
+
+ "url": "https://github.com/sponsors/ai"
+
+
+
+
+ }
+
+
+
+ ],
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "caniuse-lite": "^1.0.30001688",
+
+
+
+
+ "electron-to-chromium": "^1.5.73",
+
+
+
+
+ "node-releases": "^2.0.19",
+
+
+
+
+ "update-browserslist-db": "^1.1.1"
+
+
+
+ },
+
+
+
+ "bin": {
+
+
+
+
+ "browserslist": "cli.js"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/bson": {
+
+
+
+ "version": "6.10.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.1.tgz",
+
+
+
+ "integrity": "sha512-P92xmHDQjSKPLHqFxefqMxASNq/aWJMEZugpCjf+AF/pgcUpMMQCg7t7+ewko0/u8AapvF3luf/FoehddEK+sA==",
+
+
+
+ "license": "Apache-2.0",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=16.20.1"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/bytes": {
+
+
+
+ "version": "3.1.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+
+
+
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/call-bind-apply-helpers": {
+
+
+
+ "version": "1.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz",
+
+
+
+ "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "es-errors": "^1.3.0",
+
+
+
+
+ "function-bind": "^1.1.2"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/call-bound": {
+
+
+
+ "version": "1.0.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz",
+
+
+
+ "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "call-bind-apply-helpers": "^1.0.1",
+
+
+
+
+ "get-intrinsic": "^1.2.6"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/camelcase": {
+
+
+
+ "version": "6.3.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+
+
+
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/caniuse-lite": {
+
+
+
+ "version": "1.0.30001695",
+
+
+
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz",
+
+
+
+ "integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==",
+
+
+
+ "dev": true,
+
+
+
+ "funding": [
+
+
+
+
+ {
+
+
+
+
+
+ "type": "opencollective",
+
+
+
+
+
+ "url": "https://opencollective.com/browserslist"
+
+
+
+
+ },
+
+
+
+
+ {
+
+
+
+
+
+ "type": "tidelift",
+
+
+
+
+
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+
+
+
+
+ },
+
+
+
+
+ {
+
+
+
+
+
+ "type": "github",
+
+
+
+
+
+ "url": "https://github.com/sponsors/ai"
+
+
+
+
+ }
+
+
+
+ ],
+
+
+
+ "license": "CC-BY-4.0"
+
+
+ },
+
+
+ "node_modules/chai": {
+
+
+
+ "version": "5.1.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz",
+
+
+
+ "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "assertion-error": "^2.0.1",
+
+
+
+
+ "check-error": "^2.1.1",
+
+
+
+
+ "deep-eql": "^5.0.1",
+
+
+
+
+ "loupe": "^3.1.0",
+
+
+
+
+ "pathval": "^2.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=12"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/chalk": {
+
+
+
+ "version": "4.1.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+
+
+
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "ansi-styles": "^4.1.0",
+
+
+
+
+ "supports-color": "^7.1.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/chalk/node_modules/supports-color": {
+
+
+
+ "version": "7.2.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+
+
+
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "has-flag": "^4.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/check-error": {
+
+
+
+ "version": "2.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
+
+
+
+ "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 16"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/chokidar": {
+
+
+
+ "version": "3.6.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+
+
+
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "anymatch": "~3.1.2",
+
+
+
+
+ "braces": "~3.0.2",
+
+
+
+
+ "glob-parent": "~5.1.2",
+
+
+
+
+ "is-binary-path": "~2.1.0",
+
+
+
+
+ "is-glob": "~4.0.1",
+
+
+
+
+ "normalize-path": "~3.0.0",
+
+
+
+
+ "readdirp": "~3.6.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 8.10.0"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://paulmillr.com/funding/"
+
+
+
+ },
+
+
+
+ "optionalDependencies": {
+
+
+
+
+ "fsevents": "~2.3.2"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/chownr": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
+
+
+
+ "license": "ISC",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cliui": {
+
+
+
+ "version": "7.0.4",
+
+
+
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+
+
+
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "string-width": "^4.2.0",
+
+
+
+
+ "strip-ansi": "^6.0.0",
+
+
+
+
+ "wrap-ansi": "^7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/color-convert": {
+
+
+
+ "version": "2.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+
+
+
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "color-name": "~1.1.4"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=7.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/color-name": {
+
+
+
+ "version": "1.1.4",
+
+
+
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+
+
+
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/color-support": {
+
+
+
+ "version": "1.1.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+
+
+
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
+
+
+
+ "license": "ISC",
+
+
+
+ "bin": {
+
+
+
+
+ "color-support": "bin.js"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/combined-stream": {
+
+
+
+ "version": "1.0.8",
+
+
+
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+
+
+
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "delayed-stream": "~1.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/component-emitter": {
+
+
+
+ "version": "1.3.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
+
+
+
+ "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/concat-map": {
+
+
+
+ "version": "0.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+
+
+
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/console-control-strings": {
+
+
+
+ "version": "1.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+
+
+
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/content-disposition": {
+
+
+
+ "version": "0.5.4",
+
+
+
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+
+
+
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "safe-buffer": "5.2.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/content-type": {
+
+
+
+ "version": "1.0.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+
+
+
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/convert-source-map": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/cookie": {
+
+
+
+ "version": "0.7.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
+
+
+
+ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cookie-signature": {
+
+
+
+ "version": "1.0.6",
+
+
+
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+
+
+
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/cookiejar": {
+
+
+
+ "version": "2.1.4",
+
+
+
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz",
+
+
+
+ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/core-js-compat": {
+
+
+
+ "version": "3.40.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz",
+
+
+
+ "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "browserslist": "^4.24.3"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "type": "opencollective",
+
+
+
+
+ "url": "https://opencollective.com/core-js"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cors": {
+
+
+
+ "version": "2.8.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+
+
+
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "object-assign": "^4",
+
+
+
+
+ "vary": "^1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.10"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/cross-spawn": {
+
+
+
+ "version": "7.0.6",
+
+
+
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+
+
+
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "path-key": "^3.1.0",
+
+
+
+
+ "shebang-command": "^2.0.0",
+
+
+
+
+ "which": "^2.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/debug": {
+
+
+
+ "version": "4.4.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+
+
+
+ "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "ms": "^2.1.3"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.0"
+
+
+
+ },
+
+
+
+ "peerDependenciesMeta": {
+
+
+
+
+ "supports-color": {
+
+
+
+
+
+ "optional": true
+
+
+
+
+ }
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/decamelize": {
+
+
+
+ "version": "4.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+
+
+
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/deep-eql": {
+
+
+
+ "version": "5.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
+
+
+
+ "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/delayed-stream": {
+
+
+
+ "version": "1.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+
+
+
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=0.4.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/delegates": {
+
+
+
+ "version": "1.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+
+
+
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/depd": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/destroy": {
+
+
+
+ "version": "1.2.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+
+
+
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8",
+
+
+
+
+ "npm": "1.2.8000 || >= 1.4.16"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/detect-libc": {
+
+
+
+ "version": "2.0.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
+
+
+
+ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
+
+
+
+ "license": "Apache-2.0",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/dezalgo": {
+
+
+
+ "version": "1.0.4",
+
+
+
+ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
+
+
+
+ "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "asap": "^2.0.0",
+
+
+
+
+ "wrappy": "1"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/diff": {
+
+
+
+ "version": "5.2.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
+
+
+
+ "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "BSD-3-Clause",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=0.3.1"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/dunder-proto": {
+
+
+
+ "version": "1.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+
+
+
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "call-bind-apply-helpers": "^1.0.1",
+
+
+
+
+ "es-errors": "^1.3.0",
+
+
+
+
+ "gopd": "^1.2.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/eastasianwidth": {
+
+
+
+ "version": "0.2.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+
+
+
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/ee-first": {
+
+
+
+ "version": "1.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+
+
+
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/electron-to-chromium": {
+
+
+
+ "version": "1.5.83",
+
+
+
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.83.tgz",
+
+
+
+ "integrity": "sha512-LcUDPqSt+V0QmI47XLzZrz5OqILSMGsPFkDYus22rIbgorSvBYEFqq854ltTmUdHkY92FSdAAvsh4jWEULMdfQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/emoji-regex": {
+
+
+
+ "version": "8.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+
+
+
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/encodeurl": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/es-define-property": {
+
+
+
+ "version": "1.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+
+
+
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/es-errors": {
+
+
+
+ "version": "1.3.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+
+
+
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/es-object-atoms": {
+
+
+
+ "version": "1.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+
+
+
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "es-errors": "^1.3.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/escalade": {
+
+
+
+ "version": "3.2.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+
+
+
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/escape-html": {
+
+
+
+ "version": "1.0.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+
+
+
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/escape-string-regexp": {
+
+
+
+ "version": "4.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+
+
+
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/esutils": {
+
+
+
+ "version": "2.0.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+
+
+
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "BSD-2-Clause",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=0.10.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/etag": {
+
+
+
+ "version": "1.8.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+
+
+
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/express": {
+
+
+
+ "version": "4.21.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
+
+
+
+ "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "accepts": "~1.3.8",
+
+
+
+
+ "array-flatten": "1.1.1",
+
+
+
+
+ "body-parser": "1.20.3",
+
+
+
+
+ "content-disposition": "0.5.4",
+
+
+
+
+ "content-type": "~1.0.4",
+
+
+
+
+ "cookie": "0.7.1",
+
+
+
+
+ "cookie-signature": "1.0.6",
+
+
+
+
+ "debug": "2.6.9",
+
+
+
+
+ "depd": "2.0.0",
+
+
+
+
+ "encodeurl": "~2.0.0",
+
+
+
+
+ "escape-html": "~1.0.3",
+
+
+
+
+ "etag": "~1.8.1",
+
+
+
+
+ "finalhandler": "1.3.1",
+
+
+
+
+ "fresh": "0.5.2",
+
+
+
+
+ "http-errors": "2.0.0",
+
+
+
+
+ "merge-descriptors": "1.0.3",
+
+
+
+
+ "methods": "~1.1.2",
+
+
+
+
+ "on-finished": "2.4.1",
+
+
+
+
+ "parseurl": "~1.3.3",
+
+
+
+
+ "path-to-regexp": "0.1.12",
+
+
+
+
+ "proxy-addr": "~2.0.7",
+
+
+
+
+ "qs": "6.13.0",
+
+
+
+
+ "range-parser": "~1.2.1",
+
+
+
+
+ "safe-buffer": "5.2.1",
+
+
+
+
+ "send": "0.19.0",
+
+
+
+
+ "serve-static": "1.16.2",
+
+
+
+
+ "setprototypeof": "1.2.0",
+
+
+
+
+ "statuses": "2.0.1",
+
+
+
+
+ "type-is": "~1.6.18",
+
+
+
+
+ "utils-merge": "1.0.1",
+
+
+
+
+ "vary": "~1.1.2"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.10.0"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "type": "opencollective",
+
+
+
+
+ "url": "https://opencollective.com/express"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/express/node_modules/debug": {
+
+
+
+ "version": "2.6.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+
+
+
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "ms": "2.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/express/node_modules/ms": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/fast-safe-stringify": {
+
+
+
+ "version": "2.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
+
+
+
+ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/fill-range": {
+
+
+
+ "version": "7.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+
+
+
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "to-regex-range": "^5.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/finalhandler": {
+
+
+
+ "version": "1.3.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
+
+
+
+ "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "debug": "2.6.9",
+
+
+
+
+ "encodeurl": "~2.0.0",
+
+
+
+
+ "escape-html": "~1.0.3",
+
+
+
+
+ "on-finished": "2.4.1",
+
+
+
+
+ "parseurl": "~1.3.3",
+
+
+
+
+ "statuses": "2.0.1",
+
+
+
+
+ "unpipe": "~1.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/finalhandler/node_modules/debug": {
+
+
+
+ "version": "2.6.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+
+
+
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "ms": "2.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/finalhandler/node_modules/ms": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/find-up": {
+
+
+
+ "version": "5.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+
+
+
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "locate-path": "^6.0.0",
+
+
+
+
+ "path-exists": "^4.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/flat": {
+
+
+
+ "version": "5.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+
+
+
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "BSD-3-Clause",
+
+
+
+ "bin": {
+
+
+
+
+ "flat": "cli.js"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/foreground-child": {
+
+
+
+ "version": "3.3.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
+
+
+
+ "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "cross-spawn": "^7.0.0",
+
+
+
+
+ "signal-exit": "^4.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=14"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/foreground-child/node_modules/signal-exit": {
+
+
+
+ "version": "4.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+
+
+
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=14"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/form-data": {
+
+
+
+ "version": "4.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz",
+
+
+
+ "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "asynckit": "^0.4.0",
+
+
+
+
+ "combined-stream": "^1.0.8",
+
+
+
+
+ "mime-types": "^2.1.12"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/formidable": {
+
+
+
+ "version": "3.5.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.2.tgz",
+
+
+
+ "integrity": "sha512-Jqc1btCy3QzRbJaICGwKcBfGWuLADRerLzDqi2NwSt/UkXLsHJw2TVResiaoBufHVHy9aSgClOHCeJsSsFLTbg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "dezalgo": "^1.0.4",
+
+
+
+
+ "hexoid": "^2.0.0",
+
+
+
+
+ "once": "^1.4.0"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://ko-fi.com/tunnckoCore/commissions"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/forwarded": {
+
+
+
+ "version": "0.2.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+
+
+
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/fresh": {
+
+
+
+ "version": "0.5.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+
+
+
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/fs-minipass": {
+
+
+
+ "version": "2.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+
+
+
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "minipass": "^3.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/fs-minipass/node_modules/minipass": {
+
+
+
+ "version": "3.3.6",
+
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+
+
+
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "yallist": "^4.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/fs.realpath": {
+
+
+
+ "version": "1.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+
+
+
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/fsevents": {
+
+
+
+ "version": "2.3.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+
+
+
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+
+
+
+ "dev": true,
+
+
+
+ "hasInstallScript": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "optional": true,
+
+
+
+ "os": [
+
+
+
+
+ "darwin"
+
+
+
+ ],
+
+
+
+ "engines": {
+
+
+
+
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/function-bind": {
+
+
+
+ "version": "1.1.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+
+
+
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/gauge": {
+
+
+
+ "version": "3.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
+
+
+
+ "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
+
+
+
+ "deprecated": "This package is no longer supported.",
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "aproba": "^1.0.3 || ^2.0.0",
+
+
+
+
+ "color-support": "^1.1.2",
+
+
+
+
+ "console-control-strings": "^1.0.0",
+
+
+
+
+ "has-unicode": "^2.0.1",
+
+
+
+
+ "object-assign": "^4.1.1",
+
+
+
+
+ "signal-exit": "^3.0.0",
+
+
+
+
+ "string-width": "^4.2.3",
+
+
+
+
+ "strip-ansi": "^6.0.1",
+
+
+
+
+ "wide-align": "^1.1.2"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/gensync": {
+
+
+
+ "version": "1.0.0-beta.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+
+
+
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6.9.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/get-caller-file": {
+
+
+
+ "version": "2.0.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+
+
+
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "engines": {
+
+
+
+
+ "node": "6.* || 8.* || >= 10.*"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/get-intrinsic": {
+
+
+
+ "version": "1.2.7",
+
+
+
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz",
+
+
+
+ "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "call-bind-apply-helpers": "^1.0.1",
+
+
+
+
+ "es-define-property": "^1.0.1",
+
+
+
+
+ "es-errors": "^1.3.0",
+
+
+
+
+ "es-object-atoms": "^1.0.0",
+
+
+
+
+ "function-bind": "^1.1.2",
+
+
+
+
+ "get-proto": "^1.0.0",
+
+
+
+
+ "gopd": "^1.2.0",
+
+
+
+
+ "has-symbols": "^1.1.0",
+
+
+
+
+ "hasown": "^2.0.2",
+
+
+
+
+ "math-intrinsics": "^1.1.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/get-proto": {
+
+
+
+ "version": "1.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+
+
+
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "dunder-proto": "^1.0.1",
+
+
+
+
+ "es-object-atoms": "^1.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/glob": {
+
+
+
+ "version": "7.2.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+
+
+
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+
+
+
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "fs.realpath": "^1.0.0",
+
+
+
+
+ "inflight": "^1.0.4",
+
+
+
+
+ "inherits": "2",
+
+
+
+
+ "minimatch": "^3.1.1",
+
+
+
+
+ "once": "^1.3.0",
+
+
+
+
+ "path-is-absolute": "^1.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": "*"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/glob-parent": {
+
+
+
+ "version": "5.1.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+
+
+
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "is-glob": "^4.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/globals": {
+
+
+
+ "version": "11.12.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+
+
+
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/gopd": {
+
+
+
+ "version": "1.2.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+
+
+
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/has-flag": {
+
+
+
+ "version": "4.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+
+
+
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/has-symbols": {
+
+
+
+ "version": "1.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+
+
+
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/has-unicode": {
+
+
+
+ "version": "2.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+
+
+
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/hasown": {
+
+
+
+ "version": "2.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+
+
+
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "function-bind": "^1.1.2"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/he": {
+
+
+
+ "version": "1.2.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+
+
+
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "bin": {
+
+
+
+
+ "he": "bin/he"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/hexoid": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-qlspKUK7IlSQv2o+5I7yhUd7TxlOG2Vr5LTa3ve2XSNVKAL/n/u/7KLvKmFNimomDIKvZFXWHv0T12mv7rT8Aw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/http-errors": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "depd": "2.0.0",
+
+
+
+
+ "inherits": "2.0.4",
+
+
+
+
+ "setprototypeof": "1.2.0",
+
+
+
+
+ "statuses": "2.0.1",
+
+
+
+
+ "toidentifier": "1.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/https-proxy-agent": {
+
+
+
+ "version": "5.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+
+
+
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "agent-base": "6",
+
+
+
+
+ "debug": "4"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/iconv-lite": {
+
+
+
+ "version": "0.4.24",
+
+
+
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+
+
+
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "safer-buffer": ">= 2.1.2 < 3"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=0.10.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inflight": {
+
+
+
+ "version": "1.0.6",
+
+
+
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+
+
+
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+
+
+
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "once": "^1.3.0",
+
+
+
+
+ "wrappy": "1"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/inherits": {
+
+
+
+ "version": "2.0.4",
+
+
+
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+
+
+
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/ipaddr.js": {
+
+
+
+ "version": "1.9.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+
+
+
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.10"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-binary-path": {
+
+
+
+ "version": "2.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+
+
+
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "binary-extensions": "^2.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-core-module": {
+
+
+
+ "version": "2.16.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+
+
+
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "hasown": "^2.0.2"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-extglob": {
+
+
+
+ "version": "2.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+
+
+
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=0.10.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-fullwidth-code-point": {
+
+
+
+ "version": "3.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+
+
+
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-glob": {
+
+
+
+ "version": "4.0.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+
+
+
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "is-extglob": "^2.1.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=0.10.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-number": {
+
+
+
+ "version": "7.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+
+
+
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=0.12.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-plain-obj": {
+
+
+
+ "version": "2.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+
+
+
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/is-unicode-supported": {
+
+
+
+ "version": "0.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+
+
+
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/isexe": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/jackspeak": {
+
+
+
+ "version": "3.4.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+
+
+
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "BlueOak-1.0.0",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@isaacs/cliui": "^8.0.2"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+
+ },
+
+
+
+ "optionalDependencies": {
+
+
+
+
+ "@pkgjs/parseargs": "^0.11.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/js-tokens": {
+
+
+
+ "version": "4.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+
+
+
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/js-yaml": {
+
+
+
+ "version": "4.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+
+
+
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "argparse": "^2.0.1"
+
+
+
+ },
+
+
+
+ "bin": {
+
+
+
+
+ "js-yaml": "bin/js-yaml.js"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/jsesc": {
+
+
+
+ "version": "3.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+
+
+
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "bin": {
+
+
+
+
+ "jsesc": "bin/jsesc"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/json5": {
+
+
+
+ "version": "2.2.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+
+
+
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "bin": {
+
+
+
+
+ "json5": "lib/cli.js"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/kareem": {
+
+
+
+ "version": "2.6.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz",
+
+
+
+ "integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==",
+
+
+
+ "license": "Apache-2.0",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=12.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/locate-path": {
+
+
+
+ "version": "6.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+
+
+
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "p-locate": "^5.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/lodash.debounce": {
+
+
+
+ "version": "4.0.8",
+
+
+
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+
+
+
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/log-symbols": {
+
+
+
+ "version": "4.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+
+
+
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "chalk": "^4.1.0",
+
+
+
+
+ "is-unicode-supported": "^0.1.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/loupe": {
+
+
+
+ "version": "3.1.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz",
+
+
+
+ "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/lru-cache": {
+
+
+
+ "version": "5.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+
+
+
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "yallist": "^3.0.2"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/lru-cache/node_modules/yallist": {
+
+
+
+ "version": "3.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+
+
+
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/make-dir": {
+
+
+
+ "version": "3.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+
+
+
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "semver": "^6.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/make-dir/node_modules/semver": {
+
+
+
+ "version": "6.3.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+
+
+
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+
+
+
+ "license": "ISC",
+
+
+
+ "bin": {
+
+
+
+
+ "semver": "bin/semver.js"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/math-intrinsics": {
+
+
+
+ "version": "1.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+
+
+
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/media-typer": {
+
+
+
+ "version": "0.3.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+
+
+
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/memory-pager": {
+
+
+
+ "version": "1.5.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
+
+
+
+ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/merge-descriptors": {
+
+
+
+ "version": "1.0.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
+
+
+
+ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
+
+
+
+ "license": "MIT",
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/methods": {
+
+
+
+ "version": "1.1.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+
+
+
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mime": {
+
+
+
+ "version": "1.6.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+
+
+
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "bin": {
+
+
+
+
+ "mime": "cli.js"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mime-db": {
+
+
+
+ "version": "1.52.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+
+
+
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mime-types": {
+
+
+
+ "version": "2.1.35",
+
+
+
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+
+
+
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "mime-db": "1.52.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minimatch": {
+
+
+
+ "version": "3.1.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+
+
+
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "brace-expansion": "^1.1.7"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": "*"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minipass": {
+
+
+
+ "version": "5.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
+
+
+
+ "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
+
+
+
+ "license": "ISC",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minizlib": {
+
+
+
+ "version": "2.1.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+
+
+
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "minipass": "^3.0.0",
+
+
+
+
+ "yallist": "^4.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/minizlib/node_modules/minipass": {
+
+
+
+ "version": "3.3.6",
+
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+
+
+
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "yallist": "^4.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mkdirp": {
+
+
+
+ "version": "1.0.4",
+
+
+
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+
+
+
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+
+
+
+ "license": "MIT",
+
+
+
+ "bin": {
+
+
+
+
+ "mkdirp": "bin/cmd.js"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mocha": {
+
+
+
+ "version": "11.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-11.0.1.tgz",
+
+
+
+ "integrity": "sha512-+3GkODfsDG71KSCQhc4IekSW+ItCK/kiez1Z28ksWvYhKXV/syxMlerR/sC7whDp7IyreZ4YxceMLdTs5hQE8A==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "ansi-colors": "^4.1.3",
+
+
+
+
+ "browser-stdout": "^1.3.1",
+
+
+
+
+ "chokidar": "^3.5.3",
+
+
+
+
+ "debug": "^4.3.5",
+
+
+
+
+ "diff": "^5.2.0",
+
+
+
+
+ "escape-string-regexp": "^4.0.0",
+
+
+
+
+ "find-up": "^5.0.0",
+
+
+
+
+ "glob": "^10.4.5",
+
+
+
+
+ "he": "^1.2.0",
+
+
+
+
+ "js-yaml": "^4.1.0",
+
+
+
+
+ "log-symbols": "^4.1.0",
+
+
+
+
+ "minimatch": "^5.1.6",
+
+
+
+
+ "ms": "^2.1.3",
+
+
+
+
+ "serialize-javascript": "^6.0.2",
+
+
+
+
+ "strip-json-comments": "^3.1.1",
+
+
+
+
+ "supports-color": "^8.1.1",
+
+
+
+
+ "workerpool": "^6.5.1",
+
+
+
+
+ "yargs": "^16.2.0",
+
+
+
+
+ "yargs-parser": "^20.2.9",
+
+
+
+
+ "yargs-unparser": "^2.0.0"
+
+
+
+ },
+
+
+
+ "bin": {
+
+
+
+
+ "_mocha": "bin/_mocha",
+
+
+
+
+ "mocha": "bin/mocha.js"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mocha/node_modules/brace-expansion": {
+
+
+
+ "version": "2.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+
+
+
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "balanced-match": "^1.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mocha/node_modules/glob": {
+
+
+
+ "version": "10.4.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
+
+
+
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "foreground-child": "^3.1.0",
+
+
+
+
+ "jackspeak": "^3.1.2",
+
+
+
+
+ "minimatch": "^9.0.4",
+
+
+
+
+ "minipass": "^7.1.2",
+
+
+
+
+ "package-json-from-dist": "^1.0.0",
+
+
+
+
+ "path-scurry": "^1.11.1"
+
+
+
+ },
+
+
+
+ "bin": {
+
+
+
+
+ "glob": "dist/esm/bin.mjs"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mocha/node_modules/glob/node_modules/minimatch": {
+
+
+
+ "version": "9.0.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+
+
+
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "brace-expansion": "^2.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=16 || 14 >=14.17"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mocha/node_modules/minimatch": {
+
+
+
+ "version": "5.1.6",
+
+
+
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
+
+
+
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "brace-expansion": "^2.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mocha/node_modules/minipass": {
+
+
+
+ "version": "7.1.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+
+
+
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=16 || 14 >=14.17"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mongodb": {
+
+
+
+ "version": "6.12.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.12.0.tgz",
+
+
+
+ "integrity": "sha512-RM7AHlvYfS7jv7+BXund/kR64DryVI+cHbVAy9P61fnb1RcWZqOW1/Wj2YhqMCx+MuYhqTRGv7AwHBzmsCKBfA==",
+
+
+
+ "license": "Apache-2.0",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@mongodb-js/saslprep": "^1.1.9",
+
+
+
+
+ "bson": "^6.10.1",
+
+
+
+
+ "mongodb-connection-string-url": "^3.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=16.20.1"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "@aws-sdk/credential-providers": "^3.188.0",
+
+
+
+
+ "@mongodb-js/zstd": "^1.1.0 || ^2.0.0",
+
+
+
+
+ "gcp-metadata": "^5.2.0",
+
+
+
+
+ "kerberos": "^2.0.1",
+
+
+
+
+ "mongodb-client-encryption": ">=6.0.0 <7",
+
+
+
+
+ "snappy": "^7.2.2",
+
+
+
+
+ "socks": "^2.7.1"
+
+
+
+ },
+
+
+
+ "peerDependenciesMeta": {
+
+
+
+
+ "@aws-sdk/credential-providers": {
+
+
+
+
+
+ "optional": true
+
+
+
+
+ },
+
+
+
+
+ "@mongodb-js/zstd": {
+
+
+
+
+
+ "optional": true
+
+
+
+
+ },
+
+
+
+
+ "gcp-metadata": {
+
+
+
+
+
+ "optional": true
+
+
+
+
+ },
+
+
+
+
+ "kerberos": {
+
+
+
+
+
+ "optional": true
+
+
+
+
+ },
+
+
+
+
+ "mongodb-client-encryption": {
+
+
+
+
+
+ "optional": true
+
+
+
+
+ },
+
+
+
+
+ "snappy": {
+
+
+
+
+
+ "optional": true
+
+
+
+
+ },
+
+
+
+
+ "socks": {
+
+
+
+
+
+ "optional": true
+
+
+
+
+ }
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mongodb-connection-string-url": {
+
+
+
+ "version": "3.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.1.tgz",
+
+
+
+ "integrity": "sha512-XqMGwRX0Lgn05TDB4PyG2h2kKO/FfWJyCzYQbIhXUxz7ETt0I/FqHjUeqj37irJ+Dl1ZtU82uYyj14u2XsZKfg==",
+
+
+
+ "license": "Apache-2.0",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@types/whatwg-url": "^11.0.2",
+
+
+
+
+ "whatwg-url": "^13.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mongoose": {
+
+
+
+ "version": "8.9.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.9.5.tgz",
+
+
+
+ "integrity": "sha512-SPhOrgBm0nKV3b+IIHGqpUTOmgVL5Z3OO9AwkFEmvOZznXTvplbomstCnPOGAyungtRXE5pJTgKpKcZTdjeESg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "bson": "^6.10.1",
+
+
+
+
+ "kareem": "2.6.3",
+
+
+
+
+ "mongodb": "~6.12.0",
+
+
+
+
+ "mpath": "0.9.0",
+
+
+
+
+ "mquery": "5.0.0",
+
+
+
+
+ "ms": "2.1.3",
+
+
+
+
+ "sift": "17.1.3"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=16.20.1"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "type": "opencollective",
+
+
+
+
+ "url": "https://opencollective.com/mongoose"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mpath": {
+
+
+
+ "version": "0.9.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz",
+
+
+
+ "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=4.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/mquery": {
+
+
+
+ "version": "5.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz",
+
+
+
+ "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "debug": "4.x"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=14.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/ms": {
+
+
+
+ "version": "2.1.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+
+
+
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/negotiator": {
+
+
+
+ "version": "0.6.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+
+
+
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/node-addon-api": {
+
+
+
+ "version": "5.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
+
+
+
+ "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/node-fetch": {
+
+
+
+ "version": "2.7.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+
+
+
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "whatwg-url": "^5.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": "4.x || >=6.0.0"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "encoding": "^0.1.0"
+
+
+
+ },
+
+
+
+ "peerDependenciesMeta": {
+
+
+
+
+ "encoding": {
+
+
+
+
+
+ "optional": true
+
+
+
+
+ }
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/node-fetch/node_modules/tr46": {
+
+
+
+ "version": "0.0.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+
+
+
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/node-fetch/node_modules/webidl-conversions": {
+
+
+
+ "version": "3.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+
+
+
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+
+
+
+ "license": "BSD-2-Clause"
+
+
+ },
+
+
+ "node_modules/node-fetch/node_modules/whatwg-url": {
+
+
+
+ "version": "5.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+
+
+
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "tr46": "~0.0.3",
+
+
+
+
+ "webidl-conversions": "^3.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/node-releases": {
+
+
+
+ "version": "2.0.19",
+
+
+
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
+
+
+
+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/nopt": {
+
+
+
+ "version": "5.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
+
+
+
+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "abbrev": "1"
+
+
+
+ },
+
+
+
+ "bin": {
+
+
+
+
+ "nopt": "bin/nopt.js"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/normalize-path": {
+
+
+
+ "version": "3.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+
+
+
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=0.10.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/npmlog": {
+
+
+
+ "version": "5.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
+
+
+
+ "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
+
+
+
+ "deprecated": "This package is no longer supported.",
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "are-we-there-yet": "^2.0.0",
+
+
+
+
+ "console-control-strings": "^1.1.0",
+
+
+
+
+ "gauge": "^3.0.0",
+
+
+
+
+ "set-blocking": "^2.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/object-assign": {
+
+
+
+ "version": "4.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+
+
+
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=0.10.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/object-inspect": {
+
+
+
+ "version": "1.13.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
+
+
+
+ "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/on-finished": {
+
+
+
+ "version": "2.4.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+
+
+
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "ee-first": "1.1.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/once": {
+
+
+
+ "version": "1.4.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+
+
+
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "wrappy": "1"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/p-limit": {
+
+
+
+ "version": "3.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+
+
+
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "yocto-queue": "^0.1.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/p-locate": {
+
+
+
+ "version": "5.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+
+
+
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "p-limit": "^3.0.2"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/package-json-from-dist": {
+
+
+
+ "version": "1.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+
+
+
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "BlueOak-1.0.0"
+
+
+ },
+
+
+ "node_modules/parseurl": {
+
+
+
+ "version": "1.3.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+
+
+
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/path-exists": {
+
+
+
+ "version": "4.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+
+
+
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/path-is-absolute": {
+
+
+
+ "version": "1.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+
+
+
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=0.10.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/path-key": {
+
+
+
+ "version": "3.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+
+
+
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/path-parse": {
+
+
+
+ "version": "1.0.7",
+
+
+
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+
+
+
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/path-scurry": {
+
+
+
+ "version": "1.11.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+
+
+
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "BlueOak-1.0.0",
+
+
+
+ "dependencies": {
+
+
+
+
+ "lru-cache": "^10.2.0",
+
+
+
+
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=16 || 14 >=14.18"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/path-scurry/node_modules/lru-cache": {
+
+
+
+ "version": "10.4.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+
+
+
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/path-to-regexp": {
+
+
+
+ "version": "0.1.12",
+
+
+
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+
+
+
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/pathval": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 14.16"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/picocolors": {
+
+
+
+ "version": "1.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+
+
+
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/picomatch": {
+
+
+
+ "version": "2.3.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+
+
+
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8.6"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/jonschlinkert"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/proxy-addr": {
+
+
+
+ "version": "2.0.7",
+
+
+
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+
+
+
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "forwarded": "0.2.0",
+
+
+
+
+ "ipaddr.js": "1.9.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.10"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/punycode": {
+
+
+
+ "version": "2.3.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+
+
+
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/qs": {
+
+
+
+ "version": "6.13.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
+
+
+
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+
+
+
+ "license": "BSD-3-Clause",
+
+
+
+ "dependencies": {
+
+
+
+
+ "side-channel": "^1.0.6"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=0.6"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/randombytes": {
+
+
+
+ "version": "2.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+
+
+
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "safe-buffer": "^5.1.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/range-parser": {
+
+
+
+ "version": "1.2.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+
+
+
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/raw-body": {
+
+
+
+ "version": "2.5.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+
+
+
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "bytes": "3.1.2",
+
+
+
+
+ "http-errors": "2.0.0",
+
+
+
+
+ "iconv-lite": "0.4.24",
+
+
+
+
+ "unpipe": "1.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/readable-stream": {
+
+
+
+ "version": "3.6.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+
+
+
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "inherits": "^2.0.3",
+
+
+
+
+ "string_decoder": "^1.1.1",
+
+
+
+
+ "util-deprecate": "^1.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/readdirp": {
+
+
+
+ "version": "3.6.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+
+
+
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "picomatch": "^2.2.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8.10.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/regenerate": {
+
+
+
+ "version": "1.4.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+
+
+
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/regenerate-unicode-properties": {
+
+
+
+ "version": "10.2.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz",
+
+
+
+ "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "regenerate": "^1.4.2"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/regenerator-runtime": {
+
+
+
+ "version": "0.14.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+
+
+
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/regenerator-transform": {
+
+
+
+ "version": "0.15.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
+
+
+
+ "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "@babel/runtime": "^7.8.4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/regexpu-core": {
+
+
+
+ "version": "6.2.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz",
+
+
+
+ "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "regenerate": "^1.4.2",
+
+
+
+
+ "regenerate-unicode-properties": "^10.2.0",
+
+
+
+
+ "regjsgen": "^0.8.0",
+
+
+
+
+ "regjsparser": "^0.12.0",
+
+
+
+
+ "unicode-match-property-ecmascript": "^2.0.0",
+
+
+
+
+ "unicode-match-property-value-ecmascript": "^2.1.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/regjsgen": {
+
+
+
+ "version": "0.8.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz",
+
+
+
+ "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/regjsparser": {
+
+
+
+ "version": "0.12.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz",
+
+
+
+ "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "BSD-2-Clause",
+
+
+
+ "dependencies": {
+
+
+
+
+ "jsesc": "~3.0.2"
+
+
+
+ },
+
+
+
+ "bin": {
+
+
+
+
+ "regjsparser": "bin/parser"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/regjsparser/node_modules/jsesc": {
+
+
+
+ "version": "3.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+
+
+
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "bin": {
+
+
+
+
+ "jsesc": "bin/jsesc"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/require-directory": {
+
+
+
+ "version": "2.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+
+
+
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=0.10.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/resolve": {
+
+
+
+ "version": "1.22.10",
+
+
+
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+
+
+
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "is-core-module": "^2.16.0",
+
+
+
+
+ "path-parse": "^1.0.7",
+
+
+
+
+ "supports-preserve-symlinks-flag": "^1.0.0"
+
+
+
+ },
+
+
+
+ "bin": {
+
+
+
+
+ "resolve": "bin/resolve"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/rimraf": {
+
+
+
+ "version": "3.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+
+
+
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+
+
+
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "glob": "^7.1.3"
+
+
+
+ },
+
+
+
+ "bin": {
+
+
+
+
+ "rimraf": "bin.js"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/isaacs"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/safe-buffer": {
+
+
+
+ "version": "5.2.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+
+
+
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+
+
+
+ "funding": [
+
+
+
+
+ {
+
+
+
+
+
+ "type": "github",
+
+
+
+
+
+ "url": "https://github.com/sponsors/feross"
+
+
+
+
+ },
+
+
+
+
+ {
+
+
+
+
+
+ "type": "patreon",
+
+
+
+
+
+ "url": "https://www.patreon.com/feross"
+
+
+
+
+ },
+
+
+
+
+ {
+
+
+
+
+
+ "type": "consulting",
+
+
+
+
+
+ "url": "https://feross.org/support"
+
+
+
+
+ }
+
+
+
+ ],
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/safer-buffer": {
+
+
+
+ "version": "2.1.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+
+
+
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/semver": {
+
+
+
+ "version": "7.6.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+
+
+
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+
+
+
+ "license": "ISC",
+
+
+
+ "bin": {
+
+
+
+
+ "semver": "bin/semver.js"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/send": {
+
+
+
+ "version": "0.19.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
+
+
+
+ "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "debug": "2.6.9",
+
+
+
+
+ "depd": "2.0.0",
+
+
+
+
+ "destroy": "1.2.0",
+
+
+
+
+ "encodeurl": "~1.0.2",
+
+
+
+
+ "escape-html": "~1.0.3",
+
+
+
+
+ "etag": "~1.8.1",
+
+
+
+
+ "fresh": "0.5.2",
+
+
+
+
+ "http-errors": "2.0.0",
+
+
+
+
+ "mime": "1.6.0",
+
+
+
+
+ "ms": "2.1.3",
+
+
+
+
+ "on-finished": "2.4.1",
+
+
+
+
+ "range-parser": "~1.2.1",
+
+
+
+
+ "statuses": "2.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/send/node_modules/debug": {
+
+
+
+ "version": "2.6.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+
+
+
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "ms": "2.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/send/node_modules/debug/node_modules/ms": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/send/node_modules/encodeurl": {
+
+
+
+ "version": "1.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+
+
+
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/serialize-javascript": {
+
+
+
+ "version": "6.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+
+
+
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "BSD-3-Clause",
+
+
+
+ "dependencies": {
+
+
+
+
+ "randombytes": "^2.1.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/serve-static": {
+
+
+
+ "version": "1.16.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
+
+
+
+ "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "encodeurl": "~2.0.0",
+
+
+
+
+ "escape-html": "~1.0.3",
+
+
+
+
+ "parseurl": "~1.3.3",
+
+
+
+
+ "send": "0.19.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/set-blocking": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/setprototypeof": {
+
+
+
+ "version": "1.2.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+
+
+
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/shebang-command": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "shebang-regex": "^3.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/shebang-regex": {
+
+
+
+ "version": "3.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+
+
+
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/side-channel": {
+
+
+
+ "version": "1.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+
+
+
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "es-errors": "^1.3.0",
+
+
+
+
+ "object-inspect": "^1.13.3",
+
+
+
+
+ "side-channel-list": "^1.0.0",
+
+
+
+
+ "side-channel-map": "^1.0.1",
+
+
+
+
+ "side-channel-weakmap": "^1.0.2"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/side-channel-list": {
+
+
+
+ "version": "1.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+
+
+
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "es-errors": "^1.3.0",
+
+
+
+
+ "object-inspect": "^1.13.3"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/side-channel-map": {
+
+
+
+ "version": "1.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+
+
+
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "call-bound": "^1.0.2",
+
+
+
+
+ "es-errors": "^1.3.0",
+
+
+
+
+ "get-intrinsic": "^1.2.5",
+
+
+
+
+ "object-inspect": "^1.13.3"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/side-channel-weakmap": {
+
+
+
+ "version": "1.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+
+
+
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "call-bound": "^1.0.2",
+
+
+
+
+ "es-errors": "^1.3.0",
+
+
+
+
+ "get-intrinsic": "^1.2.5",
+
+
+
+
+ "object-inspect": "^1.13.3",
+
+
+
+
+ "side-channel-map": "^1.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/sift": {
+
+
+
+ "version": "17.1.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz",
+
+
+
+ "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/signal-exit": {
+
+
+
+ "version": "3.0.7",
+
+
+
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+
+
+
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/sparse-bitfield": {
+
+
+
+ "version": "3.0.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
+
+
+
+ "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "memory-pager": "^1.0.2"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/statuses": {
+
+
+
+ "version": "2.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+
+
+
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/string_decoder": {
+
+
+
+ "version": "1.3.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+
+
+
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "safe-buffer": "~5.2.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/string-width": {
+
+
+
+ "version": "4.2.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+
+
+
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "emoji-regex": "^8.0.0",
+
+
+
+
+ "is-fullwidth-code-point": "^3.0.0",
+
+
+
+
+ "strip-ansi": "^6.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/string-width-cjs": {
+
+
+
+ "name": "string-width",
+
+
+
+ "version": "4.2.3",
+
+
+
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+
+
+
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "emoji-regex": "^8.0.0",
+
+
+
+
+ "is-fullwidth-code-point": "^3.0.0",
+
+
+
+
+ "strip-ansi": "^6.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/strip-ansi": {
+
+
+
+ "version": "6.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "ansi-regex": "^5.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/strip-ansi-cjs": {
+
+
+
+ "name": "strip-ansi",
+
+
+
+ "version": "6.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+
+
+
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "ansi-regex": "^5.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/strip-json-comments": {
+
+
+
+ "version": "3.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+
+
+
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/superagent": {
+
+
+
+ "version": "9.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz",
+
+
+
+ "integrity": "sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "component-emitter": "^1.3.0",
+
+
+
+
+ "cookiejar": "^2.1.4",
+
+
+
+
+ "debug": "^4.3.4",
+
+
+
+
+ "fast-safe-stringify": "^2.1.1",
+
+
+
+
+ "form-data": "^4.0.0",
+
+
+
+
+ "formidable": "^3.5.1",
+
+
+
+
+ "methods": "^1.1.2",
+
+
+
+
+ "mime": "2.6.0",
+
+
+
+
+ "qs": "^6.11.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=14.18.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/superagent/node_modules/mime": {
+
+
+
+ "version": "2.6.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+
+
+
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "bin": {
+
+
+
+
+ "mime": "cli.js"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=4.0.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/supertest": {
+
+
+
+ "version": "7.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.0.0.tgz",
+
+
+
+ "integrity": "sha512-qlsr7fIC0lSddmA3tzojvzubYxvlGtzumcdHgPwbFWMISQwL22MhM2Y3LNt+6w9Yyx7559VW5ab70dgphm8qQA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "methods": "^1.1.2",
+
+
+
+
+ "superagent": "^9.0.1"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=14.18.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/supports-color": {
+
+
+
+ "version": "8.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+
+
+
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "has-flag": "^4.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/supports-preserve-symlinks-flag": {
+
+
+
+ "version": "1.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+
+
+
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/ljharb"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/tar": {
+
+
+
+ "version": "6.2.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz",
+
+
+
+ "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==",
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "chownr": "^2.0.0",
+
+
+
+
+ "fs-minipass": "^2.0.0",
+
+
+
+
+ "minipass": "^5.0.0",
+
+
+
+
+ "minizlib": "^2.1.1",
+
+
+
+
+ "mkdirp": "^1.0.3",
+
+
+
+
+ "yallist": "^4.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/to-regex-range": {
+
+
+
+ "version": "5.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+
+
+
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "is-number": "^7.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=8.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/toidentifier": {
+
+
+
+ "version": "1.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+
+
+
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=0.6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/tr46": {
+
+
+
+ "version": "4.1.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz",
+
+
+
+ "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "punycode": "^2.3.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=14"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/type-is": {
+
+
+
+ "version": "1.6.18",
+
+
+
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+
+
+
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "media-typer": "0.3.0",
+
+
+
+
+ "mime-types": "~2.1.24"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.6"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/undici-types": {
+
+
+
+ "version": "6.20.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
+
+
+
+ "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/unicode-canonical-property-names-ecmascript": {
+
+
+
+ "version": "2.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
+
+
+
+ "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/unicode-match-property-ecmascript": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "unicode-canonical-property-names-ecmascript": "^2.0.0",
+
+
+
+
+ "unicode-property-aliases-ecmascript": "^2.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/unicode-match-property-value-ecmascript": {
+
+
+
+ "version": "2.2.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz",
+
+
+
+ "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/unicode-property-aliases-ecmascript": {
+
+
+
+ "version": "2.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+
+
+
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/unpipe": {
+
+
+
+ "version": "1.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+
+
+
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/update-browserslist-db": {
+
+
+
+ "version": "1.1.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz",
+
+
+
+ "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==",
+
+
+
+ "dev": true,
+
+
+
+ "funding": [
+
+
+
+
+ {
+
+
+
+
+
+ "type": "opencollective",
+
+
+
+
+
+ "url": "https://opencollective.com/browserslist"
+
+
+
+
+ },
+
+
+
+
+ {
+
+
+
+
+
+ "type": "tidelift",
+
+
+
+
+
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+
+
+
+
+ },
+
+
+
+
+ {
+
+
+
+
+
+ "type": "github",
+
+
+
+
+
+ "url": "https://github.com/sponsors/ai"
+
+
+
+
+ }
+
+
+
+ ],
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "escalade": "^3.2.0",
+
+
+
+
+ "picocolors": "^1.1.1"
+
+
+
+ },
+
+
+
+ "bin": {
+
+
+
+
+ "update-browserslist-db": "cli.js"
+
+
+
+ },
+
+
+
+ "peerDependencies": {
+
+
+
+
+ "browserslist": ">= 4.21.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/util-deprecate": {
+
+
+
+ "version": "1.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+
+
+
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+
+
+
+ "license": "MIT"
+
+
+ },
+
+
+ "node_modules/utils-merge": {
+
+
+
+ "version": "1.0.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+
+
+
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.4.0"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/vary": {
+
+
+
+ "version": "1.1.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+
+
+
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 0.8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/webidl-conversions": {
+
+
+
+ "version": "7.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+
+
+
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+
+
+
+ "license": "BSD-2-Clause",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=12"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/whatwg-url": {
+
+
+
+ "version": "13.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz",
+
+
+
+ "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==",
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "tr46": "^4.1.1",
+
+
+
+
+ "webidl-conversions": "^7.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=16"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/which": {
+
+
+
+ "version": "2.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+
+
+
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "isexe": "^2.0.0"
+
+
+
+ },
+
+
+
+ "bin": {
+
+
+
+
+ "node-which": "bin/node-which"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">= 8"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/wide-align": {
+
+
+
+ "version": "1.1.5",
+
+
+
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+
+
+
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+
+
+
+ "license": "ISC",
+
+
+
+ "dependencies": {
+
+
+
+
+ "string-width": "^1.0.2 || 2 || 3 || 4"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/workerpool": {
+
+
+
+ "version": "6.5.1",
+
+
+
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz",
+
+
+
+ "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "Apache-2.0"
+
+
+ },
+
+
+ "node_modules/wrap-ansi": {
+
+
+
+ "version": "7.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+
+
+
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "ansi-styles": "^4.0.0",
+
+
+
+
+ "string-width": "^4.1.0",
+
+
+
+
+ "strip-ansi": "^6.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/wrap-ansi-cjs": {
+
+
+
+ "name": "wrap-ansi",
+
+
+
+ "version": "7.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+
+
+
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "ansi-styles": "^4.0.0",
+
+
+
+
+ "string-width": "^4.1.0",
+
+
+
+
+ "strip-ansi": "^6.0.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/wrappy": {
+
+
+
+ "version": "1.0.2",
+
+
+
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+
+
+
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/y18n": {
+
+
+
+ "version": "5.0.8",
+
+
+
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+
+
+
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/yallist": {
+
+
+
+ "version": "4.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+
+
+
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+
+
+
+ "license": "ISC"
+
+
+ },
+
+
+ "node_modules/yargs": {
+
+
+
+ "version": "16.2.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+
+
+
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "cliui": "^7.0.2",
+
+
+
+
+ "escalade": "^3.1.1",
+
+
+
+
+ "get-caller-file": "^2.0.5",
+
+
+
+
+ "require-directory": "^2.1.1",
+
+
+
+
+ "string-width": "^4.2.0",
+
+
+
+
+ "y18n": "^5.0.5",
+
+
+
+
+ "yargs-parser": "^20.2.2"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/yargs-parser": {
+
+
+
+ "version": "20.2.9",
+
+
+
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+
+
+
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "ISC",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/yargs-unparser": {
+
+
+
+ "version": "2.0.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
+
+
+
+ "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "dependencies": {
+
+
+
+
+ "camelcase": "^6.0.0",
+
+
+
+
+ "decamelize": "^4.0.0",
+
+
+
+
+ "flat": "^5.0.2",
+
+
+
+
+ "is-plain-obj": "^2.1.0"
+
+
+
+ },
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ }
+
+
+ },
+
+
+ "node_modules/yocto-queue": {
+
+
+
+ "version": "0.1.0",
+
+
+
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+
+
+
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+
+
+
+ "dev": true,
+
+
+
+ "license": "MIT",
+
+
+
+ "engines": {
+
+
+
+
+ "node": ">=10"
+
+
+
+ },
+
+
+
+ "funding": {
+
+
+
+
+ "url": "https://github.com/sponsors/sindresorhus"
+
+
+
+ }
+
+
+ }
+
}
}
diff --git a/server/package.json b/server/package.json
index 29c6d9e..ffb9715 100644
--- a/server/package.json
+++ b/server/package.json
@@ -1,19 +1,76 @@
{
+
"name": "server",
+
+ "type": "module",
+
"version": "1.0.0",
+
"main": "index.js",
+
"scripts": {
- "test": "echo \"Error: no test specified\" && exit 1",
- "server": "node index.js",
- "db:seed": "node scripts/seed.js"
+
+
+ "test": "mocha 'test/**/*.js'",
+
+
+ "server": "node index.js",
+
+
+ "db:seed": "node scripts/seed.js"
+
},
+
"author": "",
+
"license": "ISC",
+
"description": "",
+
"dependencies": {
- "bcrypt": "^5.1.1",
- "cors": "^2.8.5",
- "express": "^4.21.2",
- "mongoose": "^8.9.3"
+
+
+ "bcrypt": "^5.1.1",
+
+
+ "cors": "^2.8.5",
+
+
+ "express": "^4.21.2",
+
+
+ "mongoose": "^8.9.5"
+
+ },
+
+ "devDependencies": {
+
+
+ "@babel/core": "^7.26.0",
+
+
+ "@babel/preset-env": "^7.26.0",
+
+
+ "@types/chai": "^5.0.1",
+
+
+ "@types/express": "^5.0.0",
+
+
+ "@types/mocha": "^10.0.10",
+
+
+ "@types/supertest": "^6.0.2",
+
+
+ "chai": "^5.1.2",
+
+
+ "mocha": "^11.0.1",
+
+
+ "supertest": "^7.0.0"
+
}
}
diff --git a/server/router.js b/server/router.js
index f2b4b05..c1a85d8 100644
--- a/server/router.js
+++ b/server/router.js
@@ -1,23 +1,47 @@
-'use strict';
-import express from 'express';
-import {getAllCategories} from './controllers/categoryController.js';
-import {getRecipes, getRecipe, getRecipesByCategory, getLastAddedRecipes, postRecipe, postReview} from './controllers/recipeController.js';
-import {login, updateUploaded, updateFavorites} from './controllers/userController.js';
+"use strict";
+import express from "express";
+import { getAllCategories } from "./controllers/categoryController.js";
+import {
+ getRecipes,
+ getRecipe,
+ getRecipesByCategory,
+ getLastAddedRecipes,
+ postRecipe,
+ postReview,
+} from "./controllers/recipeController.js";
+import {
+ login,
+ updateUploaded,
+ updateFavorites,
+} from "./controllers/userController.js";
const router = express.Router();
-router.get('/recipes', getRecipes);
-router.get('/recipes/latest', getLastAddedRecipes);
-router.get('/recipes/:recipeId', getRecipe);
-router.get('/recipes/category/:category', getRecipesByCategory);
+router.get("/recipes", getRecipes);
+router.get("/recipes/latest", getLastAddedRecipes);
+router.get("/recipes/:recipeId", getRecipe);
+router.get("/recipes/category/:category", getRecipesByCategory);
-router.post('/recipe', postRecipe);
-router.put('/recipes/:recipeId', postReview);
+router.post("/recipe", postRecipe);
+router.put("/recipes/:recipeId", postReview);
-router.get('/categories', getAllCategories);
+router.get("/categories", getAllCategories);
-router.post('/user/authenticate', login);
-router.put('/user/uploaded', updateUploaded);
-router.put('/user/favorites', updateFavorites);
+router.post("/user/authenticate", login);
+router.put("/user/uploaded", updateUploaded);
+router.put("/user/favorites", updateFavorites);
-export default router;
\ No newline at end of file
+router.get("/status", (req, res) => {
+ res.status(200).send("Server is running β¨π");
+});
+
+router.post("/", (req, res) => {
+ res.status(200).json(req.body);
+});
+
+router.get("/PORT", (req, res) => {
+ const PORT = process.env.PORT || 3000;
+ res.status(404).send(`Server listening on port ${PORT} πβ¨`);
+});
+
+export default router;
diff --git a/server/scripts/seed.js b/server/scripts/seed.js
index b9ce065..aa40852 100644
--- a/server/scripts/seed.js
+++ b/server/scripts/seed.js
@@ -1,18 +1,48 @@
-'use strict';
+"use strict";
import bcrypt from "bcrypt";
-import mongoose from 'mongoose';
-import Category from '../models/category.js';
-import Recipe from './../models/recipe.js';
-import User from './../models/user.js';
+import mongoose from "mongoose";
+import Category from "../models/category.js";
+import Recipe from "./../models/recipe.js";
+import User from "./../models/user.js";
import { categories as categoryImages } from "../../client/src/utils/imagePaths.js";
-const BASE_URL = 'https://www.themealdb.com/api/json/v1/1';
+const BASE_URL = "https://www.themealdb.com/api/json/v1/1";
const alphabet = [
- 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
- 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
- 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
- 'y', 'z', '1', '2', '3', '4', '5', '6',
- '7', '8', '9'
+ "a",
+ "b",
+ "c",
+ "d",
+ "e",
+ "f",
+ "g",
+ "h",
+ "i",
+ "j",
+ "k",
+ "l",
+ "m",
+ "n",
+ "o",
+ "p",
+ "q",
+ "r",
+ "s",
+ "t",
+ "u",
+ "v",
+ "w",
+ "x",
+ "y",
+ "z",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
];
const recipes = [];
const categories = [];
@@ -22,7 +52,7 @@ const clearDatabase = async () => {
await Recipe.deleteMany();
await Category.deleteMany();
await User.deleteMany();
- console.log('MongoDB cleared!');
+ console.log("MongoDB cleared!");
};
const formatRecipe = (recipe) => {
@@ -30,17 +60,17 @@ const formatRecipe = (recipe) => {
categories.push(recipe.strCategory);
}
const ingredients = [];
- for (let i=1; i<101; i++) {
+ for (let i = 1; i < 101; i++) {
const ingredient = recipe[`strIngredient${i}`];
const measure = recipe[`strMeasure${i}`];
if (!ingredient && !measure) {
break;
- } else if (ingredient.trim() === '' && measure.trim() === '') {
+ } else if (ingredient.trim() === "" && measure.trim() === "") {
continue;
}
ingredients.push({
ingredient: ingredient.trim(),
- measure: measure.trim()
+ measure: measure.trim(),
});
}
@@ -48,9 +78,13 @@ const formatRecipe = (recipe) => {
name: recipe.strMeal,
// TODO area: recipe.strArea,
category: recipe.strCategory,
- instructions: recipe.strInstructions.split('\r\n').filter(instr => instr.trim() !== ''),
+ instructions: recipe.strInstructions
+ .split("\r\n")
+ .filter((instr) => instr.trim() !== ""),
image: recipe.strMealThumb,
- tags: recipe.strTags ? recipe.strTags.split(',').map(tag => tag.trim()) : [],
+ tags: recipe.strTags
+ ? recipe.strTags.split(",").map((tag) => tag.trim())
+ : [],
ingredients: ingredients,
cookingTimeInMinutes: 45,
};
@@ -61,32 +95,35 @@ const fillDatabase = async () => {
const response = await fetch(`${BASE_URL}/search.php?f=${letter}`);
const data = await response.json();
if (data.meals) {
- data.meals.map(meal => recipes.push(meal));
+ data.meals.map((meal) => recipes.push(meal));
}
}
- const formattedRecipes = recipes.map(recipe => formatRecipe(recipe));
+ const formattedRecipes = recipes.map((recipe) => formatRecipe(recipe));
await Recipe.insertMany(formattedRecipes);
- const formattedCategories = categories.map(category => ({name: category, image: `${cloudinaryUrl}${categoryImages[category]}.jpg`}));
+ const formattedCategories = categories.map((category) => ({
+ name: category,
+ image: `${cloudinaryUrl}${categoryImages[category]}.jpg`,
+ }));
await Category.insertMany(formattedCategories);
const user = {
- firstname: 'Zappe',
- lastname: 'Thomson',
- email: 'zappe.thomson@test.com',
- password: 'Test123!'
+ firstname: "Zappe",
+ lastname: "Thomson",
+ email: "zappe.thomson@test.com",
+ password: "Test123!",
};
const salt = await bcrypt.genSalt(10);
const hashedPassword = await bcrypt.hash(user.password, salt);
await User.create({
...user,
- password: hashedPassword
+ password: hashedPassword,
});
- console.log('MongoDB filled successfully!');
+ console.log("MongoDB filled successfully!");
};
(async () => {
await clearDatabase();
await fillDatabase();
await mongoose.disconnect();
- console.log('Disconnected to MongoDB!');
-})();
\ No newline at end of file
+ console.log("Disconnected to MongoDB!");
+})();
diff --git a/server/test/server.test.js b/server/test/server.test.js
new file mode 100644
index 0000000..7e09801
--- /dev/null
+++ b/server/test/server.test.js
@@ -0,0 +1,32 @@
+import supertest from "supertest";
+import { expect } from "chai";
+import express from "express";
+import router from "../router.js";
+
+const app = express();
+app.use(express.json());
+app.use(router);
+
+const PORT = process.env.PORT || 3000;
+const request = supertest(app);
+
+describe("Basic SERVER test", () => {
+ it("Should respond to GET /status π", async () => {
+ const res = await request.get("/status");
+ expect(res.status).equal(200);
+ expect(res.text).equal("Server is running β¨π");
+ });
+
+ it("Should listen server on PORT π°οΈ", async () => {
+ const res = await request.get("/PORT");
+ expect(res.status).equal(404);
+ expect(res.text).equal(`Server listening on port ${PORT} πβ¨`);
+ });
+
+ it("Should POST data β¨", async () => {
+ const data = { message: "Hello, Server!" };
+ const res = await request.post("/").send(data);
+ expect(res.status).to.equal(200);
+ expect(res.body).to.deep.equal(data);
+ });
+});