diff --git a/Lab2/data.json b/Lab2/data.json new file mode 100644 index 0000000..05daa62 --- /dev/null +++ b/Lab2/data.json @@ -0,0 +1,100 @@ +{ + "items": [ + { + "id": 1, + "name": "Сапборд" + }, + { + "id": 2, + "name": "Каяк" + }, + { + "id": 3, + "name": "Матрас" + }, + { + "id": 4, + "name": "Гидрокостюм" + } + ], + "time": [ + { + "id": 1, + "timer": 1 + }, + { + "id": 2, + "timer": 2 + }, + { + "id": 3, + "timer": 3 + }, + { + "id": 4, + "timer": 4 + }, + { + "id": 5, + "timer": 5 + } + ], + "lines": [ + { + "itemsId": "2", + "price": "1000.00", + "time": "1", + "sum": "1000.00", + "image": "", + "id": 1 + }, + { + "itemsId": "1", + "price": "1000.00", + "time": "1", + "sum": "1000.00", + "image": "data:image/png;base64,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", + "id": 2 + }, + { + "itemsId": "1", + "price": "10000.00", + "time": "3", + "sum": "30000.00", + "image": "", + "id": 3 + }, + { + "itemsId": "1", + "price": "19000.00", + "time": "1", + "sum": "19000.00", + "image": "", + "id": 4 + }, + { + "itemsId": "1", + "price": "1000.00", + "time": "2", + "sum": "2000.00", + "image": "", + "id": 5 + }, + { + "itemsId": "1", + "price": "1000.00", + "time": "1", + "sum": "1000.00", + "image": "", + "id": 11 + }, + { + "itemsId": "3", + "price": "1000.00", + "time": "1", + "sum": "1000.00", + "image": "", + "id": 12 + } + ] +} \ No newline at end of file diff --git a/Lab2/fifth.html b/Lab2/fifth.html index 6b488ab..09ffb81 100644 --- a/Lab2/fifth.html +++ b/Lab2/fifth.html @@ -43,7 +43,7 @@
-
+
Войдите в аккаунт или зарегистрируйтесь @@ -173,7 +173,7 @@ Все права защищены и принадлежат ИП Абубакаров Абубакар Абубакарович.
- @@ -194,7 +194,7 @@
diff --git a/Lab2/fourth.html b/Lab2/fourth.html index 5c1a748..6b68b9c 100644 --- a/Lab2/fourth.html +++ b/Lab2/fourth.html @@ -41,33 +41,32 @@ -
-
-
-
-
- Картинка -
-
-
-
-

Объявление

-

С 01.09 по 31.05 - действуют скидки на аренду спортивного инвентаря. Также возможна аренда на длительный срок. Обращайтесь по телефонам в контактах. -

- -
-
-
-
-

*аренда производится только при наличии залогового имущества

- -
-
-
+ + +
+
+ + + + + + + + + + +
ТоварСумма
+ + +
Все права защищены и принадлежат ИП Абубакаров Абубакар Абубакарович.
diff --git a/Lab2/images/banner1.png b/Lab2/images/banner1.png new file mode 100644 index 0000000..21ca2f2 Binary files /dev/null and b/Lab2/images/banner1.png differ diff --git a/Lab2/images/banner2.png b/Lab2/images/banner2.png new file mode 100644 index 0000000..926c52d Binary files /dev/null and b/Lab2/images/banner2.png differ diff --git a/Lab2/images/banner3.png b/Lab2/images/banner3.png new file mode 100644 index 0000000..19050dc Binary files /dev/null and b/Lab2/images/banner3.png differ diff --git a/Lab2/images/logo.png b/Lab2/images/logo.png new file mode 100644 index 0000000..1fb1250 Binary files /dev/null and b/Lab2/images/logo.png differ diff --git a/Lab2/js/banner.js b/Lab2/js/banner.js new file mode 100644 index 0000000..7354a24 --- /dev/null +++ b/Lab2/js/banner.js @@ -0,0 +1,46 @@ +// модуль для смены изображения в баннере по таймеру + +import "../css/banner.css"; + +// указывается блок, в котором будет баннер +// блок должен содержать изображения +function myBanner(root) { + console.info("Loaded"); + + // получение всех изображений внутри баннера + const banners = document.querySelectorAll(`${root} img`); + + // всем изображениям устанавливается класс banner-hide + // если были другие классы, то они будут удалены + for (let i = 0; i < banners.length; i += 1) { + banners[i].setAttribute("class", "banner-hide"); + } + + let old = banners.length - 1; + let current = 0; + + // функция меняет изображения в цикле + // изображение с классом banner-show будет показано + // изображение с классом banner-hide будет скрыто + // функция запускает таймер, который через 5 секунд + // запускает функцию, снова создается таймер и т. д. + function loop() { + banners[current].setAttribute("class", "banner-show"); + banners[old].setAttribute("class", "banner-hide"); + + console.info("Banner changed"); + + old = current; + current += 1; + + if (current === banners.length) { + current = 0; + } + + setTimeout(loop, 5000); + } + + loop(); +} + +export default myBanner; diff --git a/Lab2/js/bebra.js b/Lab2/js/bebra.js new file mode 100644 index 0000000..78389e3 --- /dev/null +++ b/Lab2/js/bebra.js @@ -0,0 +1,32 @@ +const serverUrl = "http://localhost:8081"; + +const lst= document.querySelector("#time"); + +export async function getAllItemTime() { + const response = await fetch(`${serverUrl}/time`); + if (!response.ok) { + throw response.statusText; + } + return response.json(); +} + +function createOption( time){ + const option = document.createElement("option"); + option.textContent = time.timer; +//option.text = name; + //option.selected = isSelected; + lst.appendChild(option); +} + +export default async function fillList(){ + const data = await getAllItemTime(); + lst.innerHTML =""; + // пустое значение + //lst.appendChild(createOption("выберите значение","", true)); + + data.forEach((time)=>{ + // if(time.trim() !== ""){ + createOption(time); + // } + }) +} \ No newline at end of file diff --git a/Lab2/js/lines-modal.js b/Lab2/js/lines-modal.js new file mode 100644 index 0000000..97dde12 --- /dev/null +++ b/Lab2/js/lines-modal.js @@ -0,0 +1,59 @@ +// Модуль для работы с модальным окном + +// импорт компонента Modal из bootstrap +import { Modal } from "bootstrap"; +import { cntrls, imagePlaceholder } from "./lines-ui"; + +// поиск модального окна на странице +const modal = document.getElementById("items-update"); +// если он найден, то создается экземпляр компонента Modal +// для программного управления модальным окном +const myModal = modal ? new Modal(modal, {}) : null; + +// поиск тега с заголовком модального кона для его смены +const modalTitle = document.getElementById("items-update-title"); + +// обнуление значений модального окна, т. к. +// используется одно окно для всех операций +function resetValues() { + cntrls.lineId.value = ""; + cntrls.itemsType.value = ""; + cntrls.price.value = parseFloat(0).toFixed(2); + cntrls.time.value = 1; + cntrls.image.value = ""; + cntrls.imagePreview.src = imagePlaceholder; +} + +// функция для показа модального окна +// перед показом происходит заполнение формы для редактирования +// если объект item не пуст +export function showUpdateModal(item) { + modalTitle.innerHTML = item === null ? "Добавить" : "Изменить"; + console.info(item); + + if (item) { + cntrls.lineId.value = item.id; + cntrls.itemsType.value = item.itemsId; + cntrls.price.value = item.price; + cntrls.time.value = item.time; + // заполнение превью + // Если пользователь выбрал изображение, то оно загружается + // в тэг image с id image - preview + // иначе устанавливается заглушка, адрес которой указан в imagePlaceholder + cntrls.imagePreview.src = item.image ? item.image : imagePlaceholder; + } else { + resetValues(); + } + + myModal.show(); +} + +// функция для скрытия модального окна +export function hideUpdateModal() { + resetValues(); + + // удаление класса was-validated для скрытия результатов валидации + cntrls.form.classList.remove("was-validated"); + + myModal.hide(); +} diff --git a/Lab2/js/lines-rest-api.js b/Lab2/js/lines-rest-api.js new file mode 100644 index 0000000..b79e51e --- /dev/null +++ b/Lab2/js/lines-rest-api.js @@ -0,0 +1,102 @@ +// модуль для работы с REST API сервера + +// адрес сервера +const serverUrl = "http://localhost:8081"; + +// функция возвращает объект нужной структуры для отправки на сервер +function createLineObject(item, price,time, image) { + return { + itemsId: item, + price: parseFloat(price).toFixed(2), + time: time, + sum: parseFloat(price * time).toFixed(2), + image, + }; +} + +// обращение к серверу для получения всех типов товара (get) +export async function getAllItemTypes() { + const response = await fetch(`${serverUrl}/items`); + if (!response.ok) { + throw response.statusText; + } + return response.json(); +} + + + +// обращение к серверу для получения всех записей (get) +export async function getAllLines() { + const response = await fetch(`${serverUrl}/lines?_expand=items`); + if (!response.ok) { + throw response.statusText; + } + return response.json(); +} + +// обращение к серверу для получения записи по первичному ключу (id) (get) +// id передается в качестве части пути URL get-запроса +export async function getLine(id) { + const response = await fetch(`${serverUrl}/lines/${id}?_expand=items`); + if (!response.ok) { + throw response.statusText; + } + return response.json(); +} + +// обращение к серверу для создания записи (post) +// объект отправляется в теле запроса (body) +export async function createLine(item, price,time, image) { + const itemObject = createLineObject(item, price, time, image); + + const options = { + method: "POST", + body: JSON.stringify(itemObject), + headers: { + "Accept": "application/json", + "Content-Type": "application/json", + }, + }; + + const response = await fetch(`${serverUrl}/lines`, options); + if (!response.ok) { + throw response.statusText; + } + return response.json(); +} + +// обращение к серверу для обновления записи по id (put) +// объект отправляется в теле запроса (body) +// id передается в качестве части пути URL get-запроса +export async function updateLine(id, item, price, time, image) { + const itemObject = createLineObject(item, price, time, image); + + const options = { + method: "PUT", + body: JSON.stringify(itemObject), + headers: { + "Accept": "application/json", + "Content-Type": "application/json", + }, + }; + + const response = await fetch(`${serverUrl}/lines/${id}`, options); + if (!response.ok) { + throw response.statusText; + } + return response.json(); +} + +// обращение к серверу для удаления записи по id (delete) +// id передается в качестве части пути URL get-запроса +export async function deleteLine(id) { + const options = { + method: "DELETE", + }; + + const response = await fetch(`${serverUrl}/lines/${id}`, options); + if (!response.ok) { + throw response.statusText; + } + return response.json(); +} diff --git a/Lab2/js/lines-ui.js b/Lab2/js/lines-ui.js new file mode 100644 index 0000000..3c35e1f --- /dev/null +++ b/Lab2/js/lines-ui.js @@ -0,0 +1,108 @@ +// модуль для работы с элементами управления + +// объект для удобного получения элементов +// при обращении к атрибуту объекта вызывается +// нужная функция для поиска элемента +export const cntrls = { + button: document.getElementById("items-add"), + table: document.querySelector("#items-table tbody"), + form: document.getElementById("items-form"), + lineId: document.getElementById("items-line-id"), + itemsType: document.getElementById("item"), + price: document.getElementById("price"), + time: document.getElementById("time"), + image: document.getElementById("image"), + imagePreview: document.getElementById("image-preview"), +}; + +// Дефолтное превью +export const imagePlaceholder = "https://via.placeholder.com/200"; + +// функция создает тег option для select +// +export function createItemsOption(name, value = "", isSelected = false) { + const option = document.createElement("option"); + option.value = value || ""; + option.selected = isSelected; + option.text = name; + return option; +} + +// функция создает ссылку (a) для таблицы +// содержимое тега a заполняется необходимой иконкой (icon) +// при нажатии вызывается callback +// ссылка "оборачивается" тегом td +// +function createTableAnchor(icon, callback) { + const i = document.createElement("i"); + i.classList.add("fa-solid", icon); + + const a = document.createElement("a"); + a.href = "#"; + a.appendChild(i); + a.onclick = (event) => { + // чтобы в URL не добавлялась решетка + event.preventDefault(); + event.stopPropagation(); + callback(); + }; + + const td = document.createElement("td"); + td.appendChild(a); + return td; +} + +// функция создает колонку таблицы с текстом value +// value +function createTableColumn(value) { + const td = document.createElement("td"); + td.textContent = value; + return td; +} + +// функция создает строку таблицы +// +// index + 1 +// item.items.name +// parseFloat(item.price).toFixed(2)) +// item.count +// parseFloat(item.sum).toFixed(2)) +// +// +// +// +export function createTableRow(item, index, editCallback, editPageCallback, deleteCallback) { + const rowNumber = document.createElement("th"); + rowNumber.scope = "row"; + rowNumber.textContent = index + 1; + + const row = document.createElement("tr"); + row.id = `line-${item.id}`; + + row.appendChild(rowNumber); + //row.appendChild(createTableColumn("Сапборд")); + row.appendChild(createTableColumn(item.items.name)); + row.appendChild(createTableColumn(parseFloat(item.price).toFixed(2))); + row.appendChild(createTableColumn(item.time)); + row.appendChild(createTableColumn(parseFloat(item.sum).toFixed(2))); + // редактировать в модальном окне + row.appendChild(createTableAnchor("fa-pencil", editCallback)); + // удаление + row.appendChild(createTableAnchor("fa-trash", deleteCallback)); + return row; +} + +export function createTableRowUser(item, index) { + const rowNumber = document.createElement("th"); + rowNumber.scope = "row"; + rowNumber.textContent = index + 1; + + const row = document.createElement("tr"); + row.id = `line-${item.id}`; + + row.appendChild(rowNumber); + row.appendChild(createTableColumn(item.items.name)); + //row.appendChild(createTableColumn(item.time)); + row.appendChild(createTableColumn(parseFloat(item.sum).toFixed(2))); + return row; +} \ No newline at end of file diff --git a/Lab2/js/lines.js b/Lab2/js/lines.js new file mode 100644 index 0000000..35db04c --- /dev/null +++ b/Lab2/js/lines.js @@ -0,0 +1,210 @@ +// модуль с логикой + +import { hideUpdateModal, showUpdateModal } from "./lines-modal"; +import { + createLine, deleteLine, getAllItemTypes, getAllLines, getLine, updateLine, +} from "./lines-rest-api"; +//import { getAllItemTime } from "./bebra"; +import { + cntrls, createItemsOption, createTableRow, imagePlaceholder, +} from "./lines-ui"; + +async function drawItemsSelect() { + // вызов метода REST API для получения списка типов товаров + const data = await getAllItemTypes(); + // очистка содержимого select + // удаляется все, что находится между тегами + // но не атрибуты + cntrls.itemsType.innerHTML = ""; + // пустое значение + cntrls.itemsType.appendChild(createItemsOption("Выберите значение", "", true)); + // цикл по результату ответа от сервера + // используется лямбда-выражение + // (item) => {} аналогично function(item) {} + data.forEach((item) => { + cntrls.itemsType.appendChild(createItemsOption(item.name, item.id)); + }); +} + +async function drawLinesTable() { + console.info("Try to load data"); + if (!cntrls.table) { + return; + } + // вызов метода REST API для получения всех записей + const data = await getAllLines(); + // очистка содержимого table + // удаляется все, что находится между тегами
+ // но не атрибуты + cntrls.table.innerHTML = ""; + // цикл по результату ответа от сервера + // используется лямбда-выражение + // (item, index) => {} аналогично function(item, index) {} + data.forEach((item, index) => { + cntrls.table.appendChild( + createTableRow( + item, + index, + // функции передаются в качестве параметра + // это очень удобно, так как аргументы функций доступны только + // в данном месте кода и не передаются в сервисные модули + () => showUpdateModal(item), + () => location.assign(`page-edit.html?id=${item.id}`), + () => removeLine(item.id), + ), + ); + }); +} + +async function addLine(item, price, time, image) { + console.info("Try to add item"); + // вызов метода REST API для добавления записи + const data = await createLine(item, price, time, image); + console.info("Added"); + console.info(data); + // загрузка и заполнение table + drawLinesTable(); +} + +async function editLine(id, item, price, time, image) { + console.info("Try to update item"); + // вызов метода REST API для обновления записи + const data = await updateLine(id, item, price, time, image); + console.info("Updated"); + console.info(data); + // загрузка и заполнение table + drawLinesTable(); +} + +async function removeLine(id) { + if (!confirm("Do you really want to remove this item?")) { + console.info("Canceled"); + return; + } + console.info("Try to remove item"); + // вызов метода REST API для удаления записи + const data = await deleteLine(id); + console.info(data); + // загрузка и заполнение table + drawLinesTable(); +} + +// функция для получения содержимого файла в виде base64 строки +// https://ru.wikipedia.org/wiki/Base64 +async function readFile(file) { + const reader = new FileReader(); + + // создание Promise-объекта для использования функции + // с помощью await (асинхронно) без коллбэков (callback) + // https://learn.javascript.ru/promise + return new Promise((resolve, reject) => { + // 2. "Возвращаем" содержимое когда файл прочитан + // через вызов resolve + // Если не использовать Promise, то всю работу по взаимодействию + // с REST API пришлось бы делать в обработчике (callback) функции + // onloadend + reader.onloadend = () => { + const fileContent = reader.result; + // Здесь могла бы быть работа с REST API + // Чтение заканчивает выполняться здесь + resolve(fileContent); + }; + // 3. Возвращаем ошибку + reader.onerror = () => { + // Или здесь в случае ошибки + reject(new Error("oops, something went wrong with the file reader.")); + }; + // Шаг 1. Сначала читаем файл + // Чтение начинает выполняться здесь + reader.readAsDataURL(file); + }); +} + +// функция для обновления блока с превью выбранного изображения +async function updateImagePreview() { + // получение выбранного файла + // возможен выбор нескольких файлов, поэтому необходимо получить только первый + const file = cntrls.image.files[0]; + // чтение содержимого файла в виде base64 строки + const fileContent = await readFile(file); + console.info("base64 ", fileContent); + // обновление атрибута src для тега img с id image-preview + cntrls.imagePreview.src = fileContent; +} + +// Функция для обработки создания и редактирования элементов таблицы через модальное окно +// Если хотите делать через страницу, то удалите эту функцию +export function linesForm() { + console.info("linesForm"); + + // загрузка и заполнение select со списком товаров + drawItemsSelect(); + // загрузка и заполнение table + drawLinesTable(); + + // Вызов функции обновления превью изображения при возникновении + // события oncahnge в тэге input с id image + cntrls.image.addEventListener("change", () => updateImagePreview()); + + // обработчик события нажатия на кнопку для показа модального окна + cntrls.button.addEventListener("click", () => showUpdateModal(null)); + + // обработчик события отправки формы + // возникает при нажатии на кнопку (button) с типом submit + // кнопка должна находится внутри тега form + cntrls.form.addEventListener("submit", async (event) => { + console.info("Form onSubmit"); + // отключение стандартного поведения формы при отправке + // при отправке страница обновляется и JS перестает работать + event.preventDefault(); + event.stopPropagation(); + // если форма не прошла валидацию, то ничего делать не нужно + if (!cntrls.form.checkValidity()) { + return; + } + + let imageBase64 = ""; + // Получение выбранного пользователем изображения в виде base64 строки + // Если пользователь ничего не выбрал, то не нужно сохранять в БД + // дефолтное изображение + if (cntrls.imagePreview.src !== imagePlaceholder) { + // Загрузка содержимого атрибута src тэга img с id image-preview + // Здесь выполняется HTTP запрос с типом GET + const result = await fetch(cntrls.imagePreview.src); + // Получение из HTTP-ответа бинарного содержимого + const blob = await result.blob(); + // Получение base64 строки для файла + // Здесь выполняется Promise из функции readFile + // Promise позволяет писать линейный код для работы с асинхронными методами + // без использования обработчиков (callback) с помощью await + imageBase64 = await readFile(blob); + } + + // получение id строки для редактирования + // это значение содержится в скрытом input + const currentId = cntrls.lineId.value; + // если значение id не задано, + // то необходимо выполнить добавление записи + // иначе обновление записи + if (!currentId) { + await addLine( + cntrls.itemsType.value, + cntrls.price.value, + cntrls.time.value, + imageBase64, + ); + } else { + await editLine( + currentId, + cntrls.itemsType.value, + cntrls.price.value, + cntrls.time.value, + imageBase64, + ); + } + + // после выполнения добавления/обновления модальное окно скрывается + hideUpdateModal(); + }); +} + diff --git a/Lab2/js/linesUsers.js b/Lab2/js/linesUsers.js new file mode 100644 index 0000000..90ef52b --- /dev/null +++ b/Lab2/js/linesUsers.js @@ -0,0 +1,134 @@ +// модуль с логикой +import { hideUpdateModal, showUpdateModal } from "./lines-modal"; +import { + getAllItemTypes, getAllLines, +} from "./lines-rest-api"; +import { + cntrls, createItemsOption, createTableRowUser, +} from "./lines-ui"; + +async function drawItemsSelect() { + // вызов метода REST API для получения списка типов товаров + const data = await getAllItemTypes(); + // очистка содержимого select + // удаляется все, что находится между тегами + // но не атрибуты + cntrls.itemsType.innerHTML = ""; + // пустое значение + cntrls.itemsType.appendChild(createItemsOption("Выберите значение", "", true)); + // цикл по результату ответа от сервера + // используется лямбда-выражение + // (item) => {} аналогично function(item) {} + data.forEach((item) => { + cntrls.itemsType.appendChild(createItemsOption(item.name, item.id)); + }); +} + +async function drawLinesTable() { + console.info("Try to load data"); + if (!cntrls.table) { + return; + } + // вызов метода REST API для получения всех записей + const data = await getAllLines(); + // очистка содержимого table + // удаляется все, что находится между тегами
+ // но не атрибуты + cntrls.table.innerHTML = ""; + // цикл по результату ответа от сервера + // используется лямбда-выражение + // (item, index) => {} аналогично function(item, index) {} + data.forEach((item, index) => { + cntrls.table.appendChild( + createTableRowUser( + item, + index, + ), + ); + }); +} + +// функция для получения содержимого файла в виде base64 строки +// https://ru.wikipedia.org/wiki/Base64 +async function readFile(file) { + const reader = new FileReader(); + + // создание Promise-объекта для использования функции + // с помощью await (асинхронно) без коллбэков (callback) + // https://learn.javascript.ru/promise + return new Promise((resolve, reject) => { + // 2. "Возвращаем" содержимое когда файл прочитан + // через вызов resolve + // Если не использовать Promise, то всю работу по взаимодействию + // с REST API пришлось бы делать в обработчике (callback) функции + // onloadend + reader.onloadend = () => { + const fileContent = reader.result; + // Здесь могла бы быть работа с REST API + // Чтение заканчивает выполняться здесь + resolve(fileContent); + }; + // 3. Возвращаем ошибку + reader.onerror = () => { + // Или здесь в случае ошибки + reject(new Error("oops, something went wrong with the file reader.")); + }; + // Шаг 1. Сначала читаем файл + // Чтение начинает выполняться здесь + reader.readAsDataURL(file); + }); +} + +// функция для обновления блока с превью выбранного изображения +async function updateImagePreview() { + // получение выбранного файла + // возможен выбор нескольких файлов, поэтому необходимо получить только первый + const file = cntrls.image.files[0]; + // чтение содержимого файла в виде base64 строки + const fileContent = await readFile(file); + console.info("base64 ", fileContent); + // обновление атрибута src для тега img с id image-preview + cntrls.imagePreview.src = fileContent; +} + +// Функция для обработки создания и редактирования элементов таблицы через модальное окно +// Если хотите делать через страницу, то удалите эту функцию +// eslint-disable-next-line import/prefer-default-export +export function linesForm() { + console.info("linesForm"); + + // загрузка и заполнение select со списком товаров + drawItemsSelect(); + // загрузка и заполнение table + drawLinesTable(); + + // Вызов функции обновления превью изображения при возникновении + // события oncahnge в тэге input с id image + cntrls.image.addEventListener("change", () => updateImagePreview()); + + // обработчик события нажатия на кнопку для показа модального окна + cntrls.button.addEventListener("click", () => showUpdateModal(null)); + + // обработчик события отправки формы + // возникает при нажатии на кнопку (button) с типом submit + // кнопка должна находится внутри тега form + cntrls.form.addEventListener("submit", async (event) => { + console.info("Form onSubmit"); + // отключение стандартного поведения формы при отправке + // при отправке страница обновляется и JS перестает работать + event.preventDefault(); + event.stopPropagation(); + // если форма не прошла валидацию, то ничего делать не нужно + if (!cntrls.form.checkValidity()) { + return; + } + // получение id строки для редактирования + // это значение содержится в скрытом input + + // если значение id не задано, + // то необходимо выполнить добавление записи + // иначе обновление записи + // после выполнения добавления/обновления модальное окно скрывается + hideUpdateModal(); + }); +} diff --git a/Lab2/js/validation.js b/Lab2/js/validation.js new file mode 100644 index 0000000..e5641b6 --- /dev/null +++ b/Lab2/js/validation.js @@ -0,0 +1,25 @@ +// модуль используется для валидации форма на странице + +function validation() { + // поиск всех форма с классом .needs-validation + const forms = document.querySelectorAll("form.needs-validation"); + + for (let i = 0; i < forms.length; i += 1) { + const form = forms[i]; + // для каждой формы добавляется обработчик события отправки + form.addEventListener("submit", (event) => { + // если форма не прошла валидацию + // то выключить стандартное действие + if (!form.checkValidity()) { + event.preventDefault(); + // предотвращает распространение preventDefault + // на другие объекты + event.stopPropagation(); + } + // добавляет к форме класс was-validated + form.classList.add("was-validated"); + }); + } +} + +export default validation; diff --git a/Lab2/package-lock.json b/Lab2/package-lock.json index 6ec9198..c42d057 100644 --- a/Lab2/package-lock.json +++ b/Lab2/package-lock.json @@ -7,16 +7,30 @@ "": { "name": "int-prog", "version": "1.0.0", + "license": "ISC", "dependencies": { "@fortawesome/fontawesome-free": "6.4.2", "bootstrap": "5.3.2" }, "devDependencies": { + "eslint": "8.50.0", + "eslint-config-airbnb-base": "15.0.0", + "eslint-plugin-import": "2.28.1", "http-server": "14.1.1", + "json-server": "^0.17.4", "npm-run-all": "4.1.5", "vite": "4.4.9" } }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", @@ -369,6 +383,85 @@ "node": ">=12" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/eslintrc/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@eslint/js": { + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", + "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/@fortawesome/fontawesome-free": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.2.tgz", @@ -378,6 +471,97 @@ "node": ">=6" } }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -388,6 +572,71 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -403,6 +652,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/array-buffer-byte-length": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", @@ -416,6 +671,86 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", @@ -476,6 +811,72 @@ "node": ">= 0.8" } }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/bootstrap": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.2.tgz", @@ -504,6 +905,15 @@ "concat-map": "0.0.1" } }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -517,6 +927,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -533,6 +952,20 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -551,12 +984,150 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "node_modules/connect-pause": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/connect-pause/-/connect-pause-0.1.1.tgz", + "integrity": "sha512-a1gSWQBQD73krFXdUEYJom2RTFrWUL3YvXDCRkyv//GVXc79cdW9MngtRuN9ih4FDKBtfJAJId+BbDuX+1rh2w==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/corser": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", @@ -591,6 +1162,12 @@ "ms": "^2.1.1" } }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, "node_modules/define-data-property": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", @@ -622,6 +1199,58 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -631,6 +1260,19 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/errorhandler": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", + "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==", + "dev": true, + "dependencies": { + "accepts": "~1.3.7", + "escape-html": "~1.0.3" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/es-abstract": { "version": "1.22.2", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", @@ -698,6 +1340,15 @@ "node": ">= 0.4" } }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -752,6 +1403,21 @@ "@esbuild/win32-x64": "0.18.20" } }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -761,12 +1427,640 @@ "node": ">=0.8.0" } }, + "node_modules/eslint": { + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", + "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.50.0", + "@humanwhocodes/config-array": "^0.11.11", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb-base/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.8.0", + "has": "^1.0.3", + "is-core-module": "^2.13.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", + "object.values": "^1.1.6", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/eslint/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-urlrewrite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/express-urlrewrite/-/express-urlrewrite-1.4.0.tgz", + "integrity": "sha512-PI5h8JuzoweS26vFizwQl6UTF25CAHSggNv0J25Dn/IKZscJHWZzPrI5z2Y2jgOzIaw2qh8l6+/jUcig23Z2SA==", + "dev": true, + "dependencies": { + "debug": "*", + "path-to-regexp": "^1.0.3" + } + }, + "node_modules/express-urlrewrite/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/express-urlrewrite/node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, "node_modules/follow-redirects": { "version": "1.15.3", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", @@ -796,6 +2090,30 @@ "is-callable": "^1.1.3" } }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -811,10 +2129,13 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { "version": "1.1.6", @@ -843,6 +2164,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, "node_modules/get-intrinsic": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", @@ -874,6 +2204,53 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/globalthis": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", @@ -907,6 +2284,12 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -988,6 +2371,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -1015,6 +2410,22 @@ "node": ">=12" } }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", @@ -1068,6 +2479,56 @@ "node": ">=0.10.0" } }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, "node_modules/internal-slot": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", @@ -1082,6 +2543,15 @@ "node": ">= 0.4" } }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/is-array-buffer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", @@ -1169,6 +2639,36 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -1196,6 +2696,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -1293,12 +2808,124 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, + "node_modules/json-parse-helpfulerror": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", + "integrity": "sha512-XgP0FGR77+QhUxjXkwOMkC94k3WtqEBfcnjWqhRd82qTat4SWKRE+9kUnynz/shm3I4ea2+qISvTIeGTNU7kJg==", + "dev": true, + "dependencies": { + "jju": "^1.1.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-server": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/json-server/-/json-server-0.17.4.tgz", + "integrity": "sha512-bGBb0WtFuAKbgI7JV3A864irWnMZSvBYRJbohaOuatHwKSRFUfqtQlrYMrB6WbalXy/cJabyjlb7JkHli6dYjQ==", + "dev": true, + "dependencies": { + "body-parser": "^1.19.0", + "chalk": "^4.1.2", + "compression": "^1.7.4", + "connect-pause": "^0.1.1", + "cors": "^2.8.5", + "errorhandler": "^1.5.1", + "express": "^4.17.1", + "express-urlrewrite": "^1.4.0", + "json-parse-helpfulerror": "^1.0.3", + "lodash": "^4.17.21", + "lodash-id": "^0.14.1", + "lowdb": "^1.0.0", + "method-override": "^3.0.0", + "morgan": "^1.10.0", + "nanoid": "^3.1.23", + "please-upgrade-node": "^3.2.0", + "pluralize": "^8.0.0", + "server-destroy": "^1.0.1", + "yargs": "^17.0.1" + }, + "bin": { + "json-server": "lib/cli/bin.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -1314,12 +2941,67 @@ "node": ">=4" } }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "node_modules/lodash-id": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/lodash-id/-/lodash-id-0.14.1.tgz", + "integrity": "sha512-ikQPBTiq/d5m6dfKQlFdIXFzvThPi2Be9/AHxktOnDSfSxE1j9ICbBT5Elk1ke7HSTgM38LHTpmJovo9/klnLg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lowdb": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz", + "integrity": "sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.3", + "is-promise": "^2.1.0", + "lodash": "4", + "pify": "^3.0.0", + "steno": "^0.4.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -1329,6 +3011,51 @@ "node": ">= 0.10.0" } }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/method-override": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/method-override/-/method-override-3.0.0.tgz", + "integrity": "sha512-IJ2NNN/mSl9w3kzWB92rcdHpz+HjkxhDJWNDBqSlas+zQdP8wBiJzITPg08M/k2uVvMow7Sk41atndNtt/PHSA==", + "dev": true, + "dependencies": { + "debug": "3.1.0", + "methods": "~1.1.2", + "parseurl": "~1.3.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/method-override/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/method-override/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -1341,6 +3068,27 @@ "node": ">=4" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -1374,6 +3122,49 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dev": true, + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/morgan/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/morgan/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -1398,6 +3189,21 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -1503,6 +3309,15 @@ "node": ">=4" } }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -1539,6 +3354,96 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", @@ -1548,6 +3453,65 @@ "opener": "bin/opener-bin.js" } }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -1561,6 +3525,33 @@ "node": ">=4" } }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", @@ -1576,6 +3567,12 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, "node_modules/path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", @@ -1615,6 +3612,24 @@ "node": ">=4" } }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "dependencies": { + "semver-compare": "^1.0.0" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/portfinder": { "version": "1.0.32", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", @@ -1657,6 +3672,37 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/qs": { "version": "6.11.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", @@ -1672,6 +3718,62 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -1703,6 +3805,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -1726,6 +3837,40 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/rollup": { "version": "3.29.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", @@ -1742,6 +3887,29 @@ "fsevents": "~2.3.2" } }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/safe-array-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", @@ -1801,6 +3969,72 @@ "semver": "bin/semver" } }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", + "dev": true + }, "node_modules/set-function-name": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", @@ -1815,6 +4049,12 @@ "node": ">= 0.4" } }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, "node_modules/shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -1900,6 +4140,38 @@ "integrity": "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==", "dev": true }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/steno": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz", + "integrity": "sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.3" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.padend": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz", @@ -1962,6 +4234,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -1971,6 +4255,18 @@ "node": ">=4" } }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -1995,6 +4291,70 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/typed-array-buffer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", @@ -2087,12 +4447,39 @@ "node": ">= 0.8.0" } }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, "node_modules/url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", "dev": true }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -2103,6 +4490,15 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/vite": { "version": "4.4.9", "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz", @@ -2216,6 +4612,77 @@ "funding": { "url": "https://github.com/sponsors/ljharb" } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/Lab2/package.json b/Lab2/package.json index aa85055..0fb73a4 100644 --- a/Lab2/package.json +++ b/Lab2/package.json @@ -3,19 +3,25 @@ "version": "1.0.0", "type": "module", "scripts": { - "start": "vite", + "vite": "vite", "serve": "http-server -p 3000 ./dist/", "build": "vite build", - "prod": "npm-run-all build serve" + "rest": "json-server --watch data.json -p 8081", + "dev": "npm-run-all --parallel rest vite", + "prod": "npm-run-all build --parallel serve rest" }, "dependencies": { - "bootstrap": "5.3.2", - "@fortawesome/fontawesome-free": "6.4.2" + "@fortawesome/fontawesome-free": "6.4.2", + "bootstrap": "5.3.2" }, "devDependencies": { + "eslint": "8.50.0", + "eslint-config-airbnb-base": "15.0.0", + "eslint-plugin-import": "2.28.1", "http-server": "14.1.1", - "vite": "4.4.9", - "npm-run-all": "4.1.5" + "json-server": "^0.17.4", + "npm-run-all": "4.1.5", + "vite": "4.4.9" }, "main": "index.js", "author": "", diff --git a/Lab2/page-edit.html b/Lab2/page-edit.html new file mode 100644 index 0000000..de50cad --- /dev/null +++ b/Lab2/page-edit.html @@ -0,0 +1,87 @@ + + + + + Моя страница + + + + + + + + +
+ +
+
+
+ placeholder +
+
+
+ + +
+
+ + +
+
+ + + +
+
+ + +
+ Назад + +
+
+
+ Все права защищены и принадлежат ИП Абубакаров Абубакар Абубакарович. +
+ + + + \ No newline at end of file diff --git a/Lab2/page4.html b/Lab2/page4.html new file mode 100644 index 0000000..793cdd6 --- /dev/null +++ b/Lab2/page4.html @@ -0,0 +1,122 @@ + + + + + Моя страница + + + + + + + + +
+ +
+
+
+ +
+
+ + + + + + + + + + + + + +
ТоварЦенаВремяСумма
+
+
+
+ Все права защищены и принадлежат ИП Абубакаров Абубакар Абубакарович. +
+ + + + + + \ No newline at end of file diff --git a/Lab2/second.html b/Lab2/second.html index 2087947..8801f83 100644 --- a/Lab2/second.html +++ b/Lab2/second.html @@ -21,7 +21,7 @@ aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation" style ="background-color: white"> - diff --git a/Lab2/styles/style.css b/Lab2/styles/style.css index b4ba265..3051406 100644 --- a/Lab2/styles/style.css +++ b/Lab2/styles/style.css @@ -8,27 +8,18 @@ header nav { height: 64px; color: #ffffff; - - + background-color: #302b2b; /* Цвет фона шапки */ } } - header .navbar-brand { - color: #ffffff; /* Белый цвет текста логотипа */ - } - - .navbar-dark .navbar-toggler-icon { - background-image: url("data:image/svg+xml;.."); - } - header .navbar-nav .nav-link { color: #ffffff; /* Белый цвет текста навигационных ссылок */ } header .navbar-nav .nav-link:hover { text-decoration: none; - background-color: #7256ae; /* Фон ссылок при наведении */ - color: #ffffff; /* Цвет текста ссылок при наведении */ + background-color: yellow; /* Фон ссылок при наведении */ + color: #302b2b; /* Цвет текста ссылок при наведении */ } /* Стиль для футера */ @@ -61,4 +52,11 @@ pr{ font-size: 20px; } - \ No newline at end of file + + #image-preview { + + object-fit: cover; + width: 200px; + height: 200px; + + } \ No newline at end of file diff --git a/Lab3.zip b/Lab3.zip new file mode 100644 index 0000000..98a8943 Binary files /dev/null and b/Lab3.zip differ diff --git a/Lab3/.vscode/launch.json b/Lab3/.vscode/launch.json new file mode 100644 index 0000000..2ba986f --- /dev/null +++ b/Lab3/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "chrome", + "request": "launch", + "name": "Launch Chrome against localhost", + "url": "http://localhost:8080", + "webRoot": "${workspaceFolder}" + } + ] +} \ No newline at end of file diff --git a/Lab3/data.json b/Lab3/data.json new file mode 100644 index 0000000..05daa62 --- /dev/null +++ b/Lab3/data.json @@ -0,0 +1,100 @@ +{ + "items": [ + { + "id": 1, + "name": "Сапборд" + }, + { + "id": 2, + "name": "Каяк" + }, + { + "id": 3, + "name": "Матрас" + }, + { + "id": 4, + "name": "Гидрокостюм" + } + ], + "time": [ + { + "id": 1, + "timer": 1 + }, + { + "id": 2, + "timer": 2 + }, + { + "id": 3, + "timer": 3 + }, + { + "id": 4, + "timer": 4 + }, + { + "id": 5, + "timer": 5 + } + ], + "lines": [ + { + "itemsId": "2", + "price": "1000.00", + "time": "1", + "sum": "1000.00", + "image": "", + "id": 1 + }, + { + "itemsId": "1", + "price": "1000.00", + "time": "1", + "sum": "1000.00", + "image": "data:image/png;base64,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", + "id": 2 + }, + { + "itemsId": "1", + "price": "10000.00", + "time": "3", + "sum": "30000.00", + "image": "", + "id": 3 + }, + { + "itemsId": "1", + "price": "19000.00", + "time": "1", + "sum": "19000.00", + "image": "", + "id": 4 + }, + { + "itemsId": "1", + "price": "1000.00", + "time": "2", + "sum": "2000.00", + "image": "", + "id": 5 + }, + { + "itemsId": "1", + "price": "1000.00", + "time": "1", + "sum": "1000.00", + "image": "", + "id": 11 + }, + { + "itemsId": "3", + "price": "1000.00", + "time": "1", + "sum": "1000.00", + "image": "", + "id": 12 + } + ] +} \ No newline at end of file diff --git a/Lab3/fifth.html b/Lab3/fifth.html new file mode 100644 index 0000000..09ffb81 --- /dev/null +++ b/Lab3/fifth.html @@ -0,0 +1,205 @@ + + + + + Моя страница + + + + + + + +
+ +
+
+ +
+ +
+ +
+ +
+
Михаил
+
Чуть не утонул, а инструктор Игорь стоял на берегу и смеялся над тем как я барахтаюсь. А так всё отлично. 4 звезды за поведение Игоря!
+
+
+
Леша
+
ничего интересного
+
+
+
Елена
+
Катались с мужем на сапах. Нам попался чудесный инструктор Игорь. В меру наплавались, обязательно вернемся!
+
+
+
Игорь
+
Работаю инструктором. Недавно к нам заходила женщина Елена с мужем в сильном алкогольном опьянении... Не понравилось!
+
+
+
Женя
+
Когда я просил инструктора Игоря научить меня уверенно держаться на воде, я не имел ввиду дергать меня за ноги, пока я буду плавать!
+
+
+
Михаил
+
Чуть не утонул, а инструктор Игорь стоял на берегу и смеялся над тем как я барахтаюсь. А так всё отлично. 4 звезды за поведение Игоря!
+
+
+
Михаил
+
Чуть не утонул, а инструктор Игорь стоял на берегу и смеялся над тем как я барахтаюсь. А так всё отлично. 4 звезды за поведение Игоря!
+
+
+
+
+ + + + + + +
+
+
+ Все права защищены и принадлежат ИП Абубакаров Абубакар Абубакарович. +
+ + + + +
+ + diff --git a/Lab3/fourth.html b/Lab3/fourth.html new file mode 100644 index 0000000..6b68b9c --- /dev/null +++ b/Lab3/fourth.html @@ -0,0 +1,74 @@ + + + + + Моя страница + + + + + + + +
+ +
+ + + +
+
+ + + + + + + + + + +
ТоварСумма
+
+
+ + + + +
+ Все права защищены и принадлежат ИП Абубакаров Абубакар Абубакарович. +
+ + \ No newline at end of file diff --git a/Lab3/images/banner1.png b/Lab3/images/banner1.png new file mode 100644 index 0000000..21ca2f2 Binary files /dev/null and b/Lab3/images/banner1.png differ diff --git a/Lab3/images/banner2.png b/Lab3/images/banner2.png new file mode 100644 index 0000000..926c52d Binary files /dev/null and b/Lab3/images/banner2.png differ diff --git a/Lab3/images/banner3.png b/Lab3/images/banner3.png new file mode 100644 index 0000000..19050dc Binary files /dev/null and b/Lab3/images/banner3.png differ diff --git a/Lab3/images/logo.png b/Lab3/images/logo.png new file mode 100644 index 0000000..1fb1250 Binary files /dev/null and b/Lab3/images/logo.png differ diff --git a/Lab3/img/cvk.jpg b/Lab3/img/cvk.jpg new file mode 100644 index 0000000..5ddae5b Binary files /dev/null and b/Lab3/img/cvk.jpg differ diff --git a/Lab3/img/gorilla.png b/Lab3/img/gorilla.png new file mode 100644 index 0000000..ab54499 Binary files /dev/null and b/Lab3/img/gorilla.png differ diff --git a/Lab3/img/image1.jpg b/Lab3/img/image1.jpg new file mode 100644 index 0000000..0ea9823 Binary files /dev/null and b/Lab3/img/image1.jpg differ diff --git a/Lab3/img/image2.jpg b/Lab3/img/image2.jpg new file mode 100644 index 0000000..5327981 Binary files /dev/null and b/Lab3/img/image2.jpg differ diff --git a/Lab3/img/image3.jpg b/Lab3/img/image3.jpg new file mode 100644 index 0000000..0a894b1 Binary files /dev/null and b/Lab3/img/image3.jpg differ diff --git a/Lab3/img/image4.jpg b/Lab3/img/image4.jpg new file mode 100644 index 0000000..d03657d Binary files /dev/null and b/Lab3/img/image4.jpg differ diff --git a/Lab3/img/image5.jpg b/Lab3/img/image5.jpg new file mode 100644 index 0000000..646bd3d Binary files /dev/null and b/Lab3/img/image5.jpg differ diff --git a/Lab3/img/instagram.png b/Lab3/img/instagram.png new file mode 100644 index 0000000..a61cbb6 Binary files /dev/null and b/Lab3/img/instagram.png differ diff --git a/Lab3/img/logo_header.png b/Lab3/img/logo_header.png new file mode 100644 index 0000000..df2da86 Binary files /dev/null and b/Lab3/img/logo_header.png differ diff --git a/Lab3/img/price.png b/Lab3/img/price.png new file mode 100644 index 0000000..729da84 Binary files /dev/null and b/Lab3/img/price.png differ diff --git a/Lab3/img/user.png b/Lab3/img/user.png new file mode 100644 index 0000000..4982181 Binary files /dev/null and b/Lab3/img/user.png differ diff --git a/Lab3/img/vk.png b/Lab3/img/vk.png new file mode 100644 index 0000000..fa9d5af Binary files /dev/null and b/Lab3/img/vk.png differ diff --git a/Lab3/index.html b/Lab3/index.html new file mode 100644 index 0000000..b2e5ffa --- /dev/null +++ b/Lab3/index.html @@ -0,0 +1,79 @@ + + + + + Моя страница + + + + + + + +
+ +
+ +
+
+
+
+
+ Картинка + +
+
+
+
+ +

Общая информация

+

Мы - сервис проката спортивного оборудования WhatSUP. Мы специализируемся на активном отдыхе. В нашем арсенале есть каяки, байдарки, надувные матрасы и конечно же сапборды! В нашем коллективе работают опытные инструкторы, которые научат вас уверенно держаться на воде и получать от этого удовольствие! +

+

+ Ищите нас на пляжах вашего города, +

+

+ Искренне Ваша, +

+

+ Команда WhatSUP ! + + +

+
+ +
+
+
+
+ Все права защищены и принадлежат ИП Абубакаров Абубакар Абубакарович. +
+ + \ No newline at end of file diff --git a/Lab3/js/banner.js b/Lab3/js/banner.js new file mode 100644 index 0000000..7354a24 --- /dev/null +++ b/Lab3/js/banner.js @@ -0,0 +1,46 @@ +// модуль для смены изображения в баннере по таймеру + +import "../css/banner.css"; + +// указывается блок, в котором будет баннер +// блок должен содержать изображения +function myBanner(root) { + console.info("Loaded"); + + // получение всех изображений внутри баннера + const banners = document.querySelectorAll(`${root} img`); + + // всем изображениям устанавливается класс banner-hide + // если были другие классы, то они будут удалены + for (let i = 0; i < banners.length; i += 1) { + banners[i].setAttribute("class", "banner-hide"); + } + + let old = banners.length - 1; + let current = 0; + + // функция меняет изображения в цикле + // изображение с классом banner-show будет показано + // изображение с классом banner-hide будет скрыто + // функция запускает таймер, который через 5 секунд + // запускает функцию, снова создается таймер и т. д. + function loop() { + banners[current].setAttribute("class", "banner-show"); + banners[old].setAttribute("class", "banner-hide"); + + console.info("Banner changed"); + + old = current; + current += 1; + + if (current === banners.length) { + current = 0; + } + + setTimeout(loop, 5000); + } + + loop(); +} + +export default myBanner; diff --git a/Lab3/js/bebra.js b/Lab3/js/bebra.js new file mode 100644 index 0000000..9dde0c0 --- /dev/null +++ b/Lab3/js/bebra.js @@ -0,0 +1,28 @@ +const serverUrl = "http://localhost:8081"; + +const lst= document.querySelector("#time"); + +export async function getAllItemTime() { + const response = await fetch(`${serverUrl}/time`); + if (!response.ok) { + throw response.statusText; + } + return response.json(); +} + +function createOption( time){ + const option = document.createElement("option"); + option.textContent = time.timer; +//option.text = name; + //option.selected = isSelected; + lst.appendChild(option); +} + +export default async function fillList(){ + const data = await getAllItemTime(); + lst.innerHTML =""; + // пустое значение + //lst.appendChild(createOption("выберите значение","", true)); + + data.forEach((time)=>{createOption(time)}); +} \ No newline at end of file diff --git a/Lab3/js/lines-modal.js b/Lab3/js/lines-modal.js new file mode 100644 index 0000000..97dde12 --- /dev/null +++ b/Lab3/js/lines-modal.js @@ -0,0 +1,59 @@ +// Модуль для работы с модальным окном + +// импорт компонента Modal из bootstrap +import { Modal } from "bootstrap"; +import { cntrls, imagePlaceholder } from "./lines-ui"; + +// поиск модального окна на странице +const modal = document.getElementById("items-update"); +// если он найден, то создается экземпляр компонента Modal +// для программного управления модальным окном +const myModal = modal ? new Modal(modal, {}) : null; + +// поиск тега с заголовком модального кона для его смены +const modalTitle = document.getElementById("items-update-title"); + +// обнуление значений модального окна, т. к. +// используется одно окно для всех операций +function resetValues() { + cntrls.lineId.value = ""; + cntrls.itemsType.value = ""; + cntrls.price.value = parseFloat(0).toFixed(2); + cntrls.time.value = 1; + cntrls.image.value = ""; + cntrls.imagePreview.src = imagePlaceholder; +} + +// функция для показа модального окна +// перед показом происходит заполнение формы для редактирования +// если объект item не пуст +export function showUpdateModal(item) { + modalTitle.innerHTML = item === null ? "Добавить" : "Изменить"; + console.info(item); + + if (item) { + cntrls.lineId.value = item.id; + cntrls.itemsType.value = item.itemsId; + cntrls.price.value = item.price; + cntrls.time.value = item.time; + // заполнение превью + // Если пользователь выбрал изображение, то оно загружается + // в тэг image с id image - preview + // иначе устанавливается заглушка, адрес которой указан в imagePlaceholder + cntrls.imagePreview.src = item.image ? item.image : imagePlaceholder; + } else { + resetValues(); + } + + myModal.show(); +} + +// функция для скрытия модального окна +export function hideUpdateModal() { + resetValues(); + + // удаление класса was-validated для скрытия результатов валидации + cntrls.form.classList.remove("was-validated"); + + myModal.hide(); +} diff --git a/Lab3/js/lines-rest-api.js b/Lab3/js/lines-rest-api.js new file mode 100644 index 0000000..b79e51e --- /dev/null +++ b/Lab3/js/lines-rest-api.js @@ -0,0 +1,102 @@ +// модуль для работы с REST API сервера + +// адрес сервера +const serverUrl = "http://localhost:8081"; + +// функция возвращает объект нужной структуры для отправки на сервер +function createLineObject(item, price,time, image) { + return { + itemsId: item, + price: parseFloat(price).toFixed(2), + time: time, + sum: parseFloat(price * time).toFixed(2), + image, + }; +} + +// обращение к серверу для получения всех типов товара (get) +export async function getAllItemTypes() { + const response = await fetch(`${serverUrl}/items`); + if (!response.ok) { + throw response.statusText; + } + return response.json(); +} + + + +// обращение к серверу для получения всех записей (get) +export async function getAllLines() { + const response = await fetch(`${serverUrl}/lines?_expand=items`); + if (!response.ok) { + throw response.statusText; + } + return response.json(); +} + +// обращение к серверу для получения записи по первичному ключу (id) (get) +// id передается в качестве части пути URL get-запроса +export async function getLine(id) { + const response = await fetch(`${serverUrl}/lines/${id}?_expand=items`); + if (!response.ok) { + throw response.statusText; + } + return response.json(); +} + +// обращение к серверу для создания записи (post) +// объект отправляется в теле запроса (body) +export async function createLine(item, price,time, image) { + const itemObject = createLineObject(item, price, time, image); + + const options = { + method: "POST", + body: JSON.stringify(itemObject), + headers: { + "Accept": "application/json", + "Content-Type": "application/json", + }, + }; + + const response = await fetch(`${serverUrl}/lines`, options); + if (!response.ok) { + throw response.statusText; + } + return response.json(); +} + +// обращение к серверу для обновления записи по id (put) +// объект отправляется в теле запроса (body) +// id передается в качестве части пути URL get-запроса +export async function updateLine(id, item, price, time, image) { + const itemObject = createLineObject(item, price, time, image); + + const options = { + method: "PUT", + body: JSON.stringify(itemObject), + headers: { + "Accept": "application/json", + "Content-Type": "application/json", + }, + }; + + const response = await fetch(`${serverUrl}/lines/${id}`, options); + if (!response.ok) { + throw response.statusText; + } + return response.json(); +} + +// обращение к серверу для удаления записи по id (delete) +// id передается в качестве части пути URL get-запроса +export async function deleteLine(id) { + const options = { + method: "DELETE", + }; + + const response = await fetch(`${serverUrl}/lines/${id}`, options); + if (!response.ok) { + throw response.statusText; + } + return response.json(); +} diff --git a/Lab3/js/lines-ui.js b/Lab3/js/lines-ui.js new file mode 100644 index 0000000..3c35e1f --- /dev/null +++ b/Lab3/js/lines-ui.js @@ -0,0 +1,108 @@ +// модуль для работы с элементами управления + +// объект для удобного получения элементов +// при обращении к атрибуту объекта вызывается +// нужная функция для поиска элемента +export const cntrls = { + button: document.getElementById("items-add"), + table: document.querySelector("#items-table tbody"), + form: document.getElementById("items-form"), + lineId: document.getElementById("items-line-id"), + itemsType: document.getElementById("item"), + price: document.getElementById("price"), + time: document.getElementById("time"), + image: document.getElementById("image"), + imagePreview: document.getElementById("image-preview"), +}; + +// Дефолтное превью +export const imagePlaceholder = "https://via.placeholder.com/200"; + +// функция создает тег option для select +// +export function createItemsOption(name, value = "", isSelected = false) { + const option = document.createElement("option"); + option.value = value || ""; + option.selected = isSelected; + option.text = name; + return option; +} + +// функция создает ссылку (a) для таблицы +// содержимое тега a заполняется необходимой иконкой (icon) +// при нажатии вызывается callback +// ссылка "оборачивается" тегом td +// +function createTableAnchor(icon, callback) { + const i = document.createElement("i"); + i.classList.add("fa-solid", icon); + + const a = document.createElement("a"); + a.href = "#"; + a.appendChild(i); + a.onclick = (event) => { + // чтобы в URL не добавлялась решетка + event.preventDefault(); + event.stopPropagation(); + callback(); + }; + + const td = document.createElement("td"); + td.appendChild(a); + return td; +} + +// функция создает колонку таблицы с текстом value +// value +function createTableColumn(value) { + const td = document.createElement("td"); + td.textContent = value; + return td; +} + +// функция создает строку таблицы +// +// index + 1 +// item.items.name +// parseFloat(item.price).toFixed(2)) +// item.count +// parseFloat(item.sum).toFixed(2)) +// +// +// +// +export function createTableRow(item, index, editCallback, editPageCallback, deleteCallback) { + const rowNumber = document.createElement("th"); + rowNumber.scope = "row"; + rowNumber.textContent = index + 1; + + const row = document.createElement("tr"); + row.id = `line-${item.id}`; + + row.appendChild(rowNumber); + //row.appendChild(createTableColumn("Сапборд")); + row.appendChild(createTableColumn(item.items.name)); + row.appendChild(createTableColumn(parseFloat(item.price).toFixed(2))); + row.appendChild(createTableColumn(item.time)); + row.appendChild(createTableColumn(parseFloat(item.sum).toFixed(2))); + // редактировать в модальном окне + row.appendChild(createTableAnchor("fa-pencil", editCallback)); + // удаление + row.appendChild(createTableAnchor("fa-trash", deleteCallback)); + return row; +} + +export function createTableRowUser(item, index) { + const rowNumber = document.createElement("th"); + rowNumber.scope = "row"; + rowNumber.textContent = index + 1; + + const row = document.createElement("tr"); + row.id = `line-${item.id}`; + + row.appendChild(rowNumber); + row.appendChild(createTableColumn(item.items.name)); + //row.appendChild(createTableColumn(item.time)); + row.appendChild(createTableColumn(parseFloat(item.sum).toFixed(2))); + return row; +} \ No newline at end of file diff --git a/Lab3/js/lines.js b/Lab3/js/lines.js new file mode 100644 index 0000000..35db04c --- /dev/null +++ b/Lab3/js/lines.js @@ -0,0 +1,210 @@ +// модуль с логикой + +import { hideUpdateModal, showUpdateModal } from "./lines-modal"; +import { + createLine, deleteLine, getAllItemTypes, getAllLines, getLine, updateLine, +} from "./lines-rest-api"; +//import { getAllItemTime } from "./bebra"; +import { + cntrls, createItemsOption, createTableRow, imagePlaceholder, +} from "./lines-ui"; + +async function drawItemsSelect() { + // вызов метода REST API для получения списка типов товаров + const data = await getAllItemTypes(); + // очистка содержимого select + // удаляется все, что находится между тегами + // но не атрибуты + cntrls.itemsType.innerHTML = ""; + // пустое значение + cntrls.itemsType.appendChild(createItemsOption("Выберите значение", "", true)); + // цикл по результату ответа от сервера + // используется лямбда-выражение + // (item) => {} аналогично function(item) {} + data.forEach((item) => { + cntrls.itemsType.appendChild(createItemsOption(item.name, item.id)); + }); +} + +async function drawLinesTable() { + console.info("Try to load data"); + if (!cntrls.table) { + return; + } + // вызов метода REST API для получения всех записей + const data = await getAllLines(); + // очистка содержимого table + // удаляется все, что находится между тегами
+ // но не атрибуты + cntrls.table.innerHTML = ""; + // цикл по результату ответа от сервера + // используется лямбда-выражение + // (item, index) => {} аналогично function(item, index) {} + data.forEach((item, index) => { + cntrls.table.appendChild( + createTableRow( + item, + index, + // функции передаются в качестве параметра + // это очень удобно, так как аргументы функций доступны только + // в данном месте кода и не передаются в сервисные модули + () => showUpdateModal(item), + () => location.assign(`page-edit.html?id=${item.id}`), + () => removeLine(item.id), + ), + ); + }); +} + +async function addLine(item, price, time, image) { + console.info("Try to add item"); + // вызов метода REST API для добавления записи + const data = await createLine(item, price, time, image); + console.info("Added"); + console.info(data); + // загрузка и заполнение table + drawLinesTable(); +} + +async function editLine(id, item, price, time, image) { + console.info("Try to update item"); + // вызов метода REST API для обновления записи + const data = await updateLine(id, item, price, time, image); + console.info("Updated"); + console.info(data); + // загрузка и заполнение table + drawLinesTable(); +} + +async function removeLine(id) { + if (!confirm("Do you really want to remove this item?")) { + console.info("Canceled"); + return; + } + console.info("Try to remove item"); + // вызов метода REST API для удаления записи + const data = await deleteLine(id); + console.info(data); + // загрузка и заполнение table + drawLinesTable(); +} + +// функция для получения содержимого файла в виде base64 строки +// https://ru.wikipedia.org/wiki/Base64 +async function readFile(file) { + const reader = new FileReader(); + + // создание Promise-объекта для использования функции + // с помощью await (асинхронно) без коллбэков (callback) + // https://learn.javascript.ru/promise + return new Promise((resolve, reject) => { + // 2. "Возвращаем" содержимое когда файл прочитан + // через вызов resolve + // Если не использовать Promise, то всю работу по взаимодействию + // с REST API пришлось бы делать в обработчике (callback) функции + // onloadend + reader.onloadend = () => { + const fileContent = reader.result; + // Здесь могла бы быть работа с REST API + // Чтение заканчивает выполняться здесь + resolve(fileContent); + }; + // 3. Возвращаем ошибку + reader.onerror = () => { + // Или здесь в случае ошибки + reject(new Error("oops, something went wrong with the file reader.")); + }; + // Шаг 1. Сначала читаем файл + // Чтение начинает выполняться здесь + reader.readAsDataURL(file); + }); +} + +// функция для обновления блока с превью выбранного изображения +async function updateImagePreview() { + // получение выбранного файла + // возможен выбор нескольких файлов, поэтому необходимо получить только первый + const file = cntrls.image.files[0]; + // чтение содержимого файла в виде base64 строки + const fileContent = await readFile(file); + console.info("base64 ", fileContent); + // обновление атрибута src для тега img с id image-preview + cntrls.imagePreview.src = fileContent; +} + +// Функция для обработки создания и редактирования элементов таблицы через модальное окно +// Если хотите делать через страницу, то удалите эту функцию +export function linesForm() { + console.info("linesForm"); + + // загрузка и заполнение select со списком товаров + drawItemsSelect(); + // загрузка и заполнение table + drawLinesTable(); + + // Вызов функции обновления превью изображения при возникновении + // события oncahnge в тэге input с id image + cntrls.image.addEventListener("change", () => updateImagePreview()); + + // обработчик события нажатия на кнопку для показа модального окна + cntrls.button.addEventListener("click", () => showUpdateModal(null)); + + // обработчик события отправки формы + // возникает при нажатии на кнопку (button) с типом submit + // кнопка должна находится внутри тега form + cntrls.form.addEventListener("submit", async (event) => { + console.info("Form onSubmit"); + // отключение стандартного поведения формы при отправке + // при отправке страница обновляется и JS перестает работать + event.preventDefault(); + event.stopPropagation(); + // если форма не прошла валидацию, то ничего делать не нужно + if (!cntrls.form.checkValidity()) { + return; + } + + let imageBase64 = ""; + // Получение выбранного пользователем изображения в виде base64 строки + // Если пользователь ничего не выбрал, то не нужно сохранять в БД + // дефолтное изображение + if (cntrls.imagePreview.src !== imagePlaceholder) { + // Загрузка содержимого атрибута src тэга img с id image-preview + // Здесь выполняется HTTP запрос с типом GET + const result = await fetch(cntrls.imagePreview.src); + // Получение из HTTP-ответа бинарного содержимого + const blob = await result.blob(); + // Получение base64 строки для файла + // Здесь выполняется Promise из функции readFile + // Promise позволяет писать линейный код для работы с асинхронными методами + // без использования обработчиков (callback) с помощью await + imageBase64 = await readFile(blob); + } + + // получение id строки для редактирования + // это значение содержится в скрытом input + const currentId = cntrls.lineId.value; + // если значение id не задано, + // то необходимо выполнить добавление записи + // иначе обновление записи + if (!currentId) { + await addLine( + cntrls.itemsType.value, + cntrls.price.value, + cntrls.time.value, + imageBase64, + ); + } else { + await editLine( + currentId, + cntrls.itemsType.value, + cntrls.price.value, + cntrls.time.value, + imageBase64, + ); + } + + // после выполнения добавления/обновления модальное окно скрывается + hideUpdateModal(); + }); +} + diff --git a/Lab3/js/linesUsers.js b/Lab3/js/linesUsers.js new file mode 100644 index 0000000..90ef52b --- /dev/null +++ b/Lab3/js/linesUsers.js @@ -0,0 +1,134 @@ +// модуль с логикой +import { hideUpdateModal, showUpdateModal } from "./lines-modal"; +import { + getAllItemTypes, getAllLines, +} from "./lines-rest-api"; +import { + cntrls, createItemsOption, createTableRowUser, +} from "./lines-ui"; + +async function drawItemsSelect() { + // вызов метода REST API для получения списка типов товаров + const data = await getAllItemTypes(); + // очистка содержимого select + // удаляется все, что находится между тегами + // но не атрибуты + cntrls.itemsType.innerHTML = ""; + // пустое значение + cntrls.itemsType.appendChild(createItemsOption("Выберите значение", "", true)); + // цикл по результату ответа от сервера + // используется лямбда-выражение + // (item) => {} аналогично function(item) {} + data.forEach((item) => { + cntrls.itemsType.appendChild(createItemsOption(item.name, item.id)); + }); +} + +async function drawLinesTable() { + console.info("Try to load data"); + if (!cntrls.table) { + return; + } + // вызов метода REST API для получения всех записей + const data = await getAllLines(); + // очистка содержимого table + // удаляется все, что находится между тегами
+ // но не атрибуты + cntrls.table.innerHTML = ""; + // цикл по результату ответа от сервера + // используется лямбда-выражение + // (item, index) => {} аналогично function(item, index) {} + data.forEach((item, index) => { + cntrls.table.appendChild( + createTableRowUser( + item, + index, + ), + ); + }); +} + +// функция для получения содержимого файла в виде base64 строки +// https://ru.wikipedia.org/wiki/Base64 +async function readFile(file) { + const reader = new FileReader(); + + // создание Promise-объекта для использования функции + // с помощью await (асинхронно) без коллбэков (callback) + // https://learn.javascript.ru/promise + return new Promise((resolve, reject) => { + // 2. "Возвращаем" содержимое когда файл прочитан + // через вызов resolve + // Если не использовать Promise, то всю работу по взаимодействию + // с REST API пришлось бы делать в обработчике (callback) функции + // onloadend + reader.onloadend = () => { + const fileContent = reader.result; + // Здесь могла бы быть работа с REST API + // Чтение заканчивает выполняться здесь + resolve(fileContent); + }; + // 3. Возвращаем ошибку + reader.onerror = () => { + // Или здесь в случае ошибки + reject(new Error("oops, something went wrong with the file reader.")); + }; + // Шаг 1. Сначала читаем файл + // Чтение начинает выполняться здесь + reader.readAsDataURL(file); + }); +} + +// функция для обновления блока с превью выбранного изображения +async function updateImagePreview() { + // получение выбранного файла + // возможен выбор нескольких файлов, поэтому необходимо получить только первый + const file = cntrls.image.files[0]; + // чтение содержимого файла в виде base64 строки + const fileContent = await readFile(file); + console.info("base64 ", fileContent); + // обновление атрибута src для тега img с id image-preview + cntrls.imagePreview.src = fileContent; +} + +// Функция для обработки создания и редактирования элементов таблицы через модальное окно +// Если хотите делать через страницу, то удалите эту функцию +// eslint-disable-next-line import/prefer-default-export +export function linesForm() { + console.info("linesForm"); + + // загрузка и заполнение select со списком товаров + drawItemsSelect(); + // загрузка и заполнение table + drawLinesTable(); + + // Вызов функции обновления превью изображения при возникновении + // события oncahnge в тэге input с id image + cntrls.image.addEventListener("change", () => updateImagePreview()); + + // обработчик события нажатия на кнопку для показа модального окна + cntrls.button.addEventListener("click", () => showUpdateModal(null)); + + // обработчик события отправки формы + // возникает при нажатии на кнопку (button) с типом submit + // кнопка должна находится внутри тега form + cntrls.form.addEventListener("submit", async (event) => { + console.info("Form onSubmit"); + // отключение стандартного поведения формы при отправке + // при отправке страница обновляется и JS перестает работать + event.preventDefault(); + event.stopPropagation(); + // если форма не прошла валидацию, то ничего делать не нужно + if (!cntrls.form.checkValidity()) { + return; + } + // получение id строки для редактирования + // это значение содержится в скрытом input + + // если значение id не задано, + // то необходимо выполнить добавление записи + // иначе обновление записи + // после выполнения добавления/обновления модальное окно скрывается + hideUpdateModal(); + }); +} diff --git a/Lab3/js/validation.js b/Lab3/js/validation.js new file mode 100644 index 0000000..e5641b6 --- /dev/null +++ b/Lab3/js/validation.js @@ -0,0 +1,25 @@ +// модуль используется для валидации форма на странице + +function validation() { + // поиск всех форма с классом .needs-validation + const forms = document.querySelectorAll("form.needs-validation"); + + for (let i = 0; i < forms.length; i += 1) { + const form = forms[i]; + // для каждой формы добавляется обработчик события отправки + form.addEventListener("submit", (event) => { + // если форма не прошла валидацию + // то выключить стандартное действие + if (!form.checkValidity()) { + event.preventDefault(); + // предотвращает распространение preventDefault + // на другие объекты + event.stopPropagation(); + } + // добавляет к форме класс was-validated + form.classList.add("was-validated"); + }); + } +} + +export default validation; diff --git a/Lab3/package-lock.json b/Lab3/package-lock.json new file mode 100644 index 0000000..c42d057 --- /dev/null +++ b/Lab3/package-lock.json @@ -0,0 +1,4688 @@ +{ + "name": "int-prog", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "int-prog", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@fortawesome/fontawesome-free": "6.4.2", + "bootstrap": "5.3.2" + }, + "devDependencies": { + "eslint": "8.50.0", + "eslint-config-airbnb-base": "15.0.0", + "eslint-plugin-import": "2.28.1", + "http-server": "14.1.1", + "json-server": "^0.17.4", + "npm-run-all": "4.1.5", + "vite": "4.4.9" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/eslintrc/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@eslint/js": { + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", + "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fortawesome/fontawesome-free": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.2.tgz", + "integrity": "sha512-m5cPn3e2+FDCOgi1mz0RexTUvvQibBebOUlUlW0+YrMjDTPkiJ6VTKukA1GRsvRw+12KyJndNjj0O4AgTxm2Pg==", + "hasInstallScript": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/bootstrap": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.2.tgz", + "integrity": "sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "node_modules/connect-pause": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/connect-pause/-/connect-pause-0.1.1.tgz", + "integrity": "sha512-a1gSWQBQD73krFXdUEYJom2RTFrWUL3YvXDCRkyv//GVXc79cdW9MngtRuN9ih4FDKBtfJAJId+BbDuX+1rh2w==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/corser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", + "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/errorhandler": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", + "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==", + "dev": true, + "dependencies": { + "accepts": "~1.3.7", + "escape-html": "~1.0.3" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-abstract": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", + "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.50.0", + "@humanwhocodes/config-array": "^0.11.11", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb-base/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.28.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz", + "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.findlastindex": "^1.2.2", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.8.0", + "has": "^1.0.3", + "is-core-module": "^2.13.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.6", + "object.groupby": "^1.0.0", + "object.values": "^1.1.6", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/eslint/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express-urlrewrite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/express-urlrewrite/-/express-urlrewrite-1.4.0.tgz", + "integrity": "sha512-PI5h8JuzoweS26vFizwQl6UTF25CAHSggNv0J25Dn/IKZscJHWZzPrI5z2Y2jgOzIaw2qh8l6+/jUcig23Z2SA==", + "dev": true, + "dependencies": { + "debug": "*", + "path-to-regexp": "^1.0.3" + } + }, + "node_modules/express-urlrewrite/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/express-urlrewrite/node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-server": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", + "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", + "dev": true, + "dependencies": { + "basic-auth": "^2.0.1", + "chalk": "^4.1.2", + "corser": "^2.0.1", + "he": "^1.2.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy": "^1.18.1", + "mime": "^1.6.0", + "minimist": "^1.2.6", + "opener": "^1.5.1", + "portfinder": "^1.0.28", + "secure-compare": "3.0.1", + "union": "~0.5.0", + "url-join": "^4.0.1" + }, + "bin": { + "http-server": "bin/http-server" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-helpfulerror": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", + "integrity": "sha512-XgP0FGR77+QhUxjXkwOMkC94k3WtqEBfcnjWqhRd82qTat4SWKRE+9kUnynz/shm3I4ea2+qISvTIeGTNU7kJg==", + "dev": true, + "dependencies": { + "jju": "^1.1.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-server": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/json-server/-/json-server-0.17.4.tgz", + "integrity": "sha512-bGBb0WtFuAKbgI7JV3A864irWnMZSvBYRJbohaOuatHwKSRFUfqtQlrYMrB6WbalXy/cJabyjlb7JkHli6dYjQ==", + "dev": true, + "dependencies": { + "body-parser": "^1.19.0", + "chalk": "^4.1.2", + "compression": "^1.7.4", + "connect-pause": "^0.1.1", + "cors": "^2.8.5", + "errorhandler": "^1.5.1", + "express": "^4.17.1", + "express-urlrewrite": "^1.4.0", + "json-parse-helpfulerror": "^1.0.3", + "lodash": "^4.17.21", + "lodash-id": "^0.14.1", + "lowdb": "^1.0.0", + "method-override": "^3.0.0", + "morgan": "^1.10.0", + "nanoid": "^3.1.23", + "please-upgrade-node": "^3.2.0", + "pluralize": "^8.0.0", + "server-destroy": "^1.0.1", + "yargs": "^17.0.1" + }, + "bin": { + "json-server": "lib/cli/bin.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash-id": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/lodash-id/-/lodash-id-0.14.1.tgz", + "integrity": "sha512-ikQPBTiq/d5m6dfKQlFdIXFzvThPi2Be9/AHxktOnDSfSxE1j9ICbBT5Elk1ke7HSTgM38LHTpmJovo9/klnLg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lowdb": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz", + "integrity": "sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.3", + "is-promise": "^2.1.0", + "lodash": "4", + "pify": "^3.0.0", + "steno": "^0.4.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/method-override": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/method-override/-/method-override-3.0.0.tgz", + "integrity": "sha512-IJ2NNN/mSl9w3kzWB92rcdHpz+HjkxhDJWNDBqSlas+zQdP8wBiJzITPg08M/k2uVvMow7Sk41atndNtt/PHSA==", + "dev": true, + "dependencies": { + "debug": "3.1.0", + "methods": "~1.1.2", + "parseurl": "~1.3.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/method-override/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/method-override/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dev": true, + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/morgan/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/morgan/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/npm-run-all/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/npm-run-all/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "dependencies": { + "semver-compare": "^1.0.0" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "dependencies": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/secure-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", + "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", + "dev": true + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", + "dev": true + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.15.tgz", + "integrity": "sha512-lpT8hSQp9jAKp9mhtBU4Xjon8LPGBvLIuBiSVhMEtmLecTh2mO0tlqrAMp47tBXzMr13NJMQ2lf7RpQGLJ3HsQ==", + "dev": true + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/steno": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz", + "integrity": "sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.3" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz", + "integrity": "sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/union": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "dev": true, + "dependencies": { + "qs": "^6.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "4.4.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz", + "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/Lab3/package.json b/Lab3/package.json new file mode 100644 index 0000000..0fb73a4 --- /dev/null +++ b/Lab3/package.json @@ -0,0 +1,30 @@ +{ + "name": "int-prog", + "version": "1.0.0", + "type": "module", + "scripts": { + "vite": "vite", + "serve": "http-server -p 3000 ./dist/", + "build": "vite build", + "rest": "json-server --watch data.json -p 8081", + "dev": "npm-run-all --parallel rest vite", + "prod": "npm-run-all build --parallel serve rest" + }, + "dependencies": { + "@fortawesome/fontawesome-free": "6.4.2", + "bootstrap": "5.3.2" + }, + "devDependencies": { + "eslint": "8.50.0", + "eslint-config-airbnb-base": "15.0.0", + "eslint-plugin-import": "2.28.1", + "http-server": "14.1.1", + "json-server": "^0.17.4", + "npm-run-all": "4.1.5", + "vite": "4.4.9" + }, + "main": "index.js", + "author": "", + "license": "ISC", + "description": "" +} diff --git a/Lab3/page-edit.html b/Lab3/page-edit.html new file mode 100644 index 0000000..de50cad --- /dev/null +++ b/Lab3/page-edit.html @@ -0,0 +1,87 @@ + + + + + Моя страница + + + + + + + + +
+ +
+
+
+ placeholder +
+
+
+ + +
+
+ + +
+
+ + + +
+
+ + +
+ Назад + +
+
+
+ Все права защищены и принадлежат ИП Абубакаров Абубакар Абубакарович. +
+ + + + \ No newline at end of file diff --git a/Lab3/page4.html b/Lab3/page4.html new file mode 100644 index 0000000..793cdd6 --- /dev/null +++ b/Lab3/page4.html @@ -0,0 +1,122 @@ + + + + + Моя страница + + + + + + + + +
+ +
+
+
+ +
+
+ + + + + + + + + + + + + +
ТоварЦенаВремяСумма
+
+
+
+ Все права защищены и принадлежат ИП Абубакаров Абубакар Абубакарович. +
+ + + + + + \ No newline at end of file diff --git a/Lab3/second.html b/Lab3/second.html new file mode 100644 index 0000000..8801f83 --- /dev/null +++ b/Lab3/second.html @@ -0,0 +1,92 @@ + + + + + Отзывы + + + + + + + +
+ +
+ +
+
+
+
+
+
+
+ + + + + + + + +
+
+ + +
+
+ +
+ +
+
+
+ Все права защищены и принадлежат ИП Абубакаров Абубакар Абубакарович. +
+ + \ No newline at end of file diff --git a/Lab3/sixth.html b/Lab3/sixth.html new file mode 100644 index 0000000..eba7320 --- /dev/null +++ b/Lab3/sixth.html @@ -0,0 +1,130 @@ + + + + + Моя страница + + + + + + + +
+ +
+
+
+
+
+
+
Михаил
+
Чуть не утонул, а инструктор Игорь стоял на берегу и смеялся над тем как я барахтаюсь. А так всё отлично. 4 звезды за поведение Игоря!
+ + +
+
+
Леша
+
бУЛЬБУЛЬБУЛЬ
+ + +
+
+
Елена
+
Катались с мужем на сапах. Нам попался чудесный инструктор Игорь. В меру наплавались, обязательно вернемся!
+ + +
+
+
Игорь
+
Работаю инструктором. Недавно к нам заходила женщина Елена с мужем в сильном алкогольном опьянении... Не понравилось!
+ + +
+
+
Женя
+
Когда я просил инструктора Игоря научить меня уверенно держаться на воде, я не имел ввиду дергать меня за ноги, пока я буду плавать!
+ + +
+
+
Женя
+
Когда я просил инструктора Игоря научить меня уверенно держаться на воде, я не имел ввиду дергать меня за ноги, пока я буду плавать!
+ + +
+
+
Женя
+
Когда я просил инструктора Игоря научить меня уверенно держаться на воде, я не имел ввиду дергать меня за ноги, пока я буду плавать!
+ + +
+
+
+
+ +
+
+ Все права защищены и принадлежат ИП Абубакаров Абубакар Абубакарович. + +
+ + \ No newline at end of file diff --git a/Lab3/styles/style.css b/Lab3/styles/style.css new file mode 100644 index 0000000..3051406 --- /dev/null +++ b/Lab3/styles/style.css @@ -0,0 +1,62 @@ +/* Стиль для шапки */ + header { + color: #ffffff; + background-color: #302b2b; /* Цвет фона шапки */ + } + + @media (min-width: 768px) { + header nav { + height: 64px; + color: #ffffff; + background-color: #302b2b; /* Цвет фона шапки */ + } + } + + header .navbar-nav .nav-link { + color: #ffffff; /* Белый цвет текста навигационных ссылок */ + } + + header .navbar-nav .nav-link:hover { + text-decoration: none; + background-color: yellow; /* Фон ссылок при наведении */ + color: #302b2b; /* Цвет текста ссылок при наведении */ + } + + /* Стиль для футера */ + footer { + background-color: #302b2b; + height: 80px; + color: #8b8b8b; + bottom: 0; + right:0; + width: 100%; + } + + /* Стиль для заголовков */ + h1 { + font-size: 1.5em; + } + + h2 { + font-size: 1.25em; + } + + h3 { + font-size: 1.1em; + } + + p { + font-size: 20px; + } + + pr{ + font-size: 20px; + } + + #image-preview { + + object-fit: cover; + width: 200px; + height: 200px; + + } \ No newline at end of file diff --git a/Lab3/test.txt b/Lab3/test.txt new file mode 100644 index 0000000..65f5bb0 --- /dev/null +++ b/Lab3/test.txt @@ -0,0 +1 @@ +ss \ No newline at end of file diff --git a/Lab3/third.html b/Lab3/third.html new file mode 100644 index 0000000..124ecf6 --- /dev/null +++ b/Lab3/third.html @@ -0,0 +1,122 @@ + + + + + Моя страница + + + + + + + +
+ +
+ +
+
+
+
+
+

WhatSUP в Ульяновске!

+

+

    +
  • +

    - Набережная реки Свияги, 81

    +
  • +
  • +

    - Посёлок Рыбацкий, 1

    +
  • +
  • +

    - Степана Разина, 12

    +
  • +
  • +

    - Сельдинское ш., 1

    +
  • +
  • +

    - Александровская улица, 60А

    +
  • +
  • +

    - Ульяновская улица, 1Б

    +
  • +
+

+

Мы в соцсетях:

+
    +
  • +
    + Мой логотип + supsclub

    +
    +
  • +
  • +
    + Мой логотип + supsclub

    +
    +
  • +
+
+
+ +
+
+

Телефоны

+

+

    +
  • +

    +79277895643, Алексей

    +
  • +
  • +

    +79277895643, Татьяна

    +
  • +
  • +

    +79277895643, Ольга

    +
  • +
  • +

    +79277895643, Никита

    +
  • +
  • +

    +79277895643, Андрей

    +
  • +
  • +

    +79277895643, Роман

    +
  • +
+

+
+
+
+ + + \ No newline at end of file diff --git a/Lab3/Отчет 2 лаба ип.docx b/Lab3/Отчет 2 лаба ип.docx new file mode 100644 index 0000000..170824c Binary files /dev/null and b/Lab3/Отчет 2 лаба ип.docx differ