├── .prettierrc.json ├── challenges ├── dom_manipulation │ ├── 1_1.png │ ├── 1_2.png │ ├── 2_1.png │ ├── 2_2.png │ ├── 3_1.png │ ├── 3_2.png │ ├── 2.md │ ├── 3.md │ └── 1.md ├── variables │ ├── 2.md │ └── 1.md ├── promises_async_await │ ├── 4.md │ ├── 5.md │ ├── 3.md │ ├── 1.md │ └── 2.md ├── classes │ ├── 1.md │ └── 2.md ├── object_methods_this │ ├── 1.md │ ├── 3.md │ └── 2.md ├── array_methods │ ├── 1.md │ ├── 3.md │ ├── 4.md │ └── 2.md ├── for_in_for_of │ ├── 2.md │ ├── 1.md │ └── 3.md ├── basic_loops │ ├── 2.md │ └── 1.md ├── arrays │ ├── 1.md │ └── 2.md ├── functions │ ├── 1.md │ └── 2.md ├── conditionals │ ├── 1.md │ └── 2.md ├── objects │ ├── 2.md │ └── 1.md ├── errors │ ├── 1.md │ └── 2.md ├── constructor_functions │ ├── 1.md │ ├── 2.md │ └── 3.md ├── operators │ ├── 1.md │ └── 2.md └── inheritance │ ├── 1.md │ └── 2.md ├── solutions ├── array_methods │ ├── 1.js │ ├── 3.js │ ├── 2.js │ └── 4.js └── promises_async_await │ ├── 1.js │ ├── 2.js │ └── 3.js ├── .eslintrc.js ├── package.json ├── README.md ├── .gitignore ├── .prettierignore └── pnpm-lock.yaml /.prettierrc.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /challenges/dom_manipulation/1_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/The-Code-Dose/js-challenges/HEAD/challenges/dom_manipulation/1_1.png -------------------------------------------------------------------------------- /challenges/dom_manipulation/1_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/The-Code-Dose/js-challenges/HEAD/challenges/dom_manipulation/1_2.png -------------------------------------------------------------------------------- /challenges/dom_manipulation/2_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/The-Code-Dose/js-challenges/HEAD/challenges/dom_manipulation/2_1.png -------------------------------------------------------------------------------- /challenges/dom_manipulation/2_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/The-Code-Dose/js-challenges/HEAD/challenges/dom_manipulation/2_2.png -------------------------------------------------------------------------------- /challenges/dom_manipulation/3_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/The-Code-Dose/js-challenges/HEAD/challenges/dom_manipulation/3_1.png -------------------------------------------------------------------------------- /challenges/dom_manipulation/3_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/The-Code-Dose/js-challenges/HEAD/challenges/dom_manipulation/3_2.png -------------------------------------------------------------------------------- /challenges/variables/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Given two variables, `a` and `b`, swap their values without using a temporary variable. 4 | -------------------------------------------------------------------------------- /solutions/array_methods/1.js: -------------------------------------------------------------------------------- 1 | const numbers = [15, 25, 35, 45, 55, 65]; 2 | let sum = 0; 3 | numbers.forEach((num) => { 4 | sum += num; 5 | }); 6 | 7 | console.log(sum); 8 | -------------------------------------------------------------------------------- /challenges/promises_async_await/4.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Create three Promises that resolve after 1, 2, and 3 seconds respectively. 4 | 2. Use `Promise.all` to logs "Finished!" when all are done. 5 | -------------------------------------------------------------------------------- /challenges/classes/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Create a class called `Person` with properties `name` and `age`, and a method called `introduce` that logs the person's name and age to the console. 4 | 2. Create and instance of this class. 5 | -------------------------------------------------------------------------------- /challenges/dom_manipulation/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | ![](./2_1.png) 4 | 5 | ![](./2_2.png) 6 | 7 | 1. Create a button that says "Menu". 8 | 2. When the button is clicked, a menu should drop down. 9 | 3. The button should toggle the menu. 10 | -------------------------------------------------------------------------------- /challenges/classes/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Create a class called `Car` with properties `make`, `model`, and `year`, and a method called `drive` that logs a message to the console indicating that the car is being driven. 4 | 2. Create an instance of this class. 5 | -------------------------------------------------------------------------------- /challenges/object_methods_this/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Create an object called `calculator` with methods `add`, `subtract`, `multiply`, and `divide`. 4 | 2. Each method should take two parameters and return the result of the corresponding mathematical operation. 5 | -------------------------------------------------------------------------------- /challenges/array_methods/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Create an array `numbers = [15, 25, 35, 45, 55, 65]`. 4 | 2. Using `.forEach` method, find the sum of the elements in `numbers`. 5 | 3. On the next line use the `.reduce` method to find the sum of the elements in `numbers`. 6 | 7 | -------------------------------------------------------------------------------- /challenges/promises_async_await/5.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Create 10 GET requests to `https://whatthecommit.com/index.json`. 4 | 2. After all requests are successfully completed, log them to the console. 5 | 6 | Create two functions: 7 | * Using `.then` and `.catch` 8 | * Using `async` and `await` 9 | -------------------------------------------------------------------------------- /challenges/for_in_for_of/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | ```js 4 | function logChars(str) { 5 | // Write code here 6 | } 7 | 8 | logChars("Hello, world!"); 9 | logChars("Bonjour!") 10 | ``` 11 | 12 | 1. Write a `for...of` loop inside `logChars` to iterate over the characters of a given string and log their values to the console. 13 | -------------------------------------------------------------------------------- /challenges/dom_manipulation/3.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | ![](./3_1.png) 4 | 5 | ![](./3_2.png) 6 | 7 | 1. Create an input element. 8 | 2. Create a button next to it with the copy icon. 9 | 3. When the button is clicked, the value of the text input should be copied to your clickboard and a tooltip should appear on top of the button that says "Copied!". 10 | -------------------------------------------------------------------------------- /challenges/basic_loops/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Write a `for` loop that iterates over an array of names (`['john', 'kelly']`) and prints each name to the console. 4 | 2. Use nested `for` loops to generate and log a 5x5 multiplication table. 5 | 3. Create a `for` loop that skips even numbers from 1 to 20 using the `continue` statement and logs only odd numbers. 6 | -------------------------------------------------------------------------------- /challenges/variables/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Write a JavaScript program to declare a variable named `city` and assign it your favorite city's name. 4 | 5 | 2. Declare a variable named `age` and initialize it with your age. 6 | 7 | 3. Declare four variables, one with a string value, one with a number, one with a boolean, and one as `null`. Log all variables to the console. 8 | -------------------------------------------------------------------------------- /challenges/arrays/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Write a JavaScript program that creates an array containing the days of the week and logs the entire array. 4 | 2. Create an array containing the names of five fruits. Log the first and last fruit in the list. 5 | 3. Given an array of three colors (["Red", "Green", "Blue"]), change the second element to "Yellow" and log the updated array. 6 | -------------------------------------------------------------------------------- /challenges/dom_manipulation/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | ![](./1_1.png) 4 | 5 | ![](./1_2.png) 6 | 7 | 1. Create a red coloured button that says "Save". 8 | 2. Add an onclick handler on this button. 9 | 3. When the button is clicked, the text of the button should change to "Saved" and the color of the button should turn black. 10 | 4. The button should toggle from "Save" to "Saved" states on each click. 11 | -------------------------------------------------------------------------------- /challenges/functions/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Write a JavaScript function named `greet` that logs "Hello, World!" to the console. 4 | 2. Create a function named `sum` that takes two numbers as parameters and returns their sum. 5 | 3. Demonstrate the use of global and local variables within a function. Define a global variable `x`, and modify it within a function, then log its value inside and outside the function. 6 | -------------------------------------------------------------------------------- /challenges/promises_async_await/3.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Create a function called `doubledPromise` that takes a `number` and returns a Promise that resolves with the value of the `number` doubled. 4 | 2. Chain it three times to double the number incrementally, where each Promise depends on the previous. For example, 2 should become 8. 5 | 6 | Create two functions: 7 | * Using `.then` and `.catch` 8 | * Using `async` and `await` 9 | -------------------------------------------------------------------------------- /challenges/conditionals/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Write a JavaScript program that checks if a number (e.g., 15) is positive. If it is positive, log "Positive". 4 | 2. Use an if-else statement to check if a number (e.g., -4) is positive or negative. Log "Positive" or "Negative" accordingly. 5 | 3. Extend the above program to check if a number (e.g., 0) is positive, negative, or zero. Use an if-else-if statement to log "Positive", "Negative", or "Zero". 6 | -------------------------------------------------------------------------------- /challenges/objects/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Write a function that takes an object as an argument and logs all the keys and values of the object. 4 | 2. Create an object to represent a mobile phone, which includes nested objects for `dimensions`, `manufacturer`, and `storage` specifications. Access and log a nested property. 5 | 3. Create an object for a user with properties `name`, `age`, and `email`. Delete the `email` property and log the resulting object. 6 | -------------------------------------------------------------------------------- /challenges/promises_async_await/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Create a function called `getPromise` that returns a Promise that resolves after 2 seconds and returns "Resolved!". 4 | 2. Create two new functions that call `getPromise` within each 5 | 1. In the first function, chain the returned promise with `.then` to print the resolved value. 6 | 2. In the second function, use `async` and `await` to handle the returned Promise and printing the resolved value. 7 | -------------------------------------------------------------------------------- /solutions/promises_async_await/1.js: -------------------------------------------------------------------------------- 1 | function getPromise() { 2 | return new Promise((resolve) => { 3 | setTimeout(() => { 4 | resolve("Resolved"); 5 | }, 2000); 6 | }); 7 | } 8 | 9 | const firstFunction = () => { 10 | getPromise().then((res) => console.log(res)); 11 | }; 12 | 13 | const secondFunction = async () => { 14 | const res = await getPromise(); 15 | console.log(res); 16 | }; 17 | firstFunction(); 18 | secondFunction(); 19 | -------------------------------------------------------------------------------- /solutions/promises_async_await/2.js: -------------------------------------------------------------------------------- 1 | const URL = "https://api.chucknorris.io/jokes/random"; 2 | 3 | const fetchUsingThen = () => { 4 | fetch(URL) 5 | .then((res) => res.json()) 6 | .then((res) => console.log(res.value)); 7 | }; 8 | 9 | const fetchUsingAsyncAwait = async () => { 10 | const res = await fetch(URL); 11 | const data = await res.json(); 12 | console.log(data.value); 13 | }; 14 | 15 | fetchUsingThen(); 16 | fetchUsingAsyncAwait(); 17 | -------------------------------------------------------------------------------- /challenges/objects/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Write a JavaScript program to create an object representing a car with properties like `make`, `model`, and `year`. Log this object. 4 | 2. Create an object that represents a book with properties such as `title`, `author`, and `publishedYear`. Log the `title` and `author` of the book. 5 | 3. Given an object for a movie with properties `title` and `director`, add a new property `releaseYear` to this object and set its value. 6 | -------------------------------------------------------------------------------- /challenges/object_methods_this/3.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Create an object called `shoppingCart` with properties `items` and `total`, and methods `addItem` and `removeItem`. 4 | 2. The `addItem` method should add an item (provided as argument to `addItem`) to the `items` array and update the `total` property accordingly. 5 | 3. The `removeItem` method should remove an item (provided as argument to `removeItem`) from the `items` array and update the `total` property accordingly. 6 | -------------------------------------------------------------------------------- /challenges/errors/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Write a JavaScript program that attempts to parse an invalid JSON string using `JSON.parse()`. Use a `try-catch` block to handle the error and log a custom error message. 4 | 2. Extend the above program to include a `finally` block that logs "Operation completed" regardless of the result. 5 | 3. Write a function that calculates the square root of a number. If the input is negative, throw a custom error saying "Negative error is not allowed". 6 | -------------------------------------------------------------------------------- /challenges/functions/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Write a function called `multiply` that takes two parameters. If the second parameter is not provided, it should default to 1. The function should return the product of the two numbers. 4 | 2. Assign a function to a variable named `square` that calculates the square of a number and returns it. 5 | 3. Create an anonymous function that takes an array of numbers and returns the sum of all numbers. Assign this function to a variable named `calculateSum`. 6 | -------------------------------------------------------------------------------- /challenges/errors/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Create a custom error constructor `InvalidInputError` and throw this error if a function receives an input that isn’t a number. 4 | 2. Write a function that calls another function which retrieves the last element of an array. Use try-catch to handle cases where the array is empty with an appropriate error message. 5 | 3. Implement nested try-catch blocks where an inner block handles a specific type of error (e.g., `SyntaxError`) and an outer block handles all other errors. 6 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | browser: true, 4 | es2021: true 5 | }, 6 | extends: [ 7 | 'standard', 8 | 'prettier' 9 | ], 10 | overrides: [ 11 | { 12 | env: { 13 | node: true 14 | }, 15 | files: [ 16 | '.eslintrc.{js,cjs}' 17 | ], 18 | parserOptions: { 19 | sourceType: 'script' 20 | } 21 | } 22 | ], 23 | parserOptions: { 24 | ecmaVersion: 'latest', 25 | sourceType: 'module' 26 | }, 27 | rules: {} 28 | } 29 | -------------------------------------------------------------------------------- /challenges/for_in_for_of/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | ```js 4 | function hasNaN(numbers) { 5 | // Write code here 6 | } 7 | 8 | const numbers = [1, 4, NaN, 6, 7, 22, NaN, 0, 23]; 9 | 10 | if (hasNaN(numbers)) { 11 | console.log('The array contains NaN'); 12 | } else { 13 | console.log('The array does not contain NaN'); 14 | } 15 | ``` 16 | 17 | 1. Write a `for...of` loop inside `hasNaN` to iterate over the elements of `numbers` and check if any of them are `NaN`. 18 | 2. Return `true` if the array contains `NaN` else return `false`. 19 | -------------------------------------------------------------------------------- /challenges/constructor_functions/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Create a constructor function `Book` that takes parameters `title`, `author`, `isbn` (International Standard Book Number), `availableCopies`. 4 | 2. Add the following methods: 5 | * `borrowBook()`: Decreases `availableCopies` by 1 if there are copies left. Otherwise, logs that the book is unavailable. 6 | * `returnBook()`: Increases `availableCopies` by 1. 7 | 3. Instantiate a `Book` object with the given parameters and log the object. 8 | 4. Borrow two books and return one using the provided methods. 9 | -------------------------------------------------------------------------------- /challenges/operators/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Declare two variables with string values. Concatenate them and print the result. 4 | 2. Write a JavaScript program to calculate the sum, difference, multiplication, and division of two numbers (e.g., 8 and 4). 5 | 2. Use the modulus operator to check if a number (e.g., 7) is odd or even. Log "odd" or "even" to the console. 6 | 3. Declare a variable `x` with initial value 8. Increment this value by one using the increment operator, then decrement it by one using the decrement operator. Log the result after each operation. 7 | -------------------------------------------------------------------------------- /challenges/arrays/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Use a for loop to iterate over an array of numbers (e.g., [1, 2, 3, 4, 5]) and log each number multiplied by 2. 4 | 2. Demonstrate the use of array.push(), array.pop(), array.shift(), and array.unshift() methods with an array of your choice, explaining what each method does. 5 | Using array.slice() and array.splice(): 6 | 3. Given an array [1, 2, 3, 4, 5, 6], use slice to create a new array that excludes the first and last element. Then use splice to remove the second and third elements from the original array and log both arrays. 7 | -------------------------------------------------------------------------------- /challenges/conditionals/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Write a JavaScript program that checks if a person is eligible for a discount. A person is eligible if they are a member of the "Premium Customer" club and have made purchases over $500. Use nested if statements to determine this. 4 | 2. Determine if a year (e.g., 2024) is a leap year. A year is a leap year if it is divisible by 4 but not by 100, or it is divisible by 400. Use logical operators (&&, ||) in your conditional checks. 5 | 3. Use a switch case to log the name of the day based on a number (1-7, where 1 = Monday, 2 = Tuesday, etc.). 6 | -------------------------------------------------------------------------------- /challenges/inheritance/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Create a `Shape` class with properties `color` and `name`, and methods `getArea()` and `getPerimeter()` that logs to the console that they are not implemented. 4 | 2. Create a `Rectangle` class that extends `Shape`, with additional properties `length` and `width`, and overrides the `getArea()` and `getPerimeter()` methods to return the area and perimeter of the rectangle. 5 | 3. Create a `Circle` class that extends `Shape`, with additional property `radius`, and overrides the `getArea()` and `getPerimeter()` methods to return the area and circumference of the circle. 6 | -------------------------------------------------------------------------------- /challenges/inheritance/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Create a constructor function `Animal` with a property `name` and a method `speak()` that logs "Animal sound" to the console. Add a property `legs` to the `Animal` constructor function. 4 | 2. Create a new instance of Animal called `myAnimal` and log its `legs` property to the console. 5 | 3. Create a new constructor function `Dog` that inherits from `Animal`. 6 | 4. Add a property `breed` to Dog and override the `speak()` method to log "Bark". 7 | 5. Create a new instance of `Dog` called `myDog` and log its `breed` and `name` properties to the console, and call its `speak()` method. 8 | -------------------------------------------------------------------------------- /challenges/promises_async_await/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Make a GET request to `https://api.chucknorris.io/jokes/random` using `fetch`. 4 | 5 | Example Response: 6 | ```json 7 | { 8 | "icon_url" : "https://assets.chucknorris.host/img/avatar/chuck-norris.png", 9 | "id" : "IIMG6ip3SgCwG3r2NjxRuA", 10 | "url" : "https://api.chucknorris.io/jokes/IIMG6ip3SgCwG3r2NjxRuA", 11 | "value" : "Chuck Norris doesn't need a gun he uses his farts to blow a hole in you" 12 | } 13 | ``` 14 | 15 | 2. Print the returned joke (`value`) to the console. 16 | 17 | Create two functions: 18 | * Using `.then` and `.catch` 19 | * Using `async` and `await` 20 | -------------------------------------------------------------------------------- /challenges/object_methods_this/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Create an object called `bankAccount` with properties `balance` and `transactions`, and methods `deposit` and `withdraw`. 4 | 2. The `deposit` method should take `amount` as argument and add it to the `balance` and add a new transaction to the `transactions` property with the type "deposit" and the `amount`. For example, here's what a transaction looks like: `{ type: "deposit", amount: 100 }` 5 | 3. The `withdraw` method should take `amount` as argument and subtract it from the `balance` and add a new transaction to the `transactions` property with the type "withdrawal" and the `amount`. For example: `{ type: "withdrawal", amount: 100 }` 6 | -------------------------------------------------------------------------------- /challenges/operators/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Using compound assignment operators (`+=`, `-=`, `*=`, `/=`), perform and log the following operations on a variable `a` starting with 10: add 5, subtract 3, multiply by 2, and divide by 4. 4 | 2. Write a program that compares two variables, `a` (10) and `b` (20), using all comparison operators (`==`, `===`, `!=`, `!==`, `>`, `<`, `>=`, `<=`) and logs the results. 5 | 3. Use logical operators to determine if a variable `age` (25) is between 18 and 60, including both limits. Log "Valid age" if true, otherwise "Invalid age". 6 | 4. Use the ternary operator to check whether a number (e.g., 15) is divisible by 2. Log "Even" if it is, otherwise log "Odd". 7 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-challenges", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "format": "eslint solutions/**/*.js --fix && prettier solutions/**/*.js --write" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "devDependencies": { 14 | "eslint": "^8.0.1", 15 | "eslint-config-prettier": "^9.0.0", 16 | "eslint-config-standard": "^17.1.0", 17 | "eslint-plugin-import": "^2.25.2", 18 | "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", 19 | "eslint-plugin-promise": "^6.0.0", 20 | "prettier": "3.0.0" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /challenges/array_methods/3.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | ```js 4 | const ingredients = [ 5 | { name: "Dough", quantity: 1, price: 2.5 }, 6 | { name: "Tomato Sauce", quantity: 1, price: 1.0 }, 7 | { name: "Cheese", quantity: 2, price: 3.0 }, 8 | { name: "Pepperoni", quantity: 10, price: 2.5 }, 9 | { name: "Mushrooms", quantity: 8, price: 1.5 }, 10 | { name: "Green Peppers", quantity: 5, price: 1.0 }, 11 | { name: "Onions", quantity: 4, price: 0.75 }, 12 | { name: "Olives", quantity: 6, price: 1.25 }, 13 | { name: "Bacon", quantity: 3, price: 2.0 }, 14 | { name: "Sausage", quantity: 5, price: 2.5 }, 15 | ]; 16 | ``` 17 | 18 | 1. Given an array `ingredients`, calculate the total cost using `.reduce`. 19 | -------------------------------------------------------------------------------- /challenges/for_in_for_of/3.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | ```js 4 | function logProperties(obj) { 5 | // Write code here 6 | } 7 | 8 | 9 | logProperties({ 10 | make: 'Tesla', 11 | model: 'Model 3', 12 | year: 2022, 13 | isElectric: true, 14 | range: 353, 15 | features: ['autopilot', 'touchscreen'] 16 | }) 17 | 18 | logProperties({ 19 | name: 'John Doe', 20 | age: 30, 21 | isMarried: false, 22 | hobbies: ['reading', 'swimming'], 23 | address: { 24 | street: '123 Main St', 25 | city: 'Anytown', 26 | zip: '12345' 27 | } 28 | }) 29 | ``` 30 | 31 | 1. Write a `for...in` loop to iterate over all the properties of an object (including nested properties) and log their values to the console. 32 | -------------------------------------------------------------------------------- /solutions/array_methods/3.js: -------------------------------------------------------------------------------- 1 | const ingredients = [ 2 | { name: "Dough", quantity: 1, price: 2.5 }, 3 | { name: "Tomato Sauce", quantity: 1, price: 1.0 }, 4 | { name: "Cheese", quantity: 2, price: 3.0 }, 5 | { name: "Pepperoni", quantity: 10, price: 2.5 }, 6 | { name: "Mushrooms", quantity: 8, price: 1.5 }, 7 | { name: "Green Peppers", quantity: 5, price: 1.0 }, 8 | { name: "Onions", quantity: 4, price: 0.75 }, 9 | { name: "Olives", quantity: 6, price: 1.25 }, 10 | { name: "Bacon", quantity: 3, price: 2.0 }, 11 | { name: "Sausage", quantity: 5, price: 2.5 }, 12 | ]; 13 | 14 | const TotalCost = ingredients.reduce( 15 | (acc, { quantity, price }) => acc + quantity * price, 16 | 0, 17 | ); 18 | 19 | console.log(TotalCost); 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # JavaScript Challenges 2 | 3 | A collection of beginner friendly practice exercises on HTML, CSS & JavaScript topics. 4 | 5 | All the challenges are present in the `challenges` directory. 6 | 7 | The solutions (coming soon) are provided in the ` solutions` directory. 8 | 9 | ## Guide to submitting solutions 10 | 11 | If you want to submit a solution for any challenge, please follow the below guidelines: 12 | 13 | - Place your solution code in the correct directory. 14 | For example, if you are submitting the solution for `challenges/dom/1.md`, the solution files should go inside `solutions/dom/1/`. 15 | - While submitting a pull request, please add screenshots of your results. 16 | - Please do not submit solutions if they already exist. 17 | - **Create one Pull Request for each solution.** 18 | - Please lint and prettify your code using `pnpm run format` or `npm run format` before submitting. 19 | -------------------------------------------------------------------------------- /solutions/array_methods/2.js: -------------------------------------------------------------------------------- 1 | const employees = [ 2 | { 3 | name: "Michael Scott", 4 | department: "Management", 5 | }, 6 | { 7 | name: "Dwight Schrute", 8 | department: "Sales", 9 | }, 10 | { 11 | name: "Jim Halpert", 12 | department: "Sales", 13 | }, 14 | { 15 | name: "Pam Beesly", 16 | department: "Admin", 17 | }, 18 | { 19 | name: "Angela Martin", 20 | department: "Accounting", 21 | }, 22 | { 23 | name: "Kevin Malone", 24 | department: "Accounting", 25 | }, 26 | { 27 | name: "Andy Bernard", 28 | department: "Sales", 29 | }, 30 | { 31 | name: "Oscar Martinez", 32 | department: "Accounting", 33 | }, 34 | ]; 35 | 36 | const sales = employees.filter((employee) => employee.department === "Sales"); 37 | console.log(sales); 38 | const accounting = employees.filter( 39 | (employee) => employee.department === "Accounting", 40 | ); 41 | console.log(accounting); 42 | -------------------------------------------------------------------------------- /challenges/array_methods/4.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | ```js 4 | const fruits = [ 5 | { name: 'Apple', color: 'Red', price: 1.5 }, 6 | { name: 'Banana', color: 'Yellow', price: 0.5 }, 7 | { name: 'Orange', color: 'Orange', price: null }, 8 | { name: 'Grapes', color: 'Purple', price: 3 }, 9 | { name: 'Watermelon', color: 'Green', price: 4 }, 10 | { name: 'Strawberry', color: 'Red', price: 2.5 }, 11 | { name: 'Mango', color: 'Yellow', price: null }, 12 | { name: 'Pineapple', color: 'Yellow', price: null }, 13 | { name: 'Cherry', color: 'Red', price: 2 }, 14 | { name: 'Blueberry', color: 'Blue', price: 2.8 } 15 | ]; 16 | ``` 17 | 18 | Given the above array: 19 | 1. Filter out the fruits with `null` price. 20 | 2. Create a new array `updatedPrice` from this filtered array with the price of each doubled. 21 | 3. Print the new price of each fruit: " now costs ". 22 | 4. Create a `orderPrice` variable that stores the sum of all the price of the fruits in `updatedPrice`. 23 | -------------------------------------------------------------------------------- /challenges/array_methods/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | ```js 4 | const employees = [ 5 | { 6 | name: "Michael Scott", 7 | department: "Management", 8 | }, 9 | { 10 | name: "Dwight Schrute", 11 | department: "Sales", 12 | }, 13 | { 14 | name: "Jim Halpert", 15 | department: "Sales", 16 | }, 17 | { 18 | name: "Pam Beesly", 19 | department: "Admin", 20 | }, 21 | { 22 | name: "Angela Martin", 23 | department: "Accounting", 24 | }, 25 | { 26 | name: "Kevin Malone", 27 | department: "Accounting", 28 | }, 29 | { 30 | name: "Andy Bernard", 31 | department: "Sales", 32 | }, 33 | { 34 | name: "Oscar Martinez", 35 | department: "Accounting", 36 | }, 37 | ]; 38 | ``` 39 | 40 | 1. Using the `employees` array, create another array called `sales` that contains all the employees in the Sales department. 41 | 2. Using the `employees` array, create another array called `accounting` that contains all the employees in the Accounting department. 42 | -------------------------------------------------------------------------------- /solutions/array_methods/4.js: -------------------------------------------------------------------------------- 1 | const fruits = [ 2 | { name: "Apple", color: "Red", price: 1.5 }, 3 | { name: "Banana", color: "Yellow", price: 0.5 }, 4 | { name: "Orange", color: "Orange", price: null }, 5 | { name: "Grapes", color: "Purple", price: 3 }, 6 | { name: "Watermelon", color: "Green", price: 4 }, 7 | { name: "Strawberry", color: "Red", price: 2.5 }, 8 | { name: "Mango", color: "Yellow", price: null }, 9 | { name: "Pineapple", color: "Yellow", price: null }, 10 | { name: "Cherry", color: "Red", price: 2 }, 11 | { name: "Blueberry", color: "Blue", price: 2.8 }, 12 | ]; 13 | 14 | const availableFruits = fruits.filter((fruit) => fruit.price !== null); 15 | 16 | const updatedPrice = availableFruits.map((fruit) => { 17 | return { ...fruit, price: fruit.price * 2 }; 18 | }); 19 | 20 | updatedPrice.forEach((fruit) => 21 | console.log(`${fruit.name} : $ ${fruit.price}`), 22 | ); 23 | 24 | const orderPrice = updatedPrice.reduce((acc, curr) => acc + curr.price); 25 | 26 | console.log("Total updated Price: " + orderPrice); 27 | -------------------------------------------------------------------------------- /solutions/promises_async_await/3.js: -------------------------------------------------------------------------------- 1 | const doubledPromise = (number) => { 2 | return new Promise((resolve, reject) => { 3 | if (typeof number === "number") { 4 | resolve(number * 2); 5 | } else { 6 | reject(new Error("Input is not a number")); 7 | } 8 | }); 9 | }; 10 | 11 | const num = 2; 12 | 13 | // using .then and .catch 14 | doubledPromise(num) 15 | .then((res) => { 16 | console.log(res); // 4 17 | return doubledPromise(res); 18 | }) 19 | .then((res) => { 20 | console.log(res); // 8 21 | return doubledPromise(res); 22 | }) 23 | .then((res) => { 24 | console.log(res); // 16 25 | }) 26 | .catch((err) => { 27 | console.log(err); // 'Input is not a number' 28 | }); 29 | 30 | // using async await 31 | const incrementallyDouble = async () => { 32 | try { 33 | let result = await doubledPromise(num); 34 | console.log(result); // 4 35 | 36 | result = await doubledPromise(result); 37 | console.log(result); // 8 38 | 39 | result = await doubledPromise(result); 40 | console.log(result); // 16 41 | } catch (error) { 42 | console.log(error); // 'Input is not a number' 43 | } 44 | }; 45 | 46 | incrementallyDouble(); 47 | -------------------------------------------------------------------------------- /challenges/constructor_functions/2.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. **Album Constructor**: 4 | - Properties: `title`, `artist`, `year`, `genre`, `tracks` (an array of track titles). 5 | - Methods: 6 | - `addTrack(trackTitle)`: Adds a new track to the `tracks` array. 7 | - `getAlbumInfo()`: Returns a string with all album details, including all tracks. 8 | 9 | 2. **Artist Constructor**: 10 | - Properties: `name`, `albums` (an array to store albums by the artist). 11 | - Methods: 12 | - `addAlbum(album)`: Adds a new `Album` object to the `albums` array. 13 | - `getArtistInfo()`: Logs the artist's name and lists all albums with their details. 14 | 15 | 3. **Collection Manager Constructor**: 16 | - Properties: `collectionName`, `albums` (an array of `Album` objects). 17 | - Methods: 18 | - `addAlbumToCollection(album)`: Adds a new `Album` to the collection. 19 | - `listAllAlbums()`: Logs all albums in the collection with their details. 20 | 21 | 4. Create several `Album` objects with various tracks. 22 | 5. Create an `Artist` object and add these albums to the artist. 23 | 6. Create a `Collection Manager` object and add albums to this collection. 24 | 7. Display artist info and list all albums in the collection. 25 | 8.Implement a search function in the `Collection Manager` that allows searching for an album by title or artist. 26 | -------------------------------------------------------------------------------- /challenges/constructor_functions/3.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. **Event Constructor**: 4 | - Properties: `eventName`, `date` (format: YYYY-MM-DD), `attendees` (an array to store names of attendees). 5 | - Methods: 6 | - `addAttendee(name)`: Adds a new attendee to the `attendees` array. 7 | - `eventInfo()`: Returns a string containing the event's name, date, and list of attendees. 8 | 9 | 2. **EventManager Constructor**: 10 | - Properties: `name` (of the event manager or company), `events` (an array of `Event` objects). 11 | - Methods: 12 | - `createEvent(event)`: Adds a new `Event` to the `events` array. 13 | - `listAllEvents()`: Logs details of all events managed. 14 | - `findEventsByDate(date)`: Takes a date as input and logs events happening on that date. 15 | 16 | 3. **Venue Constructor**: 17 | - Properties: `venueName`, `location`, `capacity`, `eventsHosted` (an array to store events hosted at the venue). 18 | - Methods: 19 | - `hostEvent(event)`: Adds an event to the `eventsHosted` array if it does not exceed the venue capacity. 20 | - `venueInfo()`: Logs information about the venue, including all events hosted. 21 | 22 | 3. Create several `Event` objects with different dates and attendees. 23 | 4. Instantiate an `EventManager`, and add these events to the manager. 24 | 5. Create a `Venue`, and assign some of the events to this venue. 25 | 6. Display information about the events, the event manager, and the venue. 26 | 7. Implement a method in `EventManager` to list upcoming events within the next 7 days. 27 | -------------------------------------------------------------------------------- /challenges/basic_loops/1.md: -------------------------------------------------------------------------------- 1 | # Description 2 | 3 | 1. Write a JavaScript program that uses a `for` loop to log numbers from 1 to 10. 4 | 5 | 2. Use a `while` loop to calculate the sum of numbers from 1 to 100. 6 | 7 | 3. Implement a `do-while` loop that repeatedly prompts the user for a number until the number is less than 10. Then, log that number to the console. 8 | 9 | 10 | 4. **Break in While Loop:** 11 | - Use a `while` loop to sum numbers from 1 to infinity, but break the loop when the sum reaches or exceeds 1000. Log the final sum. 12 | 13 | 5. **Advanced Array Manipulation:** 14 | - Given an array of integers, use a loop to find the largest number. Enhance it by ignoring negative numbers using the `continue` statement. 15 | 16 | 6. **Prime Number Finder:** 17 | - Write a program that uses loops to find all prime numbers between 2 and 100. Log each prime number to the console. 18 | 19 | ### Example Solutions for Beginner Exercises 20 | 21 | 1. **Basic For Loop:** 22 | ```javascript 23 | for (let i = 1; i <= 10; i++) { 24 | console.log(i); 25 | } 26 | ``` 27 | 28 | 2. **While Loop Usage:** 29 | ```javascript 30 | let sum = 0; 31 | let i = 1; 32 | while (i <= 100) { 33 | sum += i; 34 | i++; 35 | } 36 | console.log("Sum of 1 to 100 is: " + sum); 37 | ``` 38 | 39 | 3. **Do-While Loop Practice:** 40 | ```javascript 41 | let number; 42 | do { 43 | number = parseInt(prompt("Enter a number greater than or equal to 10"), 10); 44 | } while (number >= 10); 45 | console.log("You entered: " + number); 46 | ``` 47 | 48 | These exercises provide a solid basis for practicing loops in JavaScript, catering to different levels of programming skill. They will help you master the control flow in programming, making you better prepared for developing more complex and efficient algorithms. -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | .pnpm-debug.log* 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # Snowpack dependency directory (https://snowpack.dev/) 46 | web_modules/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Optional stylelint cache 58 | .stylelintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variable files 76 | .env 77 | .env.development.local 78 | .env.test.local 79 | .env.production.local 80 | .env.local 81 | 82 | # parcel-bundler cache (https://parceljs.org/) 83 | .cache 84 | .parcel-cache 85 | 86 | # Next.js build output 87 | .next 88 | out 89 | 90 | # Nuxt.js build / generate output 91 | .nuxt 92 | dist 93 | 94 | # Gatsby files 95 | .cache/ 96 | # Comment in the public line in if your project uses Gatsby and not Next.js 97 | # https://nextjs.org/blog/next-9-1#public-directory-support 98 | # public 99 | 100 | # vuepress build output 101 | .vuepress/dist 102 | 103 | # vuepress v2.x temp and cache directory 104 | .temp 105 | .cache 106 | 107 | # Docusaurus cache and generated files 108 | .docusaurus 109 | 110 | # Serverless directories 111 | .serverless/ 112 | 113 | # FuseBox cache 114 | .fusebox/ 115 | 116 | # DynamoDB Local files 117 | .dynamodb/ 118 | 119 | # TernJS port file 120 | .tern-port 121 | 122 | # Stores VSCode versions used for testing VSCode extensions 123 | .vscode-test 124 | 125 | # yarn v2 126 | .yarn/cache 127 | .yarn/unplugged 128 | .yarn/build-state.yml 129 | .yarn/install-state.gz 130 | .pnp.* 131 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | .pnpm-debug.log* 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # Snowpack dependency directory (https://snowpack.dev/) 46 | web_modules/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Optional stylelint cache 58 | .stylelintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variable files 76 | .env 77 | .env.development.local 78 | .env.test.local 79 | .env.production.local 80 | .env.local 81 | 82 | # parcel-bundler cache (https://parceljs.org/) 83 | .cache 84 | .parcel-cache 85 | 86 | # Next.js build output 87 | .next 88 | out 89 | 90 | # Nuxt.js build / generate output 91 | .nuxt 92 | dist 93 | 94 | # Gatsby files 95 | .cache/ 96 | # Comment in the public line in if your project uses Gatsby and not Next.js 97 | # https://nextjs.org/blog/next-9-1#public-directory-support 98 | # public 99 | 100 | # vuepress build output 101 | .vuepress/dist 102 | 103 | # vuepress v2.x temp and cache directory 104 | .temp 105 | .cache 106 | 107 | # Docusaurus cache and generated files 108 | .docusaurus 109 | 110 | # Serverless directories 111 | .serverless/ 112 | 113 | # FuseBox cache 114 | .fusebox/ 115 | 116 | # DynamoDB Local files 117 | .dynamodb/ 118 | 119 | # TernJS port file 120 | .tern-port 121 | 122 | # Stores VSCode versions used for testing VSCode extensions 123 | .vscode-test 124 | 125 | # yarn v2 126 | .yarn/cache 127 | .yarn/unplugged 128 | .yarn/build-state.yml 129 | .yarn/install-state.gz 130 | .pnp.* 131 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | devDependencies: 8 | eslint: 9 | specifier: ^8.0.1 10 | version: 8.48.0 11 | eslint-config-prettier: 12 | specifier: ^9.0.0 13 | version: 9.0.0(eslint@8.48.0) 14 | eslint-config-standard: 15 | specifier: ^17.1.0 16 | version: 17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@16.0.2)(eslint-plugin-promise@6.1.1)(eslint@8.48.0) 17 | eslint-plugin-import: 18 | specifier: ^2.25.2 19 | version: 2.28.1(eslint@8.48.0) 20 | eslint-plugin-n: 21 | specifier: '^15.0.0 || ^16.0.0 ' 22 | version: 16.0.2(eslint@8.48.0) 23 | eslint-plugin-promise: 24 | specifier: ^6.0.0 25 | version: 6.1.1(eslint@8.48.0) 26 | prettier: 27 | specifier: 3.0.0 28 | version: 3.0.0 29 | prettier-eslint: 30 | specifier: ^15.0.1 31 | version: 15.0.1 32 | prettier-eslint-cli: 33 | specifier: ^7.1.0 34 | version: 7.1.0(prettier-eslint@15.0.1) 35 | 36 | packages: 37 | 38 | /@aashutoshrathi/word-wrap@1.2.6: 39 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} 40 | engines: {node: '>=0.10.0'} 41 | dev: true 42 | 43 | /@eslint-community/eslint-utils@4.4.0(eslint@8.48.0): 44 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 45 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 46 | peerDependencies: 47 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 48 | dependencies: 49 | eslint: 8.48.0 50 | eslint-visitor-keys: 3.4.3 51 | dev: true 52 | 53 | /@eslint-community/regexpp@4.8.0: 54 | resolution: {integrity: sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==} 55 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 56 | dev: true 57 | 58 | /@eslint/eslintrc@2.1.2: 59 | resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} 60 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 61 | dependencies: 62 | ajv: 6.12.6 63 | debug: 4.3.4 64 | espree: 9.6.1 65 | globals: 13.21.0 66 | ignore: 5.2.4 67 | import-fresh: 3.3.0 68 | js-yaml: 4.1.0 69 | minimatch: 3.1.2 70 | strip-json-comments: 3.1.1 71 | transitivePeerDependencies: 72 | - supports-color 73 | dev: true 74 | 75 | /@eslint/js@8.48.0: 76 | resolution: {integrity: sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==} 77 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 78 | dev: true 79 | 80 | /@humanwhocodes/config-array@0.11.11: 81 | resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} 82 | engines: {node: '>=10.10.0'} 83 | dependencies: 84 | '@humanwhocodes/object-schema': 1.2.1 85 | debug: 4.3.4 86 | minimatch: 3.1.2 87 | transitivePeerDependencies: 88 | - supports-color 89 | dev: true 90 | 91 | /@humanwhocodes/module-importer@1.0.1: 92 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 93 | engines: {node: '>=12.22'} 94 | dev: true 95 | 96 | /@humanwhocodes/object-schema@1.2.1: 97 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 98 | dev: true 99 | 100 | /@messageformat/core@3.2.0: 101 | resolution: {integrity: sha512-ppbb/7OYqg/t4WdFk8VAfZEV2sNUq3+7VeBAo5sKFhmF786sh6gB7fUeXa2qLTDIcTHS49HivTBN7QNOU5OFTg==} 102 | dependencies: 103 | '@messageformat/date-skeleton': 1.0.1 104 | '@messageformat/number-skeleton': 1.2.0 105 | '@messageformat/parser': 5.1.0 106 | '@messageformat/runtime': 3.0.1 107 | make-plural: 7.3.0 108 | safe-identifier: 0.4.2 109 | dev: true 110 | 111 | /@messageformat/date-skeleton@1.0.1: 112 | resolution: {integrity: sha512-jPXy8fg+WMPIgmGjxSlnGJn68h/2InfT0TNSkVx0IGXgp4ynnvYkbZ51dGWmGySEK+pBiYUttbQdu5XEqX5CRg==} 113 | dev: true 114 | 115 | /@messageformat/number-skeleton@1.2.0: 116 | resolution: {integrity: sha512-xsgwcL7J7WhlHJ3RNbaVgssaIwcEyFkBqxHdcdaiJzwTZAWEOD8BuUFxnxV9k5S0qHN3v/KzUpq0IUpjH1seRg==} 117 | dev: true 118 | 119 | /@messageformat/parser@5.1.0: 120 | resolution: {integrity: sha512-jKlkls3Gewgw6qMjKZ9SFfHUpdzEVdovKFtW1qRhJ3WI4FW5R/NnGDqr8SDGz+krWDO3ki94boMmQvGke1HwUQ==} 121 | dependencies: 122 | moo: 0.5.2 123 | dev: true 124 | 125 | /@messageformat/runtime@3.0.1: 126 | resolution: {integrity: sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==} 127 | dependencies: 128 | make-plural: 7.3.0 129 | dev: true 130 | 131 | /@nodelib/fs.scandir@2.1.5: 132 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 133 | engines: {node: '>= 8'} 134 | dependencies: 135 | '@nodelib/fs.stat': 2.0.5 136 | run-parallel: 1.2.0 137 | dev: true 138 | 139 | /@nodelib/fs.stat@2.0.5: 140 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 141 | engines: {node: '>= 8'} 142 | dev: true 143 | 144 | /@nodelib/fs.walk@1.2.8: 145 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 146 | engines: {node: '>= 8'} 147 | dependencies: 148 | '@nodelib/fs.scandir': 2.1.5 149 | fastq: 1.15.0 150 | dev: true 151 | 152 | /@types/eslint@8.44.2: 153 | resolution: {integrity: sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==} 154 | dependencies: 155 | '@types/estree': 1.0.1 156 | '@types/json-schema': 7.0.12 157 | dev: true 158 | 159 | /@types/estree@1.0.1: 160 | resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} 161 | dev: true 162 | 163 | /@types/json-schema@7.0.12: 164 | resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} 165 | dev: true 166 | 167 | /@types/json5@0.0.29: 168 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 169 | dev: true 170 | 171 | /@types/prettier@2.7.3: 172 | resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} 173 | dev: true 174 | 175 | /@typescript-eslint/parser@5.62.0(eslint@8.48.0)(typescript@4.9.5): 176 | resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} 177 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 178 | peerDependencies: 179 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 180 | typescript: '*' 181 | peerDependenciesMeta: 182 | typescript: 183 | optional: true 184 | dependencies: 185 | '@typescript-eslint/scope-manager': 5.62.0 186 | '@typescript-eslint/types': 5.62.0 187 | '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) 188 | debug: 4.3.4 189 | eslint: 8.48.0 190 | typescript: 4.9.5 191 | transitivePeerDependencies: 192 | - supports-color 193 | dev: true 194 | 195 | /@typescript-eslint/scope-manager@5.62.0: 196 | resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} 197 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 198 | dependencies: 199 | '@typescript-eslint/types': 5.62.0 200 | '@typescript-eslint/visitor-keys': 5.62.0 201 | dev: true 202 | 203 | /@typescript-eslint/types@5.62.0: 204 | resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} 205 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 206 | dev: true 207 | 208 | /@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5): 209 | resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} 210 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 211 | peerDependencies: 212 | typescript: '*' 213 | peerDependenciesMeta: 214 | typescript: 215 | optional: true 216 | dependencies: 217 | '@typescript-eslint/types': 5.62.0 218 | '@typescript-eslint/visitor-keys': 5.62.0 219 | debug: 4.3.4 220 | globby: 11.1.0 221 | is-glob: 4.0.3 222 | semver: 7.5.4 223 | tsutils: 3.21.0(typescript@4.9.5) 224 | typescript: 4.9.5 225 | transitivePeerDependencies: 226 | - supports-color 227 | dev: true 228 | 229 | /@typescript-eslint/visitor-keys@5.62.0: 230 | resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} 231 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 232 | dependencies: 233 | '@typescript-eslint/types': 5.62.0 234 | eslint-visitor-keys: 3.4.3 235 | dev: true 236 | 237 | /acorn-jsx@5.3.2(acorn@8.10.0): 238 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 239 | peerDependencies: 240 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 241 | dependencies: 242 | acorn: 8.10.0 243 | dev: true 244 | 245 | /acorn@8.10.0: 246 | resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} 247 | engines: {node: '>=0.4.0'} 248 | hasBin: true 249 | dev: true 250 | 251 | /ajv@6.12.6: 252 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 253 | dependencies: 254 | fast-deep-equal: 3.1.3 255 | fast-json-stable-stringify: 2.1.0 256 | json-schema-traverse: 0.4.1 257 | uri-js: 4.4.1 258 | dev: true 259 | 260 | /ansi-regex@2.1.1: 261 | resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} 262 | engines: {node: '>=0.10.0'} 263 | dev: true 264 | 265 | /ansi-regex@3.0.1: 266 | resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} 267 | engines: {node: '>=4'} 268 | dev: true 269 | 270 | /ansi-regex@4.1.1: 271 | resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} 272 | engines: {node: '>=6'} 273 | dev: true 274 | 275 | /ansi-regex@5.0.1: 276 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 277 | engines: {node: '>=8'} 278 | dev: true 279 | 280 | /ansi-styles@2.2.1: 281 | resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} 282 | engines: {node: '>=0.10.0'} 283 | dev: true 284 | 285 | /ansi-styles@3.2.1: 286 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 287 | engines: {node: '>=4'} 288 | dependencies: 289 | color-convert: 1.9.3 290 | dev: true 291 | 292 | /ansi-styles@4.3.0: 293 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 294 | engines: {node: '>=8'} 295 | dependencies: 296 | color-convert: 2.0.1 297 | dev: true 298 | 299 | /argparse@2.0.1: 300 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 301 | dev: true 302 | 303 | /array-buffer-byte-length@1.0.0: 304 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} 305 | dependencies: 306 | call-bind: 1.0.2 307 | is-array-buffer: 3.0.2 308 | dev: true 309 | 310 | /array-includes@3.1.6: 311 | resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} 312 | engines: {node: '>= 0.4'} 313 | dependencies: 314 | call-bind: 1.0.2 315 | define-properties: 1.2.0 316 | es-abstract: 1.22.1 317 | get-intrinsic: 1.2.1 318 | is-string: 1.0.7 319 | dev: true 320 | 321 | /array-union@2.1.0: 322 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 323 | engines: {node: '>=8'} 324 | dev: true 325 | 326 | /array.prototype.findlastindex@1.2.3: 327 | resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} 328 | engines: {node: '>= 0.4'} 329 | dependencies: 330 | call-bind: 1.0.2 331 | define-properties: 1.2.0 332 | es-abstract: 1.22.1 333 | es-shim-unscopables: 1.0.0 334 | get-intrinsic: 1.2.1 335 | dev: true 336 | 337 | /array.prototype.flat@1.3.1: 338 | resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} 339 | engines: {node: '>= 0.4'} 340 | dependencies: 341 | call-bind: 1.0.2 342 | define-properties: 1.2.0 343 | es-abstract: 1.22.1 344 | es-shim-unscopables: 1.0.0 345 | dev: true 346 | 347 | /array.prototype.flatmap@1.3.1: 348 | resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} 349 | engines: {node: '>= 0.4'} 350 | dependencies: 351 | call-bind: 1.0.2 352 | define-properties: 1.2.0 353 | es-abstract: 1.22.1 354 | es-shim-unscopables: 1.0.0 355 | dev: true 356 | 357 | /arraybuffer.prototype.slice@1.0.1: 358 | resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==} 359 | engines: {node: '>= 0.4'} 360 | dependencies: 361 | array-buffer-byte-length: 1.0.0 362 | call-bind: 1.0.2 363 | define-properties: 1.2.0 364 | get-intrinsic: 1.2.1 365 | is-array-buffer: 3.0.2 366 | is-shared-array-buffer: 1.0.2 367 | dev: true 368 | 369 | /arrify@2.0.1: 370 | resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} 371 | engines: {node: '>=8'} 372 | dev: true 373 | 374 | /available-typed-arrays@1.0.5: 375 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 376 | engines: {node: '>= 0.4'} 377 | dev: true 378 | 379 | /balanced-match@1.0.2: 380 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 381 | dev: true 382 | 383 | /boolify@1.0.1: 384 | resolution: {integrity: sha512-ma2q0Tc760dW54CdOyJjhrg/a54317o1zYADQJFgperNGKIKgAUGIcKnuMiff8z57+yGlrGNEt4lPgZfCgTJgA==} 385 | dev: true 386 | 387 | /brace-expansion@1.1.11: 388 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 389 | dependencies: 390 | balanced-match: 1.0.2 391 | concat-map: 0.0.1 392 | dev: true 393 | 394 | /braces@3.0.2: 395 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 396 | engines: {node: '>=8'} 397 | dependencies: 398 | fill-range: 7.0.1 399 | dev: true 400 | 401 | /builtins@5.0.1: 402 | resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} 403 | dependencies: 404 | semver: 7.5.4 405 | dev: true 406 | 407 | /call-bind@1.0.2: 408 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 409 | dependencies: 410 | function-bind: 1.1.1 411 | get-intrinsic: 1.2.1 412 | dev: true 413 | 414 | /callsites@3.1.0: 415 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 416 | engines: {node: '>=6'} 417 | dev: true 418 | 419 | /camelcase-keys@7.0.2: 420 | resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} 421 | engines: {node: '>=12'} 422 | dependencies: 423 | camelcase: 6.3.0 424 | map-obj: 4.3.0 425 | quick-lru: 5.1.1 426 | type-fest: 1.4.0 427 | dev: true 428 | 429 | /camelcase@5.3.1: 430 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 431 | engines: {node: '>=6'} 432 | dev: true 433 | 434 | /camelcase@6.3.0: 435 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 436 | engines: {node: '>=10'} 437 | dev: true 438 | 439 | /chalk@1.1.3: 440 | resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} 441 | engines: {node: '>=0.10.0'} 442 | dependencies: 443 | ansi-styles: 2.2.1 444 | escape-string-regexp: 1.0.5 445 | has-ansi: 2.0.0 446 | strip-ansi: 3.0.1 447 | supports-color: 2.0.0 448 | dev: true 449 | 450 | /chalk@4.1.2: 451 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 452 | engines: {node: '>=10'} 453 | dependencies: 454 | ansi-styles: 4.3.0 455 | supports-color: 7.2.0 456 | dev: true 457 | 458 | /cliui@5.0.0: 459 | resolution: {integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==} 460 | dependencies: 461 | string-width: 3.1.0 462 | strip-ansi: 5.2.0 463 | wrap-ansi: 5.1.0 464 | dev: true 465 | 466 | /color-convert@1.9.3: 467 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 468 | dependencies: 469 | color-name: 1.1.3 470 | dev: true 471 | 472 | /color-convert@2.0.1: 473 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 474 | engines: {node: '>=7.0.0'} 475 | dependencies: 476 | color-name: 1.1.4 477 | dev: true 478 | 479 | /color-name@1.1.3: 480 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 481 | dev: true 482 | 483 | /color-name@1.1.4: 484 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 485 | dev: true 486 | 487 | /common-tags@1.8.2: 488 | resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} 489 | engines: {node: '>=4.0.0'} 490 | dev: true 491 | 492 | /concat-map@0.0.1: 493 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 494 | dev: true 495 | 496 | /core-js@3.32.1: 497 | resolution: {integrity: sha512-lqufgNn9NLnESg5mQeYsxQP5w7wrViSj0jr/kv6ECQiByzQkrn1MKvV0L3acttpDqfQrHLwr2KCMgX5b8X+lyQ==} 498 | requiresBuild: true 499 | dev: true 500 | 501 | /cross-spawn@7.0.3: 502 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 503 | engines: {node: '>= 8'} 504 | dependencies: 505 | path-key: 3.1.1 506 | shebang-command: 2.0.0 507 | which: 2.0.2 508 | dev: true 509 | 510 | /debug@3.2.7: 511 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 512 | peerDependencies: 513 | supports-color: '*' 514 | peerDependenciesMeta: 515 | supports-color: 516 | optional: true 517 | dependencies: 518 | ms: 2.1.3 519 | dev: true 520 | 521 | /debug@4.3.4: 522 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 523 | engines: {node: '>=6.0'} 524 | peerDependencies: 525 | supports-color: '*' 526 | peerDependenciesMeta: 527 | supports-color: 528 | optional: true 529 | dependencies: 530 | ms: 2.1.2 531 | dev: true 532 | 533 | /decamelize@1.2.0: 534 | resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} 535 | engines: {node: '>=0.10.0'} 536 | dev: true 537 | 538 | /deep-is@0.1.4: 539 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 540 | dev: true 541 | 542 | /define-properties@1.2.0: 543 | resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} 544 | engines: {node: '>= 0.4'} 545 | dependencies: 546 | has-property-descriptors: 1.0.0 547 | object-keys: 1.1.1 548 | dev: true 549 | 550 | /dir-glob@3.0.1: 551 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 552 | engines: {node: '>=8'} 553 | dependencies: 554 | path-type: 4.0.0 555 | dev: true 556 | 557 | /dlv@1.1.3: 558 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 559 | dev: true 560 | 561 | /doctrine@2.1.0: 562 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 563 | engines: {node: '>=0.10.0'} 564 | dependencies: 565 | esutils: 2.0.3 566 | dev: true 567 | 568 | /doctrine@3.0.0: 569 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 570 | engines: {node: '>=6.0.0'} 571 | dependencies: 572 | esutils: 2.0.3 573 | dev: true 574 | 575 | /emoji-regex@7.0.3: 576 | resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} 577 | dev: true 578 | 579 | /es-abstract@1.22.1: 580 | resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==} 581 | engines: {node: '>= 0.4'} 582 | dependencies: 583 | array-buffer-byte-length: 1.0.0 584 | arraybuffer.prototype.slice: 1.0.1 585 | available-typed-arrays: 1.0.5 586 | call-bind: 1.0.2 587 | es-set-tostringtag: 2.0.1 588 | es-to-primitive: 1.2.1 589 | function.prototype.name: 1.1.6 590 | get-intrinsic: 1.2.1 591 | get-symbol-description: 1.0.0 592 | globalthis: 1.0.3 593 | gopd: 1.0.1 594 | has: 1.0.3 595 | has-property-descriptors: 1.0.0 596 | has-proto: 1.0.1 597 | has-symbols: 1.0.3 598 | internal-slot: 1.0.5 599 | is-array-buffer: 3.0.2 600 | is-callable: 1.2.7 601 | is-negative-zero: 2.0.2 602 | is-regex: 1.1.4 603 | is-shared-array-buffer: 1.0.2 604 | is-string: 1.0.7 605 | is-typed-array: 1.1.12 606 | is-weakref: 1.0.2 607 | object-inspect: 1.12.3 608 | object-keys: 1.1.1 609 | object.assign: 4.1.4 610 | regexp.prototype.flags: 1.5.0 611 | safe-array-concat: 1.0.0 612 | safe-regex-test: 1.0.0 613 | string.prototype.trim: 1.2.7 614 | string.prototype.trimend: 1.0.6 615 | string.prototype.trimstart: 1.0.6 616 | typed-array-buffer: 1.0.0 617 | typed-array-byte-length: 1.0.0 618 | typed-array-byte-offset: 1.0.0 619 | typed-array-length: 1.0.4 620 | unbox-primitive: 1.0.2 621 | which-typed-array: 1.1.11 622 | dev: true 623 | 624 | /es-set-tostringtag@2.0.1: 625 | resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} 626 | engines: {node: '>= 0.4'} 627 | dependencies: 628 | get-intrinsic: 1.2.1 629 | has: 1.0.3 630 | has-tostringtag: 1.0.0 631 | dev: true 632 | 633 | /es-shim-unscopables@1.0.0: 634 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} 635 | dependencies: 636 | has: 1.0.3 637 | dev: true 638 | 639 | /es-to-primitive@1.2.1: 640 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 641 | engines: {node: '>= 0.4'} 642 | dependencies: 643 | is-callable: 1.2.7 644 | is-date-object: 1.0.5 645 | is-symbol: 1.0.4 646 | dev: true 647 | 648 | /escape-string-regexp@1.0.5: 649 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 650 | engines: {node: '>=0.8.0'} 651 | dev: true 652 | 653 | /escape-string-regexp@4.0.0: 654 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 655 | engines: {node: '>=10'} 656 | dev: true 657 | 658 | /eslint-config-prettier@9.0.0(eslint@8.48.0): 659 | resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} 660 | hasBin: true 661 | peerDependencies: 662 | eslint: '>=7.0.0' 663 | dependencies: 664 | eslint: 8.48.0 665 | dev: true 666 | 667 | /eslint-config-standard@17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@16.0.2)(eslint-plugin-promise@6.1.1)(eslint@8.48.0): 668 | resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} 669 | engines: {node: '>=12.0.0'} 670 | peerDependencies: 671 | eslint: ^8.0.1 672 | eslint-plugin-import: ^2.25.2 673 | eslint-plugin-n: '^15.0.0 || ^16.0.0 ' 674 | eslint-plugin-promise: ^6.0.0 675 | dependencies: 676 | eslint: 8.48.0 677 | eslint-plugin-import: 2.28.1(eslint@8.48.0) 678 | eslint-plugin-n: 16.0.2(eslint@8.48.0) 679 | eslint-plugin-promise: 6.1.1(eslint@8.48.0) 680 | dev: true 681 | 682 | /eslint-import-resolver-node@0.3.9: 683 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 684 | dependencies: 685 | debug: 3.2.7 686 | is-core-module: 2.13.0 687 | resolve: 1.22.4 688 | transitivePeerDependencies: 689 | - supports-color 690 | dev: true 691 | 692 | /eslint-module-utils@2.8.0(eslint-import-resolver-node@0.3.9)(eslint@8.48.0): 693 | resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} 694 | engines: {node: '>=4'} 695 | peerDependencies: 696 | '@typescript-eslint/parser': '*' 697 | eslint: '*' 698 | eslint-import-resolver-node: '*' 699 | eslint-import-resolver-typescript: '*' 700 | eslint-import-resolver-webpack: '*' 701 | peerDependenciesMeta: 702 | '@typescript-eslint/parser': 703 | optional: true 704 | eslint: 705 | optional: true 706 | eslint-import-resolver-node: 707 | optional: true 708 | eslint-import-resolver-typescript: 709 | optional: true 710 | eslint-import-resolver-webpack: 711 | optional: true 712 | dependencies: 713 | debug: 3.2.7 714 | eslint: 8.48.0 715 | eslint-import-resolver-node: 0.3.9 716 | transitivePeerDependencies: 717 | - supports-color 718 | dev: true 719 | 720 | /eslint-plugin-es-x@7.2.0(eslint@8.48.0): 721 | resolution: {integrity: sha512-9dvv5CcvNjSJPqnS5uZkqb3xmbeqRLnvXKK7iI5+oK/yTusyc46zbBZKENGsOfojm/mKfszyZb+wNqNPAPeGXA==} 722 | engines: {node: ^14.18.0 || >=16.0.0} 723 | peerDependencies: 724 | eslint: '>=8' 725 | dependencies: 726 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) 727 | '@eslint-community/regexpp': 4.8.0 728 | eslint: 8.48.0 729 | dev: true 730 | 731 | /eslint-plugin-import@2.28.1(eslint@8.48.0): 732 | resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} 733 | engines: {node: '>=4'} 734 | peerDependencies: 735 | '@typescript-eslint/parser': '*' 736 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 737 | peerDependenciesMeta: 738 | '@typescript-eslint/parser': 739 | optional: true 740 | dependencies: 741 | array-includes: 3.1.6 742 | array.prototype.findlastindex: 1.2.3 743 | array.prototype.flat: 1.3.1 744 | array.prototype.flatmap: 1.3.1 745 | debug: 3.2.7 746 | doctrine: 2.1.0 747 | eslint: 8.48.0 748 | eslint-import-resolver-node: 0.3.9 749 | eslint-module-utils: 2.8.0(eslint-import-resolver-node@0.3.9)(eslint@8.48.0) 750 | has: 1.0.3 751 | is-core-module: 2.13.0 752 | is-glob: 4.0.3 753 | minimatch: 3.1.2 754 | object.fromentries: 2.0.7 755 | object.groupby: 1.0.1 756 | object.values: 1.1.7 757 | semver: 6.3.1 758 | tsconfig-paths: 3.14.2 759 | transitivePeerDependencies: 760 | - eslint-import-resolver-typescript 761 | - eslint-import-resolver-webpack 762 | - supports-color 763 | dev: true 764 | 765 | /eslint-plugin-n@16.0.2(eslint@8.48.0): 766 | resolution: {integrity: sha512-Y66uDfUNbBzypsr0kELWrIz+5skicECrLUqlWuXawNSLUq3ltGlCwu6phboYYOTSnoTdHgTLrc+5Ydo6KjzZog==} 767 | engines: {node: '>=16.0.0'} 768 | peerDependencies: 769 | eslint: '>=7.0.0' 770 | dependencies: 771 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) 772 | builtins: 5.0.1 773 | eslint: 8.48.0 774 | eslint-plugin-es-x: 7.2.0(eslint@8.48.0) 775 | ignore: 5.2.4 776 | is-core-module: 2.13.0 777 | minimatch: 3.1.2 778 | resolve: 1.22.4 779 | semver: 7.5.4 780 | dev: true 781 | 782 | /eslint-plugin-promise@6.1.1(eslint@8.48.0): 783 | resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} 784 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 785 | peerDependencies: 786 | eslint: ^7.0.0 || ^8.0.0 787 | dependencies: 788 | eslint: 8.48.0 789 | dev: true 790 | 791 | /eslint-scope@7.2.2: 792 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 793 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 794 | dependencies: 795 | esrecurse: 4.3.0 796 | estraverse: 5.3.0 797 | dev: true 798 | 799 | /eslint-visitor-keys@3.4.3: 800 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 801 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 802 | dev: true 803 | 804 | /eslint@8.48.0: 805 | resolution: {integrity: sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==} 806 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 807 | hasBin: true 808 | dependencies: 809 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) 810 | '@eslint-community/regexpp': 4.8.0 811 | '@eslint/eslintrc': 2.1.2 812 | '@eslint/js': 8.48.0 813 | '@humanwhocodes/config-array': 0.11.11 814 | '@humanwhocodes/module-importer': 1.0.1 815 | '@nodelib/fs.walk': 1.2.8 816 | ajv: 6.12.6 817 | chalk: 4.1.2 818 | cross-spawn: 7.0.3 819 | debug: 4.3.4 820 | doctrine: 3.0.0 821 | escape-string-regexp: 4.0.0 822 | eslint-scope: 7.2.2 823 | eslint-visitor-keys: 3.4.3 824 | espree: 9.6.1 825 | esquery: 1.5.0 826 | esutils: 2.0.3 827 | fast-deep-equal: 3.1.3 828 | file-entry-cache: 6.0.1 829 | find-up: 5.0.0 830 | glob-parent: 6.0.2 831 | globals: 13.21.0 832 | graphemer: 1.4.0 833 | ignore: 5.2.4 834 | imurmurhash: 0.1.4 835 | is-glob: 4.0.3 836 | is-path-inside: 3.0.3 837 | js-yaml: 4.1.0 838 | json-stable-stringify-without-jsonify: 1.0.1 839 | levn: 0.4.1 840 | lodash.merge: 4.6.2 841 | minimatch: 3.1.2 842 | natural-compare: 1.4.0 843 | optionator: 0.9.3 844 | strip-ansi: 6.0.1 845 | text-table: 0.2.0 846 | transitivePeerDependencies: 847 | - supports-color 848 | dev: true 849 | 850 | /espree@9.6.1: 851 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 852 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 853 | dependencies: 854 | acorn: 8.10.0 855 | acorn-jsx: 5.3.2(acorn@8.10.0) 856 | eslint-visitor-keys: 3.4.3 857 | dev: true 858 | 859 | /esquery@1.5.0: 860 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 861 | engines: {node: '>=0.10'} 862 | dependencies: 863 | estraverse: 5.3.0 864 | dev: true 865 | 866 | /esrecurse@4.3.0: 867 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 868 | engines: {node: '>=4.0'} 869 | dependencies: 870 | estraverse: 5.3.0 871 | dev: true 872 | 873 | /estraverse@5.3.0: 874 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 875 | engines: {node: '>=4.0'} 876 | dev: true 877 | 878 | /esutils@2.0.3: 879 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 880 | engines: {node: '>=0.10.0'} 881 | dev: true 882 | 883 | /fast-deep-equal@3.1.3: 884 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 885 | dev: true 886 | 887 | /fast-glob@3.3.1: 888 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} 889 | engines: {node: '>=8.6.0'} 890 | dependencies: 891 | '@nodelib/fs.stat': 2.0.5 892 | '@nodelib/fs.walk': 1.2.8 893 | glob-parent: 5.1.2 894 | merge2: 1.4.1 895 | micromatch: 4.0.5 896 | dev: true 897 | 898 | /fast-json-stable-stringify@2.1.0: 899 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 900 | dev: true 901 | 902 | /fast-levenshtein@2.0.6: 903 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 904 | dev: true 905 | 906 | /fastq@1.15.0: 907 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 908 | dependencies: 909 | reusify: 1.0.4 910 | dev: true 911 | 912 | /file-entry-cache@6.0.1: 913 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 914 | engines: {node: ^10.12.0 || >=12.0.0} 915 | dependencies: 916 | flat-cache: 3.1.0 917 | dev: true 918 | 919 | /fill-range@7.0.1: 920 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 921 | engines: {node: '>=8'} 922 | dependencies: 923 | to-regex-range: 5.0.1 924 | dev: true 925 | 926 | /find-up@3.0.0: 927 | resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} 928 | engines: {node: '>=6'} 929 | dependencies: 930 | locate-path: 3.0.0 931 | dev: true 932 | 933 | /find-up@5.0.0: 934 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 935 | engines: {node: '>=10'} 936 | dependencies: 937 | locate-path: 6.0.0 938 | path-exists: 4.0.0 939 | dev: true 940 | 941 | /flat-cache@3.1.0: 942 | resolution: {integrity: sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==} 943 | engines: {node: '>=12.0.0'} 944 | dependencies: 945 | flatted: 3.2.7 946 | keyv: 4.5.3 947 | rimraf: 3.0.2 948 | dev: true 949 | 950 | /flatted@3.2.7: 951 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 952 | dev: true 953 | 954 | /for-each@0.3.3: 955 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 956 | dependencies: 957 | is-callable: 1.2.7 958 | dev: true 959 | 960 | /fs.realpath@1.0.0: 961 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 962 | dev: true 963 | 964 | /function-bind@1.1.1: 965 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 966 | dev: true 967 | 968 | /function.prototype.name@1.1.6: 969 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} 970 | engines: {node: '>= 0.4'} 971 | dependencies: 972 | call-bind: 1.0.2 973 | define-properties: 1.2.0 974 | es-abstract: 1.22.1 975 | functions-have-names: 1.2.3 976 | dev: true 977 | 978 | /functions-have-names@1.2.3: 979 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 980 | dev: true 981 | 982 | /get-caller-file@2.0.5: 983 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 984 | engines: {node: 6.* || 8.* || >= 10.*} 985 | dev: true 986 | 987 | /get-intrinsic@1.2.1: 988 | resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} 989 | dependencies: 990 | function-bind: 1.1.1 991 | has: 1.0.3 992 | has-proto: 1.0.1 993 | has-symbols: 1.0.3 994 | dev: true 995 | 996 | /get-stdin@8.0.0: 997 | resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} 998 | engines: {node: '>=10'} 999 | dev: true 1000 | 1001 | /get-symbol-description@1.0.0: 1002 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 1003 | engines: {node: '>= 0.4'} 1004 | dependencies: 1005 | call-bind: 1.0.2 1006 | get-intrinsic: 1.2.1 1007 | dev: true 1008 | 1009 | /glob-parent@5.1.2: 1010 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1011 | engines: {node: '>= 6'} 1012 | dependencies: 1013 | is-glob: 4.0.3 1014 | dev: true 1015 | 1016 | /glob-parent@6.0.2: 1017 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1018 | engines: {node: '>=10.13.0'} 1019 | dependencies: 1020 | is-glob: 4.0.3 1021 | dev: true 1022 | 1023 | /glob@7.2.3: 1024 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1025 | dependencies: 1026 | fs.realpath: 1.0.0 1027 | inflight: 1.0.6 1028 | inherits: 2.0.4 1029 | minimatch: 3.1.2 1030 | once: 1.4.0 1031 | path-is-absolute: 1.0.1 1032 | dev: true 1033 | 1034 | /globals@13.21.0: 1035 | resolution: {integrity: sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==} 1036 | engines: {node: '>=8'} 1037 | dependencies: 1038 | type-fest: 0.20.2 1039 | dev: true 1040 | 1041 | /globalthis@1.0.3: 1042 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} 1043 | engines: {node: '>= 0.4'} 1044 | dependencies: 1045 | define-properties: 1.2.0 1046 | dev: true 1047 | 1048 | /globby@11.1.0: 1049 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1050 | engines: {node: '>=10'} 1051 | dependencies: 1052 | array-union: 2.1.0 1053 | dir-glob: 3.0.1 1054 | fast-glob: 3.3.1 1055 | ignore: 5.2.4 1056 | merge2: 1.4.1 1057 | slash: 3.0.0 1058 | dev: true 1059 | 1060 | /gopd@1.0.1: 1061 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1062 | dependencies: 1063 | get-intrinsic: 1.2.1 1064 | dev: true 1065 | 1066 | /graphemer@1.4.0: 1067 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1068 | dev: true 1069 | 1070 | /has-ansi@2.0.0: 1071 | resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} 1072 | engines: {node: '>=0.10.0'} 1073 | dependencies: 1074 | ansi-regex: 2.1.1 1075 | dev: true 1076 | 1077 | /has-bigints@1.0.2: 1078 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1079 | dev: true 1080 | 1081 | /has-flag@4.0.0: 1082 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1083 | engines: {node: '>=8'} 1084 | dev: true 1085 | 1086 | /has-property-descriptors@1.0.0: 1087 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 1088 | dependencies: 1089 | get-intrinsic: 1.2.1 1090 | dev: true 1091 | 1092 | /has-proto@1.0.1: 1093 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} 1094 | engines: {node: '>= 0.4'} 1095 | dev: true 1096 | 1097 | /has-symbols@1.0.3: 1098 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1099 | engines: {node: '>= 0.4'} 1100 | dev: true 1101 | 1102 | /has-tostringtag@1.0.0: 1103 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 1104 | engines: {node: '>= 0.4'} 1105 | dependencies: 1106 | has-symbols: 1.0.3 1107 | dev: true 1108 | 1109 | /has@1.0.3: 1110 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1111 | engines: {node: '>= 0.4.0'} 1112 | dependencies: 1113 | function-bind: 1.1.1 1114 | dev: true 1115 | 1116 | /ignore@5.2.4: 1117 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 1118 | engines: {node: '>= 4'} 1119 | dev: true 1120 | 1121 | /import-fresh@3.3.0: 1122 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1123 | engines: {node: '>=6'} 1124 | dependencies: 1125 | parent-module: 1.0.1 1126 | resolve-from: 4.0.0 1127 | dev: true 1128 | 1129 | /imurmurhash@0.1.4: 1130 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1131 | engines: {node: '>=0.8.19'} 1132 | dev: true 1133 | 1134 | /indent-string@4.0.0: 1135 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 1136 | engines: {node: '>=8'} 1137 | dev: true 1138 | 1139 | /inflight@1.0.6: 1140 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1141 | dependencies: 1142 | once: 1.4.0 1143 | wrappy: 1.0.2 1144 | dev: true 1145 | 1146 | /inherits@2.0.4: 1147 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1148 | dev: true 1149 | 1150 | /internal-slot@1.0.5: 1151 | resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} 1152 | engines: {node: '>= 0.4'} 1153 | dependencies: 1154 | get-intrinsic: 1.2.1 1155 | has: 1.0.3 1156 | side-channel: 1.0.4 1157 | dev: true 1158 | 1159 | /is-array-buffer@3.0.2: 1160 | resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} 1161 | dependencies: 1162 | call-bind: 1.0.2 1163 | get-intrinsic: 1.2.1 1164 | is-typed-array: 1.1.12 1165 | dev: true 1166 | 1167 | /is-bigint@1.0.4: 1168 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1169 | dependencies: 1170 | has-bigints: 1.0.2 1171 | dev: true 1172 | 1173 | /is-boolean-object@1.1.2: 1174 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1175 | engines: {node: '>= 0.4'} 1176 | dependencies: 1177 | call-bind: 1.0.2 1178 | has-tostringtag: 1.0.0 1179 | dev: true 1180 | 1181 | /is-callable@1.2.7: 1182 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1183 | engines: {node: '>= 0.4'} 1184 | dev: true 1185 | 1186 | /is-core-module@2.13.0: 1187 | resolution: {integrity: sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==} 1188 | dependencies: 1189 | has: 1.0.3 1190 | dev: true 1191 | 1192 | /is-date-object@1.0.5: 1193 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1194 | engines: {node: '>= 0.4'} 1195 | dependencies: 1196 | has-tostringtag: 1.0.0 1197 | dev: true 1198 | 1199 | /is-extglob@2.1.1: 1200 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1201 | engines: {node: '>=0.10.0'} 1202 | dev: true 1203 | 1204 | /is-fullwidth-code-point@2.0.0: 1205 | resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} 1206 | engines: {node: '>=4'} 1207 | dev: true 1208 | 1209 | /is-glob@4.0.3: 1210 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1211 | engines: {node: '>=0.10.0'} 1212 | dependencies: 1213 | is-extglob: 2.1.1 1214 | dev: true 1215 | 1216 | /is-negative-zero@2.0.2: 1217 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 1218 | engines: {node: '>= 0.4'} 1219 | dev: true 1220 | 1221 | /is-number-object@1.0.7: 1222 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 1223 | engines: {node: '>= 0.4'} 1224 | dependencies: 1225 | has-tostringtag: 1.0.0 1226 | dev: true 1227 | 1228 | /is-number@7.0.0: 1229 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1230 | engines: {node: '>=0.12.0'} 1231 | dev: true 1232 | 1233 | /is-path-inside@3.0.3: 1234 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1235 | engines: {node: '>=8'} 1236 | dev: true 1237 | 1238 | /is-regex@1.1.4: 1239 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1240 | engines: {node: '>= 0.4'} 1241 | dependencies: 1242 | call-bind: 1.0.2 1243 | has-tostringtag: 1.0.0 1244 | dev: true 1245 | 1246 | /is-shared-array-buffer@1.0.2: 1247 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 1248 | dependencies: 1249 | call-bind: 1.0.2 1250 | dev: true 1251 | 1252 | /is-string@1.0.7: 1253 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 1254 | engines: {node: '>= 0.4'} 1255 | dependencies: 1256 | has-tostringtag: 1.0.0 1257 | dev: true 1258 | 1259 | /is-symbol@1.0.4: 1260 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 1261 | engines: {node: '>= 0.4'} 1262 | dependencies: 1263 | has-symbols: 1.0.3 1264 | dev: true 1265 | 1266 | /is-typed-array@1.1.12: 1267 | resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} 1268 | engines: {node: '>= 0.4'} 1269 | dependencies: 1270 | which-typed-array: 1.1.11 1271 | dev: true 1272 | 1273 | /is-weakref@1.0.2: 1274 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 1275 | dependencies: 1276 | call-bind: 1.0.2 1277 | dev: true 1278 | 1279 | /isarray@2.0.5: 1280 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1281 | dev: true 1282 | 1283 | /isexe@2.0.0: 1284 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1285 | dev: true 1286 | 1287 | /js-yaml@4.1.0: 1288 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1289 | hasBin: true 1290 | dependencies: 1291 | argparse: 2.0.1 1292 | dev: true 1293 | 1294 | /json-buffer@3.0.1: 1295 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1296 | dev: true 1297 | 1298 | /json-schema-traverse@0.4.1: 1299 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1300 | dev: true 1301 | 1302 | /json-stable-stringify-without-jsonify@1.0.1: 1303 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1304 | dev: true 1305 | 1306 | /json5@1.0.2: 1307 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 1308 | hasBin: true 1309 | dependencies: 1310 | minimist: 1.2.8 1311 | dev: true 1312 | 1313 | /keyv@4.5.3: 1314 | resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==} 1315 | dependencies: 1316 | json-buffer: 3.0.1 1317 | dev: true 1318 | 1319 | /levn@0.4.1: 1320 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1321 | engines: {node: '>= 0.8.0'} 1322 | dependencies: 1323 | prelude-ls: 1.2.1 1324 | type-check: 0.4.0 1325 | dev: true 1326 | 1327 | /locate-path@3.0.0: 1328 | resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} 1329 | engines: {node: '>=6'} 1330 | dependencies: 1331 | p-locate: 3.0.0 1332 | path-exists: 3.0.0 1333 | dev: true 1334 | 1335 | /locate-path@6.0.0: 1336 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1337 | engines: {node: '>=10'} 1338 | dependencies: 1339 | p-locate: 5.0.0 1340 | dev: true 1341 | 1342 | /lodash.memoize@4.1.2: 1343 | resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} 1344 | dev: true 1345 | 1346 | /lodash.merge@4.6.2: 1347 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1348 | dev: true 1349 | 1350 | /lodash@4.17.21: 1351 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1352 | dev: true 1353 | 1354 | /loglevel-colored-level-prefix@1.0.0: 1355 | resolution: {integrity: sha512-u45Wcxxc+SdAlh4yeF/uKlC1SPUPCy0gullSNKXod5I4bmifzk+Q4lSLExNEVn19tGaJipbZ4V4jbFn79/6mVA==} 1356 | dependencies: 1357 | chalk: 1.1.3 1358 | loglevel: 1.8.1 1359 | dev: true 1360 | 1361 | /loglevel@1.8.1: 1362 | resolution: {integrity: sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==} 1363 | engines: {node: '>= 0.6.0'} 1364 | dev: true 1365 | 1366 | /lru-cache@6.0.0: 1367 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1368 | engines: {node: '>=10'} 1369 | dependencies: 1370 | yallist: 4.0.0 1371 | dev: true 1372 | 1373 | /make-plural@7.3.0: 1374 | resolution: {integrity: sha512-/K3BC0KIsO+WK2i94LkMPv3wslMrazrQhfi5We9fMbLlLjzoOSJWr7TAdupLlDWaJcWxwoNosBkhFDejiu5VDw==} 1375 | dev: true 1376 | 1377 | /map-obj@4.3.0: 1378 | resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} 1379 | engines: {node: '>=8'} 1380 | dev: true 1381 | 1382 | /merge2@1.4.1: 1383 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1384 | engines: {node: '>= 8'} 1385 | dev: true 1386 | 1387 | /micromatch@4.0.5: 1388 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1389 | engines: {node: '>=8.6'} 1390 | dependencies: 1391 | braces: 3.0.2 1392 | picomatch: 2.3.1 1393 | dev: true 1394 | 1395 | /minimatch@3.1.2: 1396 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1397 | dependencies: 1398 | brace-expansion: 1.1.11 1399 | dev: true 1400 | 1401 | /minimist@1.2.8: 1402 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1403 | dev: true 1404 | 1405 | /moo@0.5.2: 1406 | resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} 1407 | dev: true 1408 | 1409 | /ms@2.1.2: 1410 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1411 | dev: true 1412 | 1413 | /ms@2.1.3: 1414 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1415 | dev: true 1416 | 1417 | /natural-compare@1.4.0: 1418 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1419 | dev: true 1420 | 1421 | /object-inspect@1.12.3: 1422 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} 1423 | dev: true 1424 | 1425 | /object-keys@1.1.1: 1426 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1427 | engines: {node: '>= 0.4'} 1428 | dev: true 1429 | 1430 | /object.assign@4.1.4: 1431 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} 1432 | engines: {node: '>= 0.4'} 1433 | dependencies: 1434 | call-bind: 1.0.2 1435 | define-properties: 1.2.0 1436 | has-symbols: 1.0.3 1437 | object-keys: 1.1.1 1438 | dev: true 1439 | 1440 | /object.fromentries@2.0.7: 1441 | resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} 1442 | engines: {node: '>= 0.4'} 1443 | dependencies: 1444 | call-bind: 1.0.2 1445 | define-properties: 1.2.0 1446 | es-abstract: 1.22.1 1447 | dev: true 1448 | 1449 | /object.groupby@1.0.1: 1450 | resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} 1451 | dependencies: 1452 | call-bind: 1.0.2 1453 | define-properties: 1.2.0 1454 | es-abstract: 1.22.1 1455 | get-intrinsic: 1.2.1 1456 | dev: true 1457 | 1458 | /object.values@1.1.7: 1459 | resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} 1460 | engines: {node: '>= 0.4'} 1461 | dependencies: 1462 | call-bind: 1.0.2 1463 | define-properties: 1.2.0 1464 | es-abstract: 1.22.1 1465 | dev: true 1466 | 1467 | /once@1.4.0: 1468 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1469 | dependencies: 1470 | wrappy: 1.0.2 1471 | dev: true 1472 | 1473 | /optionator@0.9.3: 1474 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 1475 | engines: {node: '>= 0.8.0'} 1476 | dependencies: 1477 | '@aashutoshrathi/word-wrap': 1.2.6 1478 | deep-is: 0.1.4 1479 | fast-levenshtein: 2.0.6 1480 | levn: 0.4.1 1481 | prelude-ls: 1.2.1 1482 | type-check: 0.4.0 1483 | dev: true 1484 | 1485 | /p-limit@2.3.0: 1486 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1487 | engines: {node: '>=6'} 1488 | dependencies: 1489 | p-try: 2.2.0 1490 | dev: true 1491 | 1492 | /p-limit@3.1.0: 1493 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1494 | engines: {node: '>=10'} 1495 | dependencies: 1496 | yocto-queue: 0.1.0 1497 | dev: true 1498 | 1499 | /p-locate@3.0.0: 1500 | resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} 1501 | engines: {node: '>=6'} 1502 | dependencies: 1503 | p-limit: 2.3.0 1504 | dev: true 1505 | 1506 | /p-locate@5.0.0: 1507 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1508 | engines: {node: '>=10'} 1509 | dependencies: 1510 | p-limit: 3.1.0 1511 | dev: true 1512 | 1513 | /p-try@2.2.0: 1514 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1515 | engines: {node: '>=6'} 1516 | dev: true 1517 | 1518 | /parent-module@1.0.1: 1519 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1520 | engines: {node: '>=6'} 1521 | dependencies: 1522 | callsites: 3.1.0 1523 | dev: true 1524 | 1525 | /path-exists@3.0.0: 1526 | resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} 1527 | engines: {node: '>=4'} 1528 | dev: true 1529 | 1530 | /path-exists@4.0.0: 1531 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1532 | engines: {node: '>=8'} 1533 | dev: true 1534 | 1535 | /path-is-absolute@1.0.1: 1536 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1537 | engines: {node: '>=0.10.0'} 1538 | dev: true 1539 | 1540 | /path-key@3.1.1: 1541 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1542 | engines: {node: '>=8'} 1543 | dev: true 1544 | 1545 | /path-parse@1.0.7: 1546 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1547 | dev: true 1548 | 1549 | /path-type@4.0.0: 1550 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1551 | engines: {node: '>=8'} 1552 | dev: true 1553 | 1554 | /picomatch@2.3.1: 1555 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1556 | engines: {node: '>=8.6'} 1557 | dev: true 1558 | 1559 | /prelude-ls@1.2.1: 1560 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1561 | engines: {node: '>= 0.8.0'} 1562 | dev: true 1563 | 1564 | /prettier-eslint-cli@7.1.0(prettier-eslint@15.0.1): 1565 | resolution: {integrity: sha512-kMMvV7Mt6VqdJSb25aCkOA7HTIxy5mii2tzBb1vCSmzlIECOzTP2wRPIeAtBky6WdpfN0n1Zxa4E37Atp1IksA==} 1566 | engines: {node: '>=12.22'} 1567 | hasBin: true 1568 | peerDependencies: 1569 | prettier-eslint: '*' 1570 | peerDependenciesMeta: 1571 | prettier-eslint: 1572 | optional: true 1573 | dependencies: 1574 | '@messageformat/core': 3.2.0 1575 | '@prettier/eslint': /prettier-eslint@15.0.1 1576 | arrify: 2.0.1 1577 | boolify: 1.0.1 1578 | camelcase-keys: 7.0.2 1579 | chalk: 4.1.2 1580 | common-tags: 1.8.2 1581 | core-js: 3.32.1 1582 | eslint: 8.48.0 1583 | find-up: 5.0.0 1584 | get-stdin: 8.0.0 1585 | glob: 7.2.3 1586 | ignore: 5.2.4 1587 | indent-string: 4.0.0 1588 | lodash.memoize: 4.1.2 1589 | loglevel-colored-level-prefix: 1.0.0 1590 | prettier-eslint: 15.0.1 1591 | rxjs: 7.8.1 1592 | yargs: 13.3.2 1593 | transitivePeerDependencies: 1594 | - supports-color 1595 | dev: true 1596 | 1597 | /prettier-eslint@15.0.1: 1598 | resolution: {integrity: sha512-mGOWVHixSvpZWARqSDXbdtTL54mMBxc5oQYQ6RAqy8jecuNJBgN3t9E5a81G66F8x8fsKNiR1HWaBV66MJDOpg==} 1599 | engines: {node: '>=10.0.0'} 1600 | dependencies: 1601 | '@types/eslint': 8.44.2 1602 | '@types/prettier': 2.7.3 1603 | '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@4.9.5) 1604 | common-tags: 1.8.2 1605 | dlv: 1.1.3 1606 | eslint: 8.48.0 1607 | indent-string: 4.0.0 1608 | lodash.merge: 4.6.2 1609 | loglevel-colored-level-prefix: 1.0.0 1610 | prettier: 2.8.8 1611 | pretty-format: 23.6.0 1612 | require-relative: 0.8.7 1613 | typescript: 4.9.5 1614 | vue-eslint-parser: 8.3.0(eslint@8.48.0) 1615 | transitivePeerDependencies: 1616 | - supports-color 1617 | dev: true 1618 | 1619 | /prettier@2.8.8: 1620 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 1621 | engines: {node: '>=10.13.0'} 1622 | hasBin: true 1623 | dev: true 1624 | 1625 | /prettier@3.0.0: 1626 | resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} 1627 | engines: {node: '>=14'} 1628 | hasBin: true 1629 | dev: true 1630 | 1631 | /pretty-format@23.6.0: 1632 | resolution: {integrity: sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==} 1633 | dependencies: 1634 | ansi-regex: 3.0.1 1635 | ansi-styles: 3.2.1 1636 | dev: true 1637 | 1638 | /punycode@2.3.0: 1639 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 1640 | engines: {node: '>=6'} 1641 | dev: true 1642 | 1643 | /queue-microtask@1.2.3: 1644 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1645 | dev: true 1646 | 1647 | /quick-lru@5.1.1: 1648 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} 1649 | engines: {node: '>=10'} 1650 | dev: true 1651 | 1652 | /regexp.prototype.flags@1.5.0: 1653 | resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} 1654 | engines: {node: '>= 0.4'} 1655 | dependencies: 1656 | call-bind: 1.0.2 1657 | define-properties: 1.2.0 1658 | functions-have-names: 1.2.3 1659 | dev: true 1660 | 1661 | /require-directory@2.1.1: 1662 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1663 | engines: {node: '>=0.10.0'} 1664 | dev: true 1665 | 1666 | /require-main-filename@2.0.0: 1667 | resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} 1668 | dev: true 1669 | 1670 | /require-relative@0.8.7: 1671 | resolution: {integrity: sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg==} 1672 | dev: true 1673 | 1674 | /resolve-from@4.0.0: 1675 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1676 | engines: {node: '>=4'} 1677 | dev: true 1678 | 1679 | /resolve@1.22.4: 1680 | resolution: {integrity: sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==} 1681 | hasBin: true 1682 | dependencies: 1683 | is-core-module: 2.13.0 1684 | path-parse: 1.0.7 1685 | supports-preserve-symlinks-flag: 1.0.0 1686 | dev: true 1687 | 1688 | /reusify@1.0.4: 1689 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1690 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1691 | dev: true 1692 | 1693 | /rimraf@3.0.2: 1694 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1695 | hasBin: true 1696 | dependencies: 1697 | glob: 7.2.3 1698 | dev: true 1699 | 1700 | /run-parallel@1.2.0: 1701 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1702 | dependencies: 1703 | queue-microtask: 1.2.3 1704 | dev: true 1705 | 1706 | /rxjs@7.8.1: 1707 | resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} 1708 | dependencies: 1709 | tslib: 2.6.2 1710 | dev: true 1711 | 1712 | /safe-array-concat@1.0.0: 1713 | resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==} 1714 | engines: {node: '>=0.4'} 1715 | dependencies: 1716 | call-bind: 1.0.2 1717 | get-intrinsic: 1.2.1 1718 | has-symbols: 1.0.3 1719 | isarray: 2.0.5 1720 | dev: true 1721 | 1722 | /safe-identifier@0.4.2: 1723 | resolution: {integrity: sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==} 1724 | dev: true 1725 | 1726 | /safe-regex-test@1.0.0: 1727 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} 1728 | dependencies: 1729 | call-bind: 1.0.2 1730 | get-intrinsic: 1.2.1 1731 | is-regex: 1.1.4 1732 | dev: true 1733 | 1734 | /semver@6.3.1: 1735 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1736 | hasBin: true 1737 | dev: true 1738 | 1739 | /semver@7.5.4: 1740 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 1741 | engines: {node: '>=10'} 1742 | hasBin: true 1743 | dependencies: 1744 | lru-cache: 6.0.0 1745 | dev: true 1746 | 1747 | /set-blocking@2.0.0: 1748 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} 1749 | dev: true 1750 | 1751 | /shebang-command@2.0.0: 1752 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1753 | engines: {node: '>=8'} 1754 | dependencies: 1755 | shebang-regex: 3.0.0 1756 | dev: true 1757 | 1758 | /shebang-regex@3.0.0: 1759 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1760 | engines: {node: '>=8'} 1761 | dev: true 1762 | 1763 | /side-channel@1.0.4: 1764 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 1765 | dependencies: 1766 | call-bind: 1.0.2 1767 | get-intrinsic: 1.2.1 1768 | object-inspect: 1.12.3 1769 | dev: true 1770 | 1771 | /slash@3.0.0: 1772 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1773 | engines: {node: '>=8'} 1774 | dev: true 1775 | 1776 | /string-width@3.1.0: 1777 | resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} 1778 | engines: {node: '>=6'} 1779 | dependencies: 1780 | emoji-regex: 7.0.3 1781 | is-fullwidth-code-point: 2.0.0 1782 | strip-ansi: 5.2.0 1783 | dev: true 1784 | 1785 | /string.prototype.trim@1.2.7: 1786 | resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} 1787 | engines: {node: '>= 0.4'} 1788 | dependencies: 1789 | call-bind: 1.0.2 1790 | define-properties: 1.2.0 1791 | es-abstract: 1.22.1 1792 | dev: true 1793 | 1794 | /string.prototype.trimend@1.0.6: 1795 | resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} 1796 | dependencies: 1797 | call-bind: 1.0.2 1798 | define-properties: 1.2.0 1799 | es-abstract: 1.22.1 1800 | dev: true 1801 | 1802 | /string.prototype.trimstart@1.0.6: 1803 | resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} 1804 | dependencies: 1805 | call-bind: 1.0.2 1806 | define-properties: 1.2.0 1807 | es-abstract: 1.22.1 1808 | dev: true 1809 | 1810 | /strip-ansi@3.0.1: 1811 | resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} 1812 | engines: {node: '>=0.10.0'} 1813 | dependencies: 1814 | ansi-regex: 2.1.1 1815 | dev: true 1816 | 1817 | /strip-ansi@5.2.0: 1818 | resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} 1819 | engines: {node: '>=6'} 1820 | dependencies: 1821 | ansi-regex: 4.1.1 1822 | dev: true 1823 | 1824 | /strip-ansi@6.0.1: 1825 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1826 | engines: {node: '>=8'} 1827 | dependencies: 1828 | ansi-regex: 5.0.1 1829 | dev: true 1830 | 1831 | /strip-bom@3.0.0: 1832 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 1833 | engines: {node: '>=4'} 1834 | dev: true 1835 | 1836 | /strip-json-comments@3.1.1: 1837 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1838 | engines: {node: '>=8'} 1839 | dev: true 1840 | 1841 | /supports-color@2.0.0: 1842 | resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} 1843 | engines: {node: '>=0.8.0'} 1844 | dev: true 1845 | 1846 | /supports-color@7.2.0: 1847 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1848 | engines: {node: '>=8'} 1849 | dependencies: 1850 | has-flag: 4.0.0 1851 | dev: true 1852 | 1853 | /supports-preserve-symlinks-flag@1.0.0: 1854 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1855 | engines: {node: '>= 0.4'} 1856 | dev: true 1857 | 1858 | /text-table@0.2.0: 1859 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1860 | dev: true 1861 | 1862 | /to-regex-range@5.0.1: 1863 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1864 | engines: {node: '>=8.0'} 1865 | dependencies: 1866 | is-number: 7.0.0 1867 | dev: true 1868 | 1869 | /tsconfig-paths@3.14.2: 1870 | resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} 1871 | dependencies: 1872 | '@types/json5': 0.0.29 1873 | json5: 1.0.2 1874 | minimist: 1.2.8 1875 | strip-bom: 3.0.0 1876 | dev: true 1877 | 1878 | /tslib@1.14.1: 1879 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 1880 | dev: true 1881 | 1882 | /tslib@2.6.2: 1883 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 1884 | dev: true 1885 | 1886 | /tsutils@3.21.0(typescript@4.9.5): 1887 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 1888 | engines: {node: '>= 6'} 1889 | peerDependencies: 1890 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' 1891 | dependencies: 1892 | tslib: 1.14.1 1893 | typescript: 4.9.5 1894 | dev: true 1895 | 1896 | /type-check@0.4.0: 1897 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1898 | engines: {node: '>= 0.8.0'} 1899 | dependencies: 1900 | prelude-ls: 1.2.1 1901 | dev: true 1902 | 1903 | /type-fest@0.20.2: 1904 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1905 | engines: {node: '>=10'} 1906 | dev: true 1907 | 1908 | /type-fest@1.4.0: 1909 | resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} 1910 | engines: {node: '>=10'} 1911 | dev: true 1912 | 1913 | /typed-array-buffer@1.0.0: 1914 | resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} 1915 | engines: {node: '>= 0.4'} 1916 | dependencies: 1917 | call-bind: 1.0.2 1918 | get-intrinsic: 1.2.1 1919 | is-typed-array: 1.1.12 1920 | dev: true 1921 | 1922 | /typed-array-byte-length@1.0.0: 1923 | resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} 1924 | engines: {node: '>= 0.4'} 1925 | dependencies: 1926 | call-bind: 1.0.2 1927 | for-each: 0.3.3 1928 | has-proto: 1.0.1 1929 | is-typed-array: 1.1.12 1930 | dev: true 1931 | 1932 | /typed-array-byte-offset@1.0.0: 1933 | resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} 1934 | engines: {node: '>= 0.4'} 1935 | dependencies: 1936 | available-typed-arrays: 1.0.5 1937 | call-bind: 1.0.2 1938 | for-each: 0.3.3 1939 | has-proto: 1.0.1 1940 | is-typed-array: 1.1.12 1941 | dev: true 1942 | 1943 | /typed-array-length@1.0.4: 1944 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} 1945 | dependencies: 1946 | call-bind: 1.0.2 1947 | for-each: 0.3.3 1948 | is-typed-array: 1.1.12 1949 | dev: true 1950 | 1951 | /typescript@4.9.5: 1952 | resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} 1953 | engines: {node: '>=4.2.0'} 1954 | hasBin: true 1955 | dev: true 1956 | 1957 | /unbox-primitive@1.0.2: 1958 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 1959 | dependencies: 1960 | call-bind: 1.0.2 1961 | has-bigints: 1.0.2 1962 | has-symbols: 1.0.3 1963 | which-boxed-primitive: 1.0.2 1964 | dev: true 1965 | 1966 | /uri-js@4.4.1: 1967 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1968 | dependencies: 1969 | punycode: 2.3.0 1970 | dev: true 1971 | 1972 | /vue-eslint-parser@8.3.0(eslint@8.48.0): 1973 | resolution: {integrity: sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==} 1974 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1975 | peerDependencies: 1976 | eslint: '>=6.0.0' 1977 | dependencies: 1978 | debug: 4.3.4 1979 | eslint: 8.48.0 1980 | eslint-scope: 7.2.2 1981 | eslint-visitor-keys: 3.4.3 1982 | espree: 9.6.1 1983 | esquery: 1.5.0 1984 | lodash: 4.17.21 1985 | semver: 7.5.4 1986 | transitivePeerDependencies: 1987 | - supports-color 1988 | dev: true 1989 | 1990 | /which-boxed-primitive@1.0.2: 1991 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 1992 | dependencies: 1993 | is-bigint: 1.0.4 1994 | is-boolean-object: 1.1.2 1995 | is-number-object: 1.0.7 1996 | is-string: 1.0.7 1997 | is-symbol: 1.0.4 1998 | dev: true 1999 | 2000 | /which-module@2.0.1: 2001 | resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} 2002 | dev: true 2003 | 2004 | /which-typed-array@1.1.11: 2005 | resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} 2006 | engines: {node: '>= 0.4'} 2007 | dependencies: 2008 | available-typed-arrays: 1.0.5 2009 | call-bind: 1.0.2 2010 | for-each: 0.3.3 2011 | gopd: 1.0.1 2012 | has-tostringtag: 1.0.0 2013 | dev: true 2014 | 2015 | /which@2.0.2: 2016 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2017 | engines: {node: '>= 8'} 2018 | hasBin: true 2019 | dependencies: 2020 | isexe: 2.0.0 2021 | dev: true 2022 | 2023 | /wrap-ansi@5.1.0: 2024 | resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==} 2025 | engines: {node: '>=6'} 2026 | dependencies: 2027 | ansi-styles: 3.2.1 2028 | string-width: 3.1.0 2029 | strip-ansi: 5.2.0 2030 | dev: true 2031 | 2032 | /wrappy@1.0.2: 2033 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2034 | dev: true 2035 | 2036 | /y18n@4.0.3: 2037 | resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} 2038 | dev: true 2039 | 2040 | /yallist@4.0.0: 2041 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2042 | dev: true 2043 | 2044 | /yargs-parser@13.1.2: 2045 | resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==} 2046 | dependencies: 2047 | camelcase: 5.3.1 2048 | decamelize: 1.2.0 2049 | dev: true 2050 | 2051 | /yargs@13.3.2: 2052 | resolution: {integrity: sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==} 2053 | dependencies: 2054 | cliui: 5.0.0 2055 | find-up: 3.0.0 2056 | get-caller-file: 2.0.5 2057 | require-directory: 2.1.1 2058 | require-main-filename: 2.0.0 2059 | set-blocking: 2.0.0 2060 | string-width: 3.1.0 2061 | which-module: 2.0.1 2062 | y18n: 4.0.3 2063 | yargs-parser: 13.1.2 2064 | dev: true 2065 | 2066 | /yocto-queue@0.1.0: 2067 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2068 | engines: {node: '>=10'} 2069 | dev: true 2070 | --------------------------------------------------------------------------------