From c2d1207bd3c1236a2ce9000108c6a1374d41df36 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Wed, 8 Nov 2023 15:28:46 +0300 Subject: [PATCH 001/116] Rename folder for styles --- README.md | 14 +++++++------- gulpfile.js | 6 +++--- package.json | 2 +- source/index.html | 2 +- source/{sass => styles}/blocks/README.md | 0 source/{sass => styles}/blocks/header.scss | 0 source/{sass => styles}/global/README.md | 0 source/{sass => styles}/global/fonts.scss | 0 source/{sass => styles}/global/global.scss | 0 source/{sass => styles}/global/variables.scss | 0 source/{sass/style.scss => styles/index.scss} | 0 11 files changed, 12 insertions(+), 12 deletions(-) rename source/{sass => styles}/blocks/README.md (100%) rename source/{sass => styles}/blocks/header.scss (100%) rename source/{sass => styles}/global/README.md (100%) rename source/{sass => styles}/global/fonts.scss (100%) rename source/{sass => styles}/global/global.scss (100%) rename source/{sass => styles}/global/variables.scss (100%) rename source/{sass/style.scss => styles/index.scss} (100%) diff --git a/README.md b/README.md index 8a6573941..dd1640a1a 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ │ │ └── icons/ # Специальная папка для преобразования svg в спрайт(stack) │ ├── js # Скрипты │ │ └── script.js # Главный скрипт -│ ├── sass/ # Папка для препроцессорных файлов sass +│ ├── styles/ # Папка для препроцессорных файлов sass │ │ └── blocks/ # Стили БЭМ-блоков │ │ └── header.scss # Стили для конкретного БЭМ-блока │ │ └── global # Файл для подключения стилей библиотек из папки @@ -130,11 +130,11 @@ ## Работа со стилями -Все стили находятся в папке `source/sass/`. +Все стили находятся в папке `source/styles/`. ```shell ├── source/ -│ ├── sass +│ ├── styles/ │ │ └── blocks/ │ │ └── header.scss │ │ └── global @@ -143,7 +143,7 @@ │ │ └── variables.scss ``` -Все БЭМ-блоки и остальные препроцессорные файлы подключайте в `source/sass/styles.scss`. +Все БЭМ-блоки и остальные препроцессорные файлы подключайте в `source/styles/index.scss`. ```scss /* GLOBAL */ @@ -157,12 +157,12 @@ БЭМ-блоки импортируйте в секцию `/* BLOCKS */`. -Все препроцессорные файлы сборка обработает и превратит в `styles.css`. Файл `styles.css` сборка перенесёт в +Все препроцессорные файлы сборка обработает и превратит в `index.css`. Файл `index.css` сборка перенесёт в ```shell ├── build/ -│ └── css/ -│ └── styles.css +│ └── styles/ +│ └── index.css ``` ## Работа с графикой diff --git a/gulpfile.js b/gulpfile.js index 00c6293f3..021cd8c6c 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -28,7 +28,7 @@ export function lintBem () { } export function processStyles () { - return gulp.src('source/sass/*.scss', { sourcemaps: isDevelopment }) + return gulp.src('source/styles/*.scss', { sourcemaps: isDevelopment }) .pipe(plumber()) .pipe(sass().on('error', sass.logError)) .pipe(postcss([ @@ -36,7 +36,7 @@ export function processStyles () { autoprefixer(), csso() ])) - .pipe(gulp.dest('build/css', { sourcemaps: isDevelopment })) + .pipe(gulp.dest('build/styles', { sourcemaps: isDevelopment })) .pipe(browser.stream()); } @@ -121,7 +121,7 @@ function reloadServer (done) { } function watchFiles () { - gulp.watch('source/sass/**/*.scss', gulp.series(processStyles)); + gulp.watch('source/styles/**/*.scss', gulp.series(processStyles)); gulp.watch('source/js/script.js', gulp.series(processScripts)); gulp.watch('source/*.html', gulp.series(processMarkup, reloadServer)); } diff --git a/package.json b/package.json index 68063a500..712477870 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ }, "scripts": { "lint:spaces": "editorconfig-cli", - "lint:styles": "stylelint \"source/sass/**/*.scss\" --custom-syntax postcss-scss", + "lint:styles": "stylelint \"source/styles/**/*.scss\" --custom-syntax postcss-scss", "lint:markup": "cd build && html-validator --quiet --continue", "lint:html": "linthtml source/**/*.html --config .linthtmlrc", "lint:bem": "gulp lintBem --silent", diff --git a/source/index.html b/source/index.html index 377512a2e..058b91994 100644 --- a/source/index.html +++ b/source/index.html @@ -4,7 +4,7 @@ Название проекта - +
Шапка
diff --git a/source/sass/blocks/README.md b/source/styles/blocks/README.md similarity index 100% rename from source/sass/blocks/README.md rename to source/styles/blocks/README.md diff --git a/source/sass/blocks/header.scss b/source/styles/blocks/header.scss similarity index 100% rename from source/sass/blocks/header.scss rename to source/styles/blocks/header.scss diff --git a/source/sass/global/README.md b/source/styles/global/README.md similarity index 100% rename from source/sass/global/README.md rename to source/styles/global/README.md diff --git a/source/sass/global/fonts.scss b/source/styles/global/fonts.scss similarity index 100% rename from source/sass/global/fonts.scss rename to source/styles/global/fonts.scss diff --git a/source/sass/global/global.scss b/source/styles/global/global.scss similarity index 100% rename from source/sass/global/global.scss rename to source/styles/global/global.scss diff --git a/source/sass/global/variables.scss b/source/styles/global/variables.scss similarity index 100% rename from source/sass/global/variables.scss rename to source/styles/global/variables.scss diff --git a/source/sass/style.scss b/source/styles/index.scss similarity index 100% rename from source/sass/style.scss rename to source/styles/index.scss From a51f24437702f0b60984a7bdab0a88a52ce68a3c Mon Sep 17 00:00:00 2001 From: firefoxic Date: Wed, 8 Nov 2023 15:28:46 +0300 Subject: [PATCH 002/116] Fix trees --- README.md | 151 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 77 insertions(+), 74 deletions(-) diff --git a/README.md b/README.md index dd1640a1a..4e36afc16 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ ├── .github/ # Специальная папка для github │ └── workflows/ # Автоматизация для github actions │ ├── check.yml # Запускает линтеры на Гитхабе -│ └── gh-pages.yml # Публикует проект и создаёт ссылку на проект +│ └── gh-pages.yml # Публикует проект и создаёт ссылку на проект ├── source/ # Исходники проекта │ ├── fonts/ # Папка для шрифтов │ ├── images/ # Папка для хранения картинок @@ -74,20 +74,22 @@ │ ├── js # Скрипты │ │ └── script.js # Главный скрипт │ ├── styles/ # Папка для препроцессорных файлов sass -│ │ └── blocks/ # Стили БЭМ-блоков -│ │ └── header.scss # Стили для конкретного БЭМ-блока -│ │ └── global # Файл для подключения стилей библиотек из папки -│ │ ├── fonts.scss # Подключение шрифтов к проекту -│ │ ├── global.scss # Глобальные стили, которые касаются всего проекта -│ │ └── variables.scss # Переменные для всего проекта +│ │ ├── blocks/ # Стили БЭМ-блоков +│ │ │ └── header.scss # Стили для конкретного БЭМ-блока +│ │ ├── global # Файл для подключения стилей библиотек из папки +│ │ │ ├── fonts.scss # Подключение шрифтов к проекту +│ │ │ ├── global.scss # Глобальные стили, которые касаются всего проекта +│ │ │ └── variables.scss # Переменные для всего проекта +│ │ └── index.scss # Основной стилевой файл с импортами всех остальных │ ├── vendor # Папка для сторонних бибилотек -│ └── index.html # HTML-файл для главной страницы -└── .editorconfig # Настройки форматирования текстовых файлов -└── .gitignore # Настройки игнорирования файлов для git -└── .stylelintrc # Правила для stylelint -└── gulpfile.js # Автоматизация для Gulp -└── package.json # Зависимости проекта, скрипты, настройки проекта -└── package-lock.json # Зависимости проекта +│ └── index.html # HTML-файл для главной страницы +├── .editorconfig # Настройки форматирования текстовых файлов +├── .eslintrc # Правила для eslint +├── .gitignore # Настройки игнорирования файлов для git +├── .stylelintrc # Правила для stylelint +├── gulpfile.js # Автоматизация для Gulp +├── package.json # Зависимости проекта, скрипты, настройки проекта +├── package-lock.json # Зависимости проекта └── README.md # Документация ``` @@ -113,19 +115,19 @@ Все HTML-файлы с разметкой складывайте в папку `source/`. ```shell -├── source/ -│ ├── index.html -│ ├── catalog.html -│ └── form.html +└── source/ + ├── index.html + ├── catalog.html + └── form.html ``` Из папки `source/` сборка переносит файлы в папку `build/`. ```shell -├── build/ -│ ├── index.html -│ ├── catalog.html -│ └── form.html +└── build/ + ├── index.html + ├── catalog.html + └── form.html ``` ## Работа со стилями @@ -133,14 +135,15 @@ Все стили находятся в папке `source/styles/`. ```shell -├── source/ -│ ├── styles/ -│ │ └── blocks/ -│ │ └── header.scss -│ │ └── global -│ │ ├── fonts.scss -│ │ ├── global.scss -│ │ └── variables.scss +└── source/ + └── styles/ + ├── blocks/ + │ └── header.scss + ├── global + │ ├── fonts.scss + │ ├── global.scss + │ └── variables.scss + └── index.scss ``` Все БЭМ-блоки и остальные препроцессорные файлы подключайте в `source/styles/index.scss`. @@ -160,9 +163,9 @@ Все препроцессорные файлы сборка обработает и превратит в `index.css`. Файл `index.css` сборка перенесёт в ```shell -├── build/ -│ └── styles/ -│ └── index.css +└── build/ + └── styles/ + └── index.css ``` ## Работа с графикой @@ -176,24 +179,24 @@ Векторную графику для спрайта складывайте в `source/images/icons/`. Автоматизация создаст из иконок файл `stack.svg`. ```shell -├── source/ -│ ├── .raw/ -│ ├── images/ -│ │ └── icons/ +└── source/ + ├── .raw/ + └── images/ + └── icons/ ``` Всю графику автоматизация перенесёт в `build/images/`. ```shell -├── build/ -│ └── images/ -│ └── icons # папка для спрайта -│ └── stack.svg # спрайт -│ ├── bg.jpg -│ ├── bg.webp -│ ├── hero.png -│ ├── hero.webp -│ └── burger.svg +└── build/ + └── images/ + ├── icons # папка для спрайта + │ └── stack.svg # спрайт + ├── bg.jpg + ├── bg.webp + ├── hero.png + ├── hero.webp + └── burger.svg ``` ## Работа со шрифтами @@ -201,12 +204,12 @@ Все шрифтовые файлы лежат в `source/fonts/`. Сборка переносит их в `build/fonts/`. ```shell -├── build/ -│ └── fonts/ -│ ├── open-sans.woff2 -│ ├── open-sans.woff -│ ├── open-sans-bold.woff -│ └── open-sans-bold.woff +└── build/ + └── fonts/ + ├── open-sans.woff2 + ├── open-sans.woff + ├── open-sans-bold.woff + └── open-sans-bold.woff ``` @@ -215,19 +218,19 @@ Все скрипты лежат в `source/script/`. ```shell -├── source/ -│ ├── js -│ │ ├── script.js -│ │ └── modal.js +└── source/ + └── js + ├── script.js + └── modal.js ``` Сборка переносит их в `build/script/`. ```shell -├── build/ -│ ├── js -│ │ ├── script.js -│ │ └── modal.js +└── build/ + └── js + ├── script.js + └── modal.js ``` ## Работа со сторонними библиотеками @@ -239,30 +242,30 @@ Положите файлы библиотеки в папку `source/vendor/`, как показано ниже: ```shell -├── source/ -│ └── vendor/ -│ ├── library.css -│ └── library.js +└── source/ + └── vendor/ + ├── library.css + └── library.js ``` Если у вас есть несколько библиотек с разными файлами, вы можете группировать файлы одной библиотеки в ее собственную подпапку. Например: ```shell -├── source/ -│ └── vendor/ -│ └── library/ -│ ├── library.css -│ └── library.js +└── source/ + └── vendor/ + └── library/ + ├── library.css + └── library.js ``` При сборке вашего проекта, все файлы из папки `source/vendor/` будут включены в папку `build/vendor/`, сохраняя их структуру. Например: ```shell -├── build/ -│ └── vendor/ -│ └── library/ -│ ├── library.css -│ └── library.js +└── build/ + └── vendor/ + └── library/ + ├── library.css + └── library.js ``` Таким образом, вы можете удобно организовать и внедрить сторонние библиотеки в ваш проект, сохраняя их структуру в папке `source/vendor/`. From 018ba077d21b6ea3739082b273f16dba4e9ff56c Mon Sep 17 00:00:00 2001 From: firefoxic Date: Wed, 8 Nov 2023 15:28:46 +0300 Subject: [PATCH 003/116] Fix style linting --- .stylelintrc | 11 ++++++++--- package-lock.json | 19 +++++++++---------- package.json | 3 +-- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/.stylelintrc b/.stylelintrc index 9c9b31254..a78262c08 100644 --- a/.stylelintrc +++ b/.stylelintrc @@ -1,8 +1,13 @@ { "extends": "stylelint-config-htmlacademy", - "rules": { - "declaration-no-important": true, - "indentation": [2, {"ignore": ["inside-parens"]}] + "codeguide/indentation": [ + 2, + { + "ignore": [ + "inside-parens" + ] + } + ] } } diff --git a/package-lock.json b/package-lock.json index ca4e12b31..fd1398749 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,6 @@ "linthtml-config-htmlacademy": "1.0.12", "postcss": "8.4.31", "postcss-csso": "6.0.1", - "postcss-scss": "4.0.9", "postcss-url": "10.1.3", "sass": "1.69.5", "stylelint": "15.11.0", @@ -813,9 +812,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.8.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz", - "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==", + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", + "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -828,9 +827,9 @@ "dev": true }, "node_modules/@types/parse-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.1.tgz", - "integrity": "sha512-3YmXzzPAdOTVljVMkTMBdBEvlOLg2cDQaDhnnhT3nT9uDbnJzjWhKlzb+desT12Y7tGqaN6d+AbozcKzyL36Ng==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "dev": true }, "node_modules/@ungap/structured-clone": { @@ -3517,9 +3516,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.577", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.577.tgz", - "integrity": "sha512-/5xHPH6f00SxhHw6052r+5S1xO7gHNc89hV7tqlvnStvKbSrDqc/u6AlwPvVWWNj+s4/KL6T6y8ih+nOY0qYNA==", + "version": "1.4.578", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.578.tgz", + "integrity": "sha512-V0ZhSu1BQZKfG0yNEL6Dadzik8E1vAzfpVOapdSiT9F6yapEJ3Bk+4tZ4SMPdWiUchCgnM/ByYtBzp5ntzDMIA==", "dev": true }, "node_modules/elliptic": { diff --git a/package.json b/package.json index 712477870..3f7150bc3 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,6 @@ "linthtml-config-htmlacademy": "1.0.12", "postcss": "8.4.31", "postcss-csso": "6.0.1", - "postcss-scss": "4.0.9", "postcss-url": "10.1.3", "sass": "1.69.5", "stylelint": "15.11.0", @@ -31,7 +30,7 @@ }, "scripts": { "lint:spaces": "editorconfig-cli", - "lint:styles": "stylelint \"source/styles/**/*.scss\" --custom-syntax postcss-scss", + "lint:styles": "stylelint \"source/styles/**/*.scss\"", "lint:markup": "cd build && html-validator --quiet --continue", "lint:html": "linthtml source/**/*.html --config .linthtmlrc", "lint:bem": "gulp lintBem --silent", From 694bb887cabb4c5a7acb5cf517dafde3c0a0dd8a Mon Sep 17 00:00:00 2001 From: firefoxic Date: Wed, 8 Nov 2023 15:58:23 +0300 Subject: [PATCH 004/116] Rename folder for scripts --- README.md | 12 ++++++------ gulpfile.js | 6 +++--- package.json | 2 +- source/index.html | 3 +-- source/js/README.md | 10 ---------- source/scripts/README.md | 11 +++++++++++ source/{js/script.js => scripts/index.js} | 0 7 files changed, 22 insertions(+), 22 deletions(-) delete mode 100644 source/js/README.md create mode 100644 source/scripts/README.md rename source/{js/script.js => scripts/index.js} (100%) diff --git a/README.md b/README.md index 4e36afc16..374cb000a 100644 --- a/README.md +++ b/README.md @@ -71,8 +71,8 @@ │ ├── fonts/ # Папка для шрифтов │ ├── images/ # Папка для хранения картинок │ │ └── icons/ # Специальная папка для преобразования svg в спрайт(stack) -│ ├── js # Скрипты -│ │ └── script.js # Главный скрипт +│ ├── scripts/ # Скрипты +│ │ └── index.js # Главный скрипт │ ├── styles/ # Папка для препроцессорных файлов sass │ │ ├── blocks/ # Стили БЭМ-блоков │ │ │ └── header.scss # Стили для конкретного БЭМ-блока @@ -219,8 +219,8 @@ ```shell └── source/ - └── js - ├── script.js + └── scripts/ + ├── index.js └── modal.js ``` @@ -228,8 +228,8 @@ ```shell └── build/ - └── js - ├── script.js + └── scripts/ + ├── index.js └── modal.js ``` diff --git a/gulpfile.js b/gulpfile.js index 021cd8c6c..fe56dca95 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -41,9 +41,9 @@ export function processStyles () { } export function processScripts () { - return gulp.src('source/js/**/*.js') + return gulp.src('source/scripts/**/*.js') .pipe(terser()) - .pipe(gulp.dest('build/js')) + .pipe(gulp.dest('build/scripts')) .pipe(browser.stream()); } @@ -122,7 +122,7 @@ function reloadServer (done) { function watchFiles () { gulp.watch('source/styles/**/*.scss', gulp.series(processStyles)); - gulp.watch('source/js/script.js', gulp.series(processScripts)); + gulp.watch('source/scripts/**/*.js', gulp.series(processScripts)); gulp.watch('source/*.html', gulp.series(processMarkup, reloadServer)); } diff --git a/package.json b/package.json index 3f7150bc3..7c7a7523d 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "lint:markup": "cd build && html-validator --quiet --continue", "lint:html": "linthtml source/**/*.html --config .linthtmlrc", "lint:bem": "gulp lintBem --silent", - "lint:js": "eslint source/js", + "lint:js": "eslint source/scripts", "prelint": "gulp processMarkup --silent", "lint": "npm run lint:spaces && npm run lint:styles && npm run lint:markup && npm run lint:bem && npm run lint:html && npm run lint:js", "optimizeImages": "gulp optimizeImages", diff --git a/source/index.html b/source/index.html index 058b91994..b4940b241 100644 --- a/source/index.html +++ b/source/index.html @@ -5,10 +5,9 @@ Название проекта +
Шапка
- - diff --git a/source/js/README.md b/source/js/README.md deleted file mode 100644 index 5e061c862..000000000 --- a/source/js/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Папка для скриптов. - -Простое сценарии можно написать в script.js, а также есть возможность создать модульную систему для несколько сценариев: - -```bash -js/ - scripts.js - modal.js - burger.js -``` diff --git a/source/scripts/README.md b/source/scripts/README.md new file mode 100644 index 000000000..0017e43b1 --- /dev/null +++ b/source/scripts/README.md @@ -0,0 +1,11 @@ +# Папка для скриптов + +Простые сценарии можно написать в `index.js`, а также есть возможность создать модульную систему для несколько сценариев: + +```shell +└── source/ + └── scripts/ + ├── index.js + ├── modal.js + └── nav.js +``` diff --git a/source/js/script.js b/source/scripts/index.js similarity index 100% rename from source/js/script.js rename to source/scripts/index.js From 5c1692f7a02b2f7d8b2c982852e30f72e8715462 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Wed, 8 Nov 2023 16:02:11 +0300 Subject: [PATCH 005/116] Fix script linting --- .eslintrc | 32 ++++++++++++++++---------------- README.md | 2 +- package.json | 4 ++-- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.eslintrc b/.eslintrc index 3ae897af5..4b0ad0009 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,16 +1,16 @@ -root: true - -parserOptions: - ecmaVersion: 2022 - sourceType: "module" - -env: - es2022: true - browser: true - -globals: - noUiSlider: readonly - Pristine: readonly - -extends: - "htmlacademy/vanilla" +{ + "root": true, + "parserOptions": { + "ecmaVersion": 2022, + "sourceType": "module" + }, + "env": { + "es2022": true, + "browser": true + }, + "globals": { + "noUiSlider": "readonly", + "Pristine": "readonly" + }, + "extends": "htmlacademy/vanilla" +} diff --git a/README.md b/README.md index 374cb000a..a782006d0 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ - `npm run lint:styles` - проверяет проект на совместимость с stylelint - `npm run lint:spaces` - проверяет отступы с помощью editorConfig - `npm run lint:html` - проверяет разметку по правилам linthtml -- `npm run lint:js` - проверяет скрипты по правилам eslint +- `npm run lint:scripts` - проверяет скрипты по правилам eslint ## Работа с разметкой diff --git a/package.json b/package.json index 7c7a7523d..425d6b0ba 100644 --- a/package.json +++ b/package.json @@ -34,9 +34,9 @@ "lint:markup": "cd build && html-validator --quiet --continue", "lint:html": "linthtml source/**/*.html --config .linthtmlrc", "lint:bem": "gulp lintBem --silent", - "lint:js": "eslint source/scripts", + "lint:scripts": "eslint . --ignore-path .gitignore", "prelint": "gulp processMarkup --silent", - "lint": "npm run lint:spaces && npm run lint:styles && npm run lint:markup && npm run lint:bem && npm run lint:html && npm run lint:js", + "lint": "npm run lint:spaces && npm run lint:styles && npm run lint:markup && npm run lint:bem && npm run lint:html && npm run lint:scripts", "optimizeImages": "gulp optimizeImages", "start": "gulp runDev", "build": "gulp buildProd", From a4668cf7bc6b15436d598f47c722abe464e88012 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Wed, 8 Nov 2023 17:05:50 +0300 Subject: [PATCH 006/116] Run linters in parallel --- package-lock.json | 404 +++++++++++++++++++++++++++++++++++++++++----- package.json | 3 +- 2 files changed, 365 insertions(+), 42 deletions(-) diff --git a/package-lock.json b/package-lock.json index fd1398749..ed3d87af1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,6 +25,7 @@ "gulp-svgmin": "4.1.0", "gulp-terser": "2.1.0", "linthtml-config-htmlacademy": "1.0.12", + "npm-run-all": "4.1.5", "postcss": "8.4.31", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", @@ -5831,6 +5832,22 @@ "node": ">=0.10.0" } }, + "node_modules/gulp-cli/node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/gulp-cli/node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -5843,6 +5860,18 @@ "validate-npm-package-license": "^3.0.1" } }, + "node_modules/gulp-cli/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/gulp-cli/node_modules/path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", @@ -5869,6 +5898,15 @@ "node": ">=0.10.0" } }, + "node_modules/gulp-cli/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/gulp-cli/node_modules/read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", @@ -5931,6 +5969,18 @@ "node": ">=0.10.0" } }, + "node_modules/gulp-cli/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/gulp-cli/node_modules/wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", @@ -7573,6 +7623,12 @@ "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-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -7797,31 +7853,31 @@ } }, "node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "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": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, "node_modules/load-json-file/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "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.2.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, "node_modules/localtunnel": { @@ -8298,6 +8354,15 @@ "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", "dev": true }, + "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/meow": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", @@ -8625,6 +8690,12 @@ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "dev": true }, + "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/node-abi": { "version": "2.30.1", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", @@ -8767,6 +8838,169 @@ "node": ">= 0.10" } }, + "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/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/npm-run-all/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/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/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/npm-run-all/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/npm-run-all/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/npm-run-all/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/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/npm-run-all/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/npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -9439,13 +9673,25 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "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": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "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": ">=0.10.0" + "node": ">=4" } }, "node_modules/pinkie": { @@ -9965,18 +10211,17 @@ "dev": true }, "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "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": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/read-pkg-up": { @@ -10009,6 +10254,12 @@ "node": ">=8" } }, + "node_modules/read-pkg-up/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/read-pkg-up/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -10021,6 +10272,18 @@ "node": ">=8" } }, + "node_modules/read-pkg-up/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/read-pkg-up/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -10048,6 +10311,39 @@ "node": ">=8" } }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/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/read-pkg-up/node_modules/type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -10075,6 +10371,18 @@ "validate-npm-package-license": "^3.0.1" } }, + "node_modules/read-pkg/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/read-pkg/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -10084,15 +10392,6 @@ "semver": "bin/semver" } }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -11049,6 +11348,15 @@ "node": ">=8" } }, + "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", @@ -11688,6 +11996,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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", @@ -11759,15 +12084,12 @@ } }, "node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "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, - "dependencies": { - "is-utf8": "^0.2.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, "node_modules/strip-indent": { diff --git a/package.json b/package.json index 425d6b0ba..126716ccf 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "gulp-svgmin": "4.1.0", "gulp-terser": "2.1.0", "linthtml-config-htmlacademy": "1.0.12", + "npm-run-all": "4.1.5", "postcss": "8.4.31", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", @@ -36,7 +37,7 @@ "lint:bem": "gulp lintBem --silent", "lint:scripts": "eslint . --ignore-path .gitignore", "prelint": "gulp processMarkup --silent", - "lint": "npm run lint:spaces && npm run lint:styles && npm run lint:markup && npm run lint:bem && npm run lint:html && npm run lint:scripts", + "lint": "npm-run-all -p lint:**", "optimizeImages": "gulp optimizeImages", "start": "gulp runDev", "build": "gulp buildProd", From c3c2d594ea7c02538f927eab34224fa0ab1a454b Mon Sep 17 00:00:00 2001 From: firefoxic Date: Wed, 8 Nov 2023 17:22:53 +0300 Subject: [PATCH 007/116] Fix paths for styles --- README.md | 8 ++++---- source/styles/index.scss | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index a782006d0..3a0baf5f6 100644 --- a/README.md +++ b/README.md @@ -150,12 +150,12 @@ ```scss /* GLOBAL */ -@import "global/variables"; -@import "global/global"; -@import "global/fonts"; +@import "./global/variables.scss"; +@import "./global/global.scss"; +@import "./global/fonts.scss"; /* BLOCKS */ -@import "blocks/header"; +@import "./blocks/header.scss"; ``` БЭМ-блоки импортируйте в секцию `/* BLOCKS */`. diff --git a/source/styles/index.scss b/source/styles/index.scss index 4af2fdf5a..118c79c4b 100644 --- a/source/styles/index.scss +++ b/source/styles/index.scss @@ -1,7 +1,7 @@ /* GLOBAL */ -@import "global/variables"; -@import "global/global"; -@import "global/fonts"; +@import "./global/variables.scss"; +@import "./global/global.scss"; +@import "./global/fonts.scss"; /* BLOCKS */ -@import "blocks/header"; +@import "./blocks/header.scss"; From eba49af7965485b57021a6a198cbc0ad2153c3b3 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Wed, 8 Nov 2023 18:23:25 +0300 Subject: [PATCH 008/116] Revert index.scss to styles.scss Co-authored-by: Nikolai Shabalin --- README.md | 10 +++++----- source/index.html | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 3a0baf5f6..da494c931 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ │ │ │ ├── fonts.scss # Подключение шрифтов к проекту │ │ │ ├── global.scss # Глобальные стили, которые касаются всего проекта │ │ │ └── variables.scss # Переменные для всего проекта -│ │ └── index.scss # Основной стилевой файл с импортами всех остальных +│ │ └── styles.scss # Основной стилевой файл с импортами всех остальных │ ├── vendor # Папка для сторонних бибилотек │ └── index.html # HTML-файл для главной страницы ├── .editorconfig # Настройки форматирования текстовых файлов @@ -143,10 +143,10 @@ │ ├── fonts.scss │ ├── global.scss │ └── variables.scss - └── index.scss + └── styles.scss ``` -Все БЭМ-блоки и остальные препроцессорные файлы подключайте в `source/styles/index.scss`. +Все БЭМ-блоки и остальные препроцессорные файлы подключайте в `source/styles/styles.scss`. ```scss /* GLOBAL */ @@ -160,12 +160,12 @@ БЭМ-блоки импортируйте в секцию `/* BLOCKS */`. -Все препроцессорные файлы сборка обработает и превратит в `index.css`. Файл `index.css` сборка перенесёт в +Все препроцессорные файлы сборка обработает и превратит в `styles.css`. Файл `styles.css` сборка перенесёт в ```shell └── build/ └── styles/ - └── index.css + └── styles.css ``` ## Работа с графикой diff --git a/source/index.html b/source/index.html index b4940b241..1eddeaf49 100644 --- a/source/index.html +++ b/source/index.html @@ -4,7 +4,7 @@ Название проекта - + From ab72319697b9b7a11d02a465124faa84372afbc4 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Wed, 8 Nov 2023 19:29:39 +0300 Subject: [PATCH 009/116] Closed #49 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index da494c931..860af277d 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,7 @@ ├── .editorconfig # Настройки форматирования текстовых файлов ├── .eslintrc # Правила для eslint ├── .gitignore # Настройки игнорирования файлов для git +├── .linthtmlrc # Правила для linthtml ├── .stylelintrc # Правила для stylelint ├── gulpfile.js # Автоматизация для Gulp ├── package.json # Зависимости проекта, скрипты, настройки проекта From 64d1f14659c0c44996ae69469f1dee3cf242a31c Mon Sep 17 00:00:00 2001 From: firefoxic Date: Fri, 17 Nov 2023 09:04:36 +0300 Subject: [PATCH 010/116] Move the raw files to a more intuitive place --- .gitignore | 7 +++++-- gulpfile.js | 16 +++++++++++----- {source/.raw => raw/images}/README.md | 9 +++++++-- 3 files changed, 23 insertions(+), 9 deletions(-) rename {source/.raw => raw/images}/README.md (60%) diff --git a/.gitignore b/.gitignore index 94305fd5a..0e35b8715 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,8 @@ node_modules build .idea .DS_Store -source/.raw/ -!source/.raw/**/README.md +raw/**/*.jpg +raw/**/*.jpeg +raw/**/*.png +raw/**/*.svg +!raw/**/README.md diff --git a/gulpfile.js b/gulpfile.js index fe56dca95..d132307df 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -47,7 +47,7 @@ export function processScripts () { .pipe(browser.stream()); } -export function optimizeImages () { +export function optimizeRaster () { const RAW_DENSITY = 2; const TARGET_FORMATS = [undefined, 'webp']; // undefined — initial format: jpg or png @@ -70,15 +70,22 @@ export function optimizeImages () { return { formats }; } - return gulp.src('source/.raw/**/*.{png,jpg,jpeg}') + return gulp.src('raw/images/**/*.{png,jpg,jpeg}') .pipe(sharp(createOptionsFormat())) .pipe(gulp.dest('source/images')); } export function optimizeVector () { - return gulp.src(['source/images/**/*.svg', '!source/images/icons/**/*.svg']) + return gulp.src(['raw/images/**/*.svg']) .pipe(svgo()) - .pipe(gulp.dest('build/images')); + .pipe(gulp.dest('source/images')); +} + +export function optimizeImages (done) { + gulp.parallel( + optimizeVector, + optimizeRaster + )(done); } export function createStack () { @@ -131,7 +138,6 @@ function compileProject (done) { processMarkup, processStyles, processScripts, - optimizeVector, createStack, copyAssets, )(done); diff --git a/source/.raw/README.md b/raw/images/README.md similarity index 60% rename from source/.raw/README.md rename to raw/images/README.md index 155f35069..0f29eeeac 100644 --- a/source/.raw/README.md +++ b/raw/images/README.md @@ -1,12 +1,17 @@ # Папка для оригиналов изображений -Сюда нужно скидывать неоптимизированные `png` и `jpg` двойной плотности пикселей. +Сюда нужно скидывать неоптимизированные: -Для каждого изображения в этой папке запуск команды `npm run optimizeImages` создат в `source/images`: +1. контентные `svg` (не иконки), например логотип. +2. `png` и `jpg` двойной плотности пикселей. + +Для каждого растрового изображения в этой папке запуск команды `npm run optimizeImages` создат в `source/images`: - оптимизированную копию с суффиксом `@2x`, - оптимизированную уменьшенную в 2 раза копию с суффиксом `@1x`, - копию в прогрессивном формате `webp` с суффиксом `@2x`, - уменьшенную в 2 раза копию в формате `webp` с суффиксом `@1x`. +Эта же команда создаст оптимизированную копию каждого векторного изображения. + После оптимизации оригиналы можно удалить, чтобы повторный запуск для новых изображений не генерировал заново уже имеющиеся файлы. From f39668a228029d28cd1eca27cece8c7506a888a6 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Fri, 17 Nov 2023 10:36:50 +0300 Subject: [PATCH 011/116] Move `icons/` from `images/` --- README.md | 31 ++++++++++++++++--------- gulpfile.js | 10 ++++---- raw/icons/README.md | 3 +++ source/icons/README.md | 17 ++++++++++++++ source/images/README.md | 43 +++++++++++++++-------------------- source/images/icons/README.md | 1 - 6 files changed, 62 insertions(+), 43 deletions(-) create mode 100644 raw/icons/README.md create mode 100644 source/icons/README.md delete mode 100644 source/images/icons/README.md diff --git a/README.md b/README.md index 860af277d..e65ae778b 100644 --- a/README.md +++ b/README.md @@ -69,8 +69,8 @@ │ └── gh-pages.yml # Публикует проект и создаёт ссылку на проект ├── source/ # Исходники проекта │ ├── fonts/ # Папка для шрифтов +│ ├── icons/ # Специальная папка для преобразования svg в спрайт (stack) │ ├── images/ # Папка для хранения картинок -│ │ └── icons/ # Специальная папка для преобразования svg в спрайт(stack) │ ├── scripts/ # Скрипты │ │ └── index.js # Главный скрипт │ ├── styles/ # Папка для препроцессорных файлов sass @@ -101,7 +101,7 @@ ## Дополнительные команды -- `npm run optimizeImages` - создаёт оптимизированные изображения в `source/images/` +- `npm run optimizeImages` - создаёт оптимизированные изображения в `source/images/` и `source/icons/` - `npm run preview` - позволяет посмотреть результат работы prod-версии сборки - `npm run lint` - запускает все проверки (занимает длительное время) - `npm run lint:bem` - проверяет правильное использование БЭМ в разметке @@ -171,33 +171,42 @@ ## Работа с графикой -Абсолютно всю растровую графику с двухкратной плотностью из макета складывайте в `source/.raw`. Здесь графика игнорируется гитом. +### Растр + +Абсолютно всю растровую графику с двухкратной плотностью из макета складывайте в `raw/images/`. Здесь графика игнорируется гитом. После того как добавите графику сразу запускайте команду `npm run optimizeImages` для оптимизации графики и создания `.webp`-версии. Команду нужно запускать один раз при появлении новой графики в проекте. Новая оптимизированная графика разной плотностью и суффиксами плотности в именах файлов появится в `source/images`. Эту, уже оптимизированную графику нужно коммитить. -Векторную графику для спрайта складывайте в `source/images/icons/`. Автоматизация создаст из иконок файл `stack.svg`. +### Вектор + +Контентную векторную графику (логотип, графики, иллюстрации) также складывайте в `raw/images/`. Запуск той же команды `npm run optimizeImages` поместит оптимизированные копии этих svg-файлов в `source/images/` ```shell -└── source/ - ├── .raw/ +└── raw/ └── images/ - └── icons/ ``` -Всю графику автоматизация перенесёт в `build/images/`. +Векторную графику для спрайта (иконки) складывайте в `raw/icons/`. Запуск той же команды `npm run optimizeImages` поместит оптимизированные копии этих svg-файлов в `source/images/`. + +```shell +└── raw/ + └── icons/ +``` + +При сборке автоматизация перенесёт всю графику из `source/images/` в `build/images/`, а из иконок в `source/icons/` создаст спрайт `build/icons/stack.svg`. ```shell └── build/ + ├── icons # папка для спрайта + │ └── stack.svg # спрайт └── images/ - ├── icons # папка для спрайта - │ └── stack.svg # спрайт ├── bg.jpg ├── bg.webp ├── hero.png ├── hero.webp - └── burger.svg + └── logo.svg ``` ## Работа со шрифтами diff --git a/gulpfile.js b/gulpfile.js index d132307df..8bc7c3fe5 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -76,9 +76,9 @@ export function optimizeRaster () { } export function optimizeVector () { - return gulp.src(['raw/images/**/*.svg']) + return gulp.src(['raw/**/*.svg']) .pipe(svgo()) - .pipe(gulp.dest('source/images')); + .pipe(gulp.dest('source')); } export function optimizeImages (done) { @@ -89,10 +89,9 @@ export function optimizeImages (done) { } export function createStack () { - return gulp.src('source/images/icons/**/*.svg') - .pipe(svgo()) + return gulp.src('source/icons/**/*.svg') .pipe(stacksvg()) - .pipe(gulp.dest('build/images/icons')); + .pipe(gulp.dest('build/icons')); } export function copyAssets () { @@ -102,7 +101,6 @@ export function copyAssets () { 'source/*.webmanifest', 'source/vendor/**/*', 'source/images/**/*', - '!source/images/icons/**/*', '!source/**/README.md', ], { base: 'source' diff --git a/raw/icons/README.md b/raw/icons/README.md new file mode 100644 index 000000000..d3de71cbd --- /dev/null +++ b/raw/icons/README.md @@ -0,0 +1,3 @@ +# Папка для оригиналов иконок + +Сюда нужно скидывать неоптимизированные svg-иконки. Для каждой из них запуск команды `npm run optimizeImages` создат в `source/icons` оптимизированную копию. diff --git a/source/icons/README.md b/source/icons/README.md new file mode 100644 index 000000000..c831b5344 --- /dev/null +++ b/source/icons/README.md @@ -0,0 +1,17 @@ +# Папка для оптимизированных векторных иконок + +```shell +└── source/ + └── icons + ├── tg.svg + ├── vk.svg + └── yt.svg +``` + +Находящиеся здесь иконки станут одним спрайтом: + +```shell +└── build/ + └── icons # папка для спрайта + └── stack.svg # спрайт +``` diff --git a/source/images/README.md b/source/images/README.md index df587b7f9..e31d70777 100644 --- a/source/images/README.md +++ b/source/images/README.md @@ -1,30 +1,23 @@ -# Папка для изображений. +# Папка для отимизированных изображений -Все SVG-иконки предназначенных для спрайта кладите в `images/icons/`: -``` -images/ - icons/ - vk.svg +```shell +└── source/ + └── images/ + ├── bg.jpg + ├── bg.webp + ├── hero.png + ├── hero.webp + └── logo.svg ``` -Остальную векторную и растровую графику кладите непосредственно в папку `images/`: -``` -images/ - bg.jpg - hero.png - burger.svg -``` +Отсюда файлы изображений при сборке без изменений попадают в `build/images/`: -Графику можно группировать папками в `images/`: -``` -images/ - catalog/ - product-1.jpg - product-2.jpg - form/ - check.jpg - uncheck.jpg - bg.jpg - hero.png - burger.svg +```shell +└── build/ + └── images/ + ├── bg.jpg + ├── bg.webp + ├── hero.png + ├── hero.webp + └── logo.svg ``` diff --git a/source/images/icons/README.md b/source/images/icons/README.md deleted file mode 100644 index d06ee4673..000000000 --- a/source/images/icons/README.md +++ /dev/null @@ -1 +0,0 @@ -# Папка для векторных иконок, которые станут спрайтом в `build/images/icons/stack.svg`. From bfca3b59ebae0897d15318a1063c1739f2f74e48 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Fri, 17 Nov 2023 10:37:29 +0300 Subject: [PATCH 012/116] Add config for `svgo` --- svgo.config.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 svgo.config.js diff --git a/svgo.config.js b/svgo.config.js new file mode 100644 index 000000000..356b45591 --- /dev/null +++ b/svgo.config.js @@ -0,0 +1,22 @@ +export default { + multipass: true, + plugins: [ + { + name: 'preset-default', + params: { + overrides: { + // customize options for plugins included in preset + convertPathData: { + floatPrecision: 2, + forceAbsolutePath: false, + utilizeAbsolute: false, + }, + // or disable plugins + removeViewBox: false, + }, + }, + }, + // enable builtin plugin not included in default preset + 'removeDimensions', + ], +}; From 5530547b9c65f7365feeeb0a26d8d9119a21c031 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Fri, 17 Nov 2023 17:19:05 +0300 Subject: [PATCH 013/116] Remove references to `woff` format --- README.md | 4 +--- source/fonts/README.md | 32 ++++++++++++++++++-------------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index e65ae778b..80a633cd3 100644 --- a/README.md +++ b/README.md @@ -217,9 +217,7 @@ └── build/ └── fonts/ ├── open-sans.woff2 - ├── open-sans.woff - ├── open-sans-bold.woff - └── open-sans-bold.woff + └── open-sans-bold.woff2 ``` diff --git a/source/fonts/README.md b/source/fonts/README.md index fbffbc1b5..813edcb7e 100644 --- a/source/fonts/README.md +++ b/source/fonts/README.md @@ -1,17 +1,21 @@ -# Папка для шрифтов: -``` -fonts/ - pt-sans-bold.woff2 - pt-sans-bold.woff -``` +# Папка для шрифтов -Если в проекте используется несколько шрифтов, то для каждого семейства можно использовать отдельную папку: +```shell +└── source/ + └── fonts/ + ├── pt-sans-400.woff2 + └── pt-sans-700.woff2 ``` -fonts/ - pt-sans/ - pt-sans-bold.woff2 - pt-sans-bold.woff - tt-norms/ - tt-norms-regular.woff2 - tt-norms-regular.woff + +Если в проекте используется несколько шрифтов, то для каждого семейства можно использовать отдельную папку: + +```shell +└── source/ + └── fonts/ + ├── pt-sans/ + │ ├── pt-sans-bold.woff2 + │ └── pt-sans-bold.woff + └── tt-norms/ + ├── tt-norms-regular.woff2 + └── tt-norms-regular.woff ``` From db728082f018ef8e91bfa9e46d6bf030fd8d7c4d Mon Sep 17 00:00:00 2001 From: firefoxic Date: Fri, 17 Nov 2023 17:52:48 +0300 Subject: [PATCH 014/116] Destructurize gulp --- gulpfile.js | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 8bc7c3fe5..e3eaff72b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -14,21 +14,22 @@ import { deleteAsync } from 'del'; import browser from 'browser-sync'; import bemlinter from 'gulp-html-bemlinter'; +const { src, dest, watch, series, parallel } = gulp; const sass = gulpSass(dartSass); let isDevelopment = true; export function processMarkup () { - return gulp.src('source/*.html') - .pipe(gulp.dest('build')); + return src('source/*.html') + .pipe(dest('build')); } export function lintBem () { - return gulp.src('source/*.html') + return src('source/*.html') .pipe(bemlinter()); } export function processStyles () { - return gulp.src('source/styles/*.scss', { sourcemaps: isDevelopment }) + return src('source/styles/*.scss', { sourcemaps: isDevelopment }) .pipe(plumber()) .pipe(sass().on('error', sass.logError)) .pipe(postcss([ @@ -36,14 +37,14 @@ export function processStyles () { autoprefixer(), csso() ])) - .pipe(gulp.dest('build/styles', { sourcemaps: isDevelopment })) + .pipe(dest('build/styles', { sourcemaps: isDevelopment })) .pipe(browser.stream()); } export function processScripts () { - return gulp.src('source/scripts/**/*.js') + return src('source/scripts/**/*.js') .pipe(terser()) - .pipe(gulp.dest('build/scripts')) + .pipe(dest('build/scripts')) .pipe(browser.stream()); } @@ -70,32 +71,32 @@ export function optimizeRaster () { return { formats }; } - return gulp.src('raw/images/**/*.{png,jpg,jpeg}') + return src('raw/images/**/*.{png,jpg,jpeg}') .pipe(sharp(createOptionsFormat())) - .pipe(gulp.dest('source/images')); + .pipe(dest('source/images')); } export function optimizeVector () { - return gulp.src(['raw/**/*.svg']) + return src(['raw/**/*.svg']) .pipe(svgo()) - .pipe(gulp.dest('source')); + .pipe(dest('source')); } export function optimizeImages (done) { - gulp.parallel( + parallel( optimizeVector, optimizeRaster )(done); } export function createStack () { - return gulp.src('source/icons/**/*.svg') + return src('source/icons/**/*.svg') .pipe(stacksvg()) - .pipe(gulp.dest('build/icons')); + .pipe(dest('build/icons')); } export function copyAssets () { - return gulp.src([ + return src([ 'source/fonts/**/*.{woff2,woff}', 'source/*.ico', 'source/*.webmanifest', @@ -105,7 +106,7 @@ export function copyAssets () { ], { base: 'source' }) - .pipe(gulp.dest('build')); + .pipe(dest('build')); } export function startServer (done) { @@ -126,13 +127,13 @@ function reloadServer (done) { } function watchFiles () { - gulp.watch('source/styles/**/*.scss', gulp.series(processStyles)); - gulp.watch('source/scripts/**/*.js', gulp.series(processScripts)); - gulp.watch('source/*.html', gulp.series(processMarkup, reloadServer)); + watch('source/styles/**/*.scss', series(processStyles)); + watch('source/scripts/**/*.js', series(processScripts)); + watch('source/*.html', series(processMarkup, reloadServer)); } function compileProject (done) { - gulp.parallel( + parallel( processMarkup, processStyles, processScripts, @@ -147,14 +148,14 @@ function deleteBuild () { export function buildProd (done) { isDevelopment = false; - gulp.series( + series( deleteBuild, compileProject )(done); } export function runDev (done) { - gulp.series( + series( deleteBuild, compileProject, startServer, From 5e38bea086a2deb93b047e343bae8b02f8bac698 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Fri, 17 Nov 2023 18:59:26 +0300 Subject: [PATCH 015/116] =?UTF-8?q?Move=20`icons/`=20back=20to=C2=A0`image?= =?UTF-8?q?s/`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 18 +++++++++++------- gulpfile.js | 5 +++-- raw/{ => images}/icons/README.md | 2 +- source/icons/README.md | 17 ----------------- source/images/icons/README.md | 19 +++++++++++++++++++ 5 files changed, 34 insertions(+), 27 deletions(-) rename raw/{ => images}/icons/README.md (77%) delete mode 100644 source/icons/README.md create mode 100644 source/images/icons/README.md diff --git a/README.md b/README.md index 80a633cd3..0b05c9bc9 100644 --- a/README.md +++ b/README.md @@ -67,10 +67,13 @@ │ └── workflows/ # Автоматизация для github actions │ ├── check.yml # Запускает линтеры на Гитхабе │ └── gh-pages.yml # Публикует проект и создаёт ссылку на проект +├── raw/ # Папка для «сырых» файлов (игнорируются гитом) +│ └── images/ # Папка для оригиналов картинок +│ └── icons/ # Папка для оригиналов svg-иконок ├── source/ # Исходники проекта │ ├── fonts/ # Папка для шрифтов -│ ├── icons/ # Специальная папка для преобразования svg в спрайт (stack) -│ ├── images/ # Папка для хранения картинок +│ ├── images/ # Папка для оптимизированных картинок +│ │ └── icons/ # Папка для оптимизированных svg-иконок для преобразования их в спрайт (stack) │ ├── scripts/ # Скрипты │ │ └── index.js # Главный скрипт │ ├── styles/ # Папка для препроцессорных файлов sass @@ -191,17 +194,18 @@ Векторную графику для спрайта (иконки) складывайте в `raw/icons/`. Запуск той же команды `npm run optimizeImages` поместит оптимизированные копии этих svg-файлов в `source/images/`. ```shell -└── raw/ - └── icons/ +└── source/ + └── images/ + └── icons/ ``` -При сборке автоматизация перенесёт всю графику из `source/images/` в `build/images/`, а из иконок в `source/icons/` создаст спрайт `build/icons/stack.svg`. +При сборке автоматизация перенесёт всю графику из `source/images/` в `build/images/`, а из иконок в `source/images/icons/` создаст спрайт `build/images/icons/stack.svg`. ```shell └── build/ - ├── icons # папка для спрайта - │ └── stack.svg # спрайт └── images/ + ├── icons/ # папка для спрайта + │ └── stack.svg # спрайт ├── bg.jpg ├── bg.webp ├── hero.png diff --git a/gulpfile.js b/gulpfile.js index e3eaff72b..117f34fe0 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -90,9 +90,9 @@ export function optimizeImages (done) { } export function createStack () { - return src('source/icons/**/*.svg') + return src('source/images/icons/**/*.svg') .pipe(stacksvg()) - .pipe(dest('build/icons')); + .pipe(dest('build/images/icons')); } export function copyAssets () { @@ -102,6 +102,7 @@ export function copyAssets () { 'source/*.webmanifest', 'source/vendor/**/*', 'source/images/**/*', + '!source/images/icons/**/*', '!source/**/README.md', ], { base: 'source' diff --git a/raw/icons/README.md b/raw/images/icons/README.md similarity index 77% rename from raw/icons/README.md rename to raw/images/icons/README.md index d3de71cbd..5c2243a0a 100644 --- a/raw/icons/README.md +++ b/raw/images/icons/README.md @@ -1,3 +1,3 @@ # Папка для оригиналов иконок -Сюда нужно скидывать неоптимизированные svg-иконки. Для каждой из них запуск команды `npm run optimizeImages` создат в `source/icons` оптимизированную копию. +Сюда нужно скидывать неоптимизированные svg-иконки. Для каждой из них запуск команды `npm run optimizeImages` создат в `source/images/icons` оптимизированную копию. diff --git a/source/icons/README.md b/source/icons/README.md deleted file mode 100644 index c831b5344..000000000 --- a/source/icons/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Папка для оптимизированных векторных иконок - -```shell -└── source/ - └── icons - ├── tg.svg - ├── vk.svg - └── yt.svg -``` - -Находящиеся здесь иконки станут одним спрайтом: - -```shell -└── build/ - └── icons # папка для спрайта - └── stack.svg # спрайт -``` diff --git a/source/images/icons/README.md b/source/images/icons/README.md new file mode 100644 index 000000000..a6b85f725 --- /dev/null +++ b/source/images/icons/README.md @@ -0,0 +1,19 @@ +# Папка для оптимизированных векторных иконок + +```shell +└── source/ + └── images/ + └── icons/ + ├── tg.svg + ├── vk.svg + └── yt.svg +``` + +Находящиеся здесь иконки станут одним спрайтом: + +```shell +└── build/ + └── images/ + └── icons/ # папка для спрайта + └── stack.svg # спрайт +``` From da4addf01d91deaf63c2b17eb10322f58dd71edd Mon Sep 17 00:00:00 2001 From: firefoxic Date: Fri, 17 Nov 2023 19:29:35 +0300 Subject: [PATCH 016/116] =?UTF-8?q?Move=20base=20paths=20to=C2=A0constants?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gulpfile.js | 57 ++++++++++++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 117f34fe0..ced1b4de0 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -16,20 +16,23 @@ import bemlinter from 'gulp-html-bemlinter'; const { src, dest, watch, series, parallel } = gulp; const sass = gulpSass(dartSass); +const PATH_TO_SOURCE = './source/'; +const PATH_TO_DIST = './build/'; +const PATH_TO_RAW = './raw/'; let isDevelopment = true; export function processMarkup () { - return src('source/*.html') - .pipe(dest('build')); + return src(`${PATH_TO_SOURCE}*.html`) + .pipe(dest(PATH_TO_DIST)); } export function lintBem () { - return src('source/*.html') + return src(`${PATH_TO_SOURCE}*.html`) .pipe(bemlinter()); } export function processStyles () { - return src('source/styles/*.scss', { sourcemaps: isDevelopment }) + return src(`${PATH_TO_SOURCE}styles/*.scss`, { sourcemaps: isDevelopment }) .pipe(plumber()) .pipe(sass().on('error', sass.logError)) .pipe(postcss([ @@ -37,14 +40,14 @@ export function processStyles () { autoprefixer(), csso() ])) - .pipe(dest('build/styles', { sourcemaps: isDevelopment })) + .pipe(dest(`${PATH_TO_DIST}styles`, { sourcemaps: isDevelopment })) .pipe(browser.stream()); } export function processScripts () { - return src('source/scripts/**/*.js') + return src(`${PATH_TO_SOURCE}scripts/**/*.js`) .pipe(terser()) - .pipe(dest('build/scripts')) + .pipe(dest(`${PATH_TO_DIST}scripts`)) .pipe(browser.stream()); } @@ -71,15 +74,15 @@ export function optimizeRaster () { return { formats }; } - return src('raw/images/**/*.{png,jpg,jpeg}') + return src(`${PATH_TO_RAW}images/**/*.{png,jpg,jpeg}`) .pipe(sharp(createOptionsFormat())) - .pipe(dest('source/images')); + .pipe(dest(`${PATH_TO_SOURCE}images`)); } export function optimizeVector () { - return src(['raw/**/*.svg']) + return src([`${PATH_TO_RAW}**/*.svg`]) .pipe(svgo()) - .pipe(dest('source')); + .pipe(dest(PATH_TO_SOURCE)); } export function optimizeImages (done) { @@ -90,30 +93,30 @@ export function optimizeImages (done) { } export function createStack () { - return src('source/images/icons/**/*.svg') + return src(`${PATH_TO_SOURCE}images/icons/**/*.svg`) .pipe(stacksvg()) - .pipe(dest('build/images/icons')); + .pipe(dest(`${PATH_TO_DIST}images/icons`)); } export function copyAssets () { return src([ - 'source/fonts/**/*.{woff2,woff}', - 'source/*.ico', - 'source/*.webmanifest', - 'source/vendor/**/*', - 'source/images/**/*', - '!source/images/icons/**/*', - '!source/**/README.md', + `${PATH_TO_SOURCE}fonts/**/*.{woff2,woff}`, + `${PATH_TO_SOURCE}*.ico`, + `${PATH_TO_SOURCE}*.webmanifest`, + `${PATH_TO_SOURCE}vendor/**/*`, + `${PATH_TO_SOURCE}images/**/*`, + `!${PATH_TO_SOURCE}images/icons/**/*`, + `!${PATH_TO_SOURCE}**/README.md`, ], { - base: 'source' + base: PATH_TO_SOURCE }) - .pipe(dest('build')); + .pipe(dest(PATH_TO_DIST)); } export function startServer (done) { browser.init({ server: { - baseDir: 'build' + baseDir: PATH_TO_DIST }, cors: true, notify: false, @@ -128,9 +131,9 @@ function reloadServer (done) { } function watchFiles () { - watch('source/styles/**/*.scss', series(processStyles)); - watch('source/scripts/**/*.js', series(processScripts)); - watch('source/*.html', series(processMarkup, reloadServer)); + watch(`${PATH_TO_SOURCE}styles/**/*.scss`, series(processStyles)); + watch(`${PATH_TO_SOURCE}scripts/**/*.js`, series(processScripts)); + watch(`${PATH_TO_SOURCE}*.html`, series(processMarkup, reloadServer)); } function compileProject (done) { @@ -144,7 +147,7 @@ function compileProject (done) { } function deleteBuild () { - return deleteAsync('build'); + return deleteAsync(PATH_TO_DIST); } export function buildProd (done) { From b65fefa5a31d6010e7b34354b16db2641f7c015f Mon Sep 17 00:00:00 2001 From: firefoxic Date: Fri, 17 Nov 2023 19:51:28 +0300 Subject: [PATCH 017/116] Rename variable with dev-server to `server` --- gulpfile.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index ced1b4de0..e142ef5e3 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -11,7 +11,7 @@ import sharp from 'gulp-sharp-responsive'; import svgo from 'gulp-svgmin'; import { stacksvg } from 'gulp-stacksvg'; import { deleteAsync } from 'del'; -import browser from 'browser-sync'; +import server from 'browser-sync'; import bemlinter from 'gulp-html-bemlinter'; const { src, dest, watch, series, parallel } = gulp; @@ -41,14 +41,14 @@ export function processStyles () { csso() ])) .pipe(dest(`${PATH_TO_DIST}styles`, { sourcemaps: isDevelopment })) - .pipe(browser.stream()); + .pipe(server.stream()); } export function processScripts () { return src(`${PATH_TO_SOURCE}scripts/**/*.js`) .pipe(terser()) .pipe(dest(`${PATH_TO_DIST}scripts`)) - .pipe(browser.stream()); + .pipe(server.stream()); } export function optimizeRaster () { @@ -114,7 +114,7 @@ export function copyAssets () { } export function startServer (done) { - browser.init({ + server.init({ server: { baseDir: PATH_TO_DIST }, @@ -126,7 +126,7 @@ export function startServer (done) { } function reloadServer (done) { - browser.reload(); + server.reload(); done(); } From 3d5ca9c505742ad7eb412b62805fff2f58f6e4a6 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Fri, 17 Nov 2023 20:19:59 +0300 Subject: [PATCH 018/116] Add templating engine --- gulpfile.js | 9 +- package-lock.json | 227 ++++++++++++++++++++++++++++++++++++++-------- package.json | 1 + 3 files changed, 198 insertions(+), 39 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index e142ef5e3..23cccc4ca 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,5 +1,6 @@ import gulp from 'gulp'; import plumber from 'gulp-plumber'; +import { nunjucksCompile } from 'gulp-nunjucks'; import * as dartSass from 'sass'; import gulpSass from 'gulp-sass'; import postcss from 'gulp-postcss'; @@ -22,8 +23,10 @@ const PATH_TO_RAW = './raw/'; let isDevelopment = true; export function processMarkup () { - return src(`${PATH_TO_SOURCE}*.html`) - .pipe(dest(PATH_TO_DIST)); + return src(`${PATH_TO_SOURCE}**/*.html`) + .pipe(nunjucksCompile()) + .pipe(dest(PATH_TO_DIST)) + .pipe(server.stream()); } export function lintBem () { @@ -133,7 +136,7 @@ function reloadServer (done) { function watchFiles () { watch(`${PATH_TO_SOURCE}styles/**/*.scss`, series(processStyles)); watch(`${PATH_TO_SOURCE}scripts/**/*.js`, series(processScripts)); - watch(`${PATH_TO_SOURCE}*.html`, series(processMarkup, reloadServer)); + watch(`${PATH_TO_SOURCE}**/*.html`, series(processMarkup, reloadServer)); } function compileProject (done) { diff --git a/package-lock.json b/package-lock.json index ed3d87af1..16c37e29c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-html-bemlinter": "2.1.4", + "gulp-nunjucks": "6.0.0", "gulp-plumber": "1.2.1", "gulp-postcss": "9.0.1", "gulp-sass": "5.1.0", @@ -806,6 +807,12 @@ "@types/node": "*" } }, + "node_modules/@types/expect": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", + "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", + "dev": true + }, "node_modules/@types/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", @@ -813,9 +820,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", - "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", + "version": "20.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.1.tgz", + "integrity": "sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -833,12 +840,28 @@ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "dev": true }, + "node_modules/@types/vinyl": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.10.tgz", + "integrity": "sha512-DqN5BjCrmjAtZ1apqzcq2vk2PSW0m1nFfjIafBFkAyddmHxuw3ZAK3omLiSdpuu81+8h07i6U4DtaE38Xsf2xQ==", + "dev": true, + "dependencies": { + "@types/expect": "^1.20.4", + "@types/node": "*" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, + "node_modules/a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", + "dev": true + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -2154,9 +2177,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001561", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", - "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==", + "version": "1.0.30001563", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", + "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", "dev": true, "funding": [ { @@ -2593,10 +2616,13 @@ "dev": true }, "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/concat-map": { "version": "0.0.1", @@ -3416,6 +3442,18 @@ "node": ">= 4.0.0" } }, + "node_modules/easy-transform-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/easy-transform-stream/-/easy-transform-stream-1.0.1.tgz", + "integrity": "sha512-ktkaa6XR7COAR3oj02CF3IOgz2m1hCaY3SfzvKT4Svt2MhHw9XCt+ncJNWfe2TGz31iqzNGZ8spdKQflj+Rlog==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eazy-logger": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", @@ -3517,9 +3555,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.578", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.578.tgz", - "integrity": "sha512-V0ZhSu1BQZKfG0yNEL6Dadzik8E1vAzfpVOapdSiT9F6yapEJ3Bk+4tZ4SMPdWiUchCgnM/ByYtBzp5ntzDMIA==", + "version": "1.4.587", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.587.tgz", + "integrity": "sha512-RyJX0q/zOkAoefZhB9XHghGeATVP0Q3mwA253XD/zj2OeXc+JZB9pCaEv6R578JUYaWM9PRhye0kXvd/V1cQ3Q==", "dev": true }, "node_modules/elliptic": { @@ -3568,9 +3606,9 @@ } }, "node_modules/engine.io": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.3.tgz", - "integrity": "sha512-IML/R4eG/pUS5w7OfcDE0jKrljWS9nwnEfsxWCIJF5eO6AHo6+Hlv+lQbdlAYsiJPHzUthLm1RUjnBzWOs45cw==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", + "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", "dev": true, "dependencies": { "@types/cookie": "^0.4.1", @@ -3589,9 +3627,9 @@ } }, "node_modules/engine.io-client": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.2.tgz", - "integrity": "sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.3.tgz", + "integrity": "sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==", "dev": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -4859,9 +4897,9 @@ } }, "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "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", @@ -4869,7 +4907,7 @@ "rimraf": "^3.0.2" }, "engines": { - "node": ">=12.0.0" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { @@ -6055,6 +6093,59 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/gulp-nunjucks": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gulp-nunjucks/-/gulp-nunjucks-6.0.0.tgz", + "integrity": "sha512-AGeHXnRsXNre6yD3SM8dhOXhrfxsCEBb3SZ7JKXK8bTrIw1jG2BTBKCAr4e4K1ReFTtsHGIZQX93tVoceZ4UrQ==", + "dev": true, + "dependencies": { + "gulp-plugin-extras": "^0.2.2", + "nunjucks": "^3.2.4" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + }, + "peerDependencies": { + "gulp": ">=4" + }, + "peerDependenciesMeta": { + "gulp": { + "optional": true + } + } + }, + "node_modules/gulp-plugin-extras": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/gulp-plugin-extras/-/gulp-plugin-extras-0.2.2.tgz", + "integrity": "sha512-0gssXzTNrrOocYBWN4qOZqd03cz3bxhjxVUPZV9iJdBR0ZZbwMQO/OT8hZChYoc9GjKaA5meaqDr6CjkmKA7BA==", + "dev": true, + "dependencies": { + "@types/vinyl": "^2.0.9", + "chalk": "^5.3.0", + "easy-transform-stream": "^1.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gulp-plugin-extras/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/gulp-plumber": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/gulp-plumber/-/gulp-plumber-1.2.1.tgz", @@ -6805,9 +6896,9 @@ ] }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "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" @@ -9034,6 +9125,40 @@ "node": ">=0.10.0" } }, + "node_modules/nunjucks": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", + "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", + "dev": true, + "dependencies": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "commander": "^5.1.0" + }, + "bin": { + "nunjucks-precompile": "bin/precompile" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "chokidar": "^3.3.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/nunjucks/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -9622,14 +9747,44 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.2.tgz", + "integrity": "sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==", "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, "engines": { "node": "14 || >=16.14" } }, + "node_modules/path-scurry/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/path-scurry/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -11929,9 +12084,9 @@ "dev": true }, "node_modules/streamx": { - "version": "2.15.2", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.2.tgz", - "integrity": "sha512-b62pAV/aeMjUoRN2C/9F0n+G8AfcJjNC0zw/ZmOHeFsIe4m4GzjVW9m6VHXVjk536NbdU9JRwKMJRfkc+zUFTg==", + "version": "2.15.5", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz", + "integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==", "dev": true, "dependencies": { "fast-fifo": "^1.1.0", @@ -12330,12 +12485,12 @@ } }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.1.tgz", - "integrity": "sha512-uLfFktPmRetVCbHe5UPuekWrQ6hENufnA46qEGbfACkK5drjTTdQYUragRgMjHldcbYG+nslUerqMPjbBSHXjQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz", + "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==", "dev": true, "dependencies": { - "flat-cache": "^3.1.1" + "flat-cache": "^3.2.0" }, "engines": { "node": ">=12.0.0" diff --git a/package.json b/package.json index 126716ccf..5a744a4bc 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-html-bemlinter": "2.1.4", + "gulp-nunjucks": "6.0.0", "gulp-plumber": "1.2.1", "gulp-postcss": "9.0.1", "gulp-sass": "5.1.0", From 9fddeaa41fbff17e0236f97dbfd769f2d7343f46 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Fri, 17 Nov 2023 20:28:00 +0300 Subject: [PATCH 019/116] Add html minifier --- gulpfile.js | 2 + package-lock.json | 150 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 3 files changed, 153 insertions(+) diff --git a/gulpfile.js b/gulpfile.js index 23cccc4ca..9b2ff1794 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,6 +1,7 @@ import gulp from 'gulp'; import plumber from 'gulp-plumber'; import { nunjucksCompile } from 'gulp-nunjucks'; +import htmlmin from 'gulp-htmlmin'; import * as dartSass from 'sass'; import gulpSass from 'gulp-sass'; import postcss from 'gulp-postcss'; @@ -25,6 +26,7 @@ let isDevelopment = true; export function processMarkup () { return src(`${PATH_TO_SOURCE}**/*.html`) .pipe(nunjucksCompile()) + .pipe(htmlmin({ collapseWhitespace: !isDevelopment })) .pipe(dest(PATH_TO_DIST)) .pipe(server.stream()); } diff --git a/package-lock.json b/package-lock.json index 16c37e29c..789b05b60 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-html-bemlinter": "2.1.4", + "gulp-htmlmin": "5.0.1", "gulp-nunjucks": "6.0.0", "gulp-plumber": "1.2.1", "gulp-postcss": "9.0.1", @@ -2150,6 +2151,16 @@ "node": ">=6" } }, + "node_modules/camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -2316,6 +2327,18 @@ "node": ">= 0.4" } }, + "node_modules/clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, "node_modules/clean-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", @@ -6093,6 +6116,45 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/gulp-htmlmin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/gulp-htmlmin/-/gulp-htmlmin-5.0.1.tgz", + "integrity": "sha512-ASlyDPZOSKjHYUifYV0rf9JPDflN9IRIb8lw2vRqtYMC4ljU3zAmnnaVXwFQ3H+CfXxZSUesZ2x7jrnPJu93jA==", + "dev": true, + "dependencies": { + "html-minifier": "^3.5.20", + "plugin-error": "^1.0.1", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 6.0" + } + }, + "node_modules/gulp-htmlmin/node_modules/plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "dependencies": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-htmlmin/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/gulp-nunjucks": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gulp-nunjucks/-/gulp-nunjucks-6.0.0.tgz", @@ -6787,6 +6849,33 @@ "node": ">=10" } }, + "node_modules/html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "dependencies": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "bin": { + "html-minifier": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/html-minifier/node_modules/commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, "node_modules/html-tags": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", @@ -8174,6 +8263,12 @@ "loose-envify": "cli.js" } }, + "node_modules/lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", + "dev": true + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -8787,6 +8882,15 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "node_modules/no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "dependencies": { + "lower-case": "^1.1.1" + } + }, "node_modules/node-abi": { "version": "2.30.1", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", @@ -9571,6 +9675,15 @@ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, + "node_modules/param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "dev": true, + "dependencies": { + "no-case": "^2.2.0" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -10715,6 +10828,15 @@ "jsesc": "bin/jsesc" } }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/remove-bom-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", @@ -13382,6 +13504,28 @@ "node": "*" } }, + "node_modules/uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "dependencies": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglify-js/node_modules/commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -13588,6 +13732,12 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", + "dev": true + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", diff --git a/package.json b/package.json index 5a744a4bc..366aa1144 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-html-bemlinter": "2.1.4", + "gulp-htmlmin": "5.0.1", "gulp-nunjucks": "6.0.0", "gulp-plumber": "1.2.1", "gulp-postcss": "9.0.1", From 6988275f395922973d83992c677d9b1928252ce7 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Fri, 17 Nov 2023 21:36:29 +0300 Subject: [PATCH 020/116] Replace `terser` with `esbuild` --- gulpfile.js | 19 +- package-lock.json | 660 +++++++++++++++++++++++++++++++++++----------- package.json | 3 +- 3 files changed, 520 insertions(+), 162 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 9b2ff1794..adfdd8bfa 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -8,7 +8,8 @@ import postcss from 'gulp-postcss'; import postUrl from 'postcss-url'; import autoprefixer from 'autoprefixer'; import csso from 'postcss-csso'; -import terser from 'gulp-terser'; +import { createGulpEsbuild } from 'gulp-esbuild'; +import browserslistToEsbuild from 'browserslist-to-esbuild'; import sharp from 'gulp-sharp-responsive'; import svgo from 'gulp-svgmin'; import { stacksvg } from 'gulp-stacksvg'; @@ -26,7 +27,7 @@ let isDevelopment = true; export function processMarkup () { return src(`${PATH_TO_SOURCE}**/*.html`) .pipe(nunjucksCompile()) - .pipe(htmlmin({ collapseWhitespace: !isDevelopment })) + .pipe(htmlmin({ collapseWhitespace: !isDevelopment })) .pipe(dest(PATH_TO_DIST)) .pipe(server.stream()); } @@ -50,8 +51,18 @@ export function processStyles () { } export function processScripts () { - return src(`${PATH_TO_SOURCE}scripts/**/*.js`) - .pipe(terser()) + const gulpEsbuild = createGulpEsbuild({ incremental: isDevelopment }); + + return src(`${PATH_TO_SOURCE}scripts/*.js`) + .pipe(gulpEsbuild({ + bundle: true, + format: 'esm', + // splitting: true, + platform: 'browser', + minify: !isDevelopment, + sourcemap: isDevelopment, + target: browserslistToEsbuild(), + })) .pipe(dest(`${PATH_TO_DIST}scripts`)) .pipe(server.stream()); } diff --git a/package-lock.json b/package-lock.json index 789b05b60..48700bd07 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,10 +12,12 @@ "@linthtml/linthtml": "0.9.5", "autoprefixer": "10.4.16", "browser-sync": "2.29.3", + "browserslist-to-esbuild": "1.2.0", "del": "7.1.0", "eslint": "8.53.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", + "gulp-esbuild": "0.11.2", "gulp-html-bemlinter": "2.1.4", "gulp-htmlmin": "5.0.1", "gulp-nunjucks": "6.0.0", @@ -25,7 +27,6 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "gulp-terser": "2.1.0", "linthtml-config-htmlacademy": "1.0.12", "npm-run-all": "4.1.5", "postcss": "8.4.31", @@ -313,6 +314,358 @@ "postcss-selector-parser": "^6.0.13" } }, + "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", @@ -581,64 +934,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, "node_modules/@linthtml/cli": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@linthtml/cli/-/cli-0.9.5.tgz", @@ -2018,6 +2313,18 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/browserslist-to-esbuild": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserslist-to-esbuild/-/browserslist-to-esbuild-1.2.0.tgz", + "integrity": "sha512-ftrrbI/VHBgEnmnSyhkqvQVMp6jAKybfs0qMIlm7SLBrQTGMsdCIP4q3BoKeLsZTBQllIQtY9kbxgRYV2WU47g==", + "dev": true, + "dependencies": { + "browserslist": "^4.17.3" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/bs-recipes": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/bs-recipes/-/bs-recipes-1.3.4.tgz", @@ -3901,6 +4208,43 @@ "es6-symbol": "^3.1.1" } }, + "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", @@ -6092,6 +6436,20 @@ "object.assign": "^4.1.0" } }, + "node_modules/gulp-esbuild": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/gulp-esbuild/-/gulp-esbuild-0.11.2.tgz", + "integrity": "sha512-skS81h8Rco/JpWxnU8IWFUnhYVSy9Y7ImpmpKNCf1N5+h4i8OMfaPzHF+F8X2rP+Rv0QarpTjHGodSU4OwRsTA==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.7", + "plugin-error": "^2.0.1", + "vinyl": "^3.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/gulp-html-bemlinter": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/gulp-html-bemlinter/-/gulp-html-bemlinter-2.1.4.tgz", @@ -6460,6 +6818,32 @@ "node": ">= 0.10" } }, + "node_modules/gulp-sharp-responsive/node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-sharp-responsive/node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/gulp-stacksvg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/gulp-stacksvg/-/gulp-stacksvg-3.0.0.tgz", @@ -6474,22 +6858,6 @@ "node": "^18.18.2 || ^20.9.0" } }, - "node_modules/gulp-stacksvg/node_modules/vinyl": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", - "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", - "dev": true, - "dependencies": { - "clone": "^2.1.2", - "clone-stats": "^1.0.0", - "remove-trailing-separator": "^1.1.0", - "replace-ext": "^2.0.0", - "teex": "^1.0.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/gulp-svgmin": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/gulp-svgmin/-/gulp-svgmin-4.1.0.tgz", @@ -6516,36 +6884,6 @@ "node": ">= 0.10" } }, - "node_modules/gulp-terser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/gulp-terser/-/gulp-terser-2.1.0.tgz", - "integrity": "sha512-lQ3+JUdHDVISAlUIUSZ/G9Dz/rBQHxOiYDQ70IVWFQeh4b33TC1MCIU+K18w07PS3rq/CVc34aQO4SUbdaNMPQ==", - "dev": true, - "dependencies": { - "plugin-error": "^1.0.1", - "terser": "^5.9.0", - "through2": "^4.0.2", - "vinyl-sourcemaps-apply": "^0.2.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gulp-terser/node_modules/plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "dependencies": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/gulplog": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", @@ -12009,16 +12347,6 @@ "urix": "^0.1.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/source-map-url": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", @@ -13116,30 +13444,6 @@ "streamx": "^2.12.5" } }, - "node_modules/terser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", - "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -13853,20 +14157,19 @@ } }, "node_modules/vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", "dev": true, "dependencies": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", + "clone": "^2.1.2", "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" + "remove-trailing-separator": "^1.1.0", + "replace-ext": "^2.0.0", + "teex": "^1.0.1" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/vinyl-fs": { @@ -13897,6 +14200,15 @@ "node": ">= 0.10" } }, + "node_modules/vinyl-fs/node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/vinyl-fs/node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -13907,6 +14219,23 @@ "xtend": "~4.0.1" } }, + "node_modules/vinyl-fs/node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/vinyl-sourcemap": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", @@ -13937,6 +14266,32 @@ "node": ">=0.10.0" } }, + "node_modules/vinyl-sourcemap/node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/vinyl-sourcemaps-apply": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", @@ -13955,15 +14310,6 @@ "node": ">=0.10.0" } }, - "node_modules/vinyl/node_modules/replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", diff --git a/package.json b/package.json index 366aa1144..0d1ca3bd5 100644 --- a/package.json +++ b/package.json @@ -7,10 +7,12 @@ "@linthtml/linthtml": "0.9.5", "autoprefixer": "10.4.16", "browser-sync": "2.29.3", + "browserslist-to-esbuild": "1.2.0", "del": "7.1.0", "eslint": "8.53.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", + "gulp-esbuild": "0.11.2", "gulp-html-bemlinter": "2.1.4", "gulp-htmlmin": "5.0.1", "gulp-nunjucks": "6.0.0", @@ -20,7 +22,6 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "gulp-terser": "2.1.0", "linthtml-config-htmlacademy": "1.0.12", "npm-run-all": "4.1.5", "postcss": "8.4.31", From b95ff71c12c9468cabf3c566f4570361aead0ee9 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 18 Nov 2023 12:29:26 +0300 Subject: [PATCH 021/116] Move file watching into server startup task --- gulpfile.js | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index adfdd8bfa..eeda700b3 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -129,7 +129,7 @@ export function copyAssets () { .pipe(dest(PATH_TO_DIST)); } -export function startServer (done) { +export function startServer () { server.init({ server: { baseDir: PATH_TO_DIST @@ -138,7 +138,10 @@ export function startServer (done) { notify: false, ui: false, }); - done(); + + watch(`${PATH_TO_SOURCE}styles/**/*.scss`, series(processStyles)); + watch(`${PATH_TO_SOURCE}scripts/**/*.js`, series(processScripts)); + watch(`${PATH_TO_SOURCE}**/*.html`, series(processMarkup, reloadServer)); } function reloadServer (done) { @@ -146,12 +149,6 @@ function reloadServer (done) { done(); } -function watchFiles () { - watch(`${PATH_TO_SOURCE}styles/**/*.scss`, series(processStyles)); - watch(`${PATH_TO_SOURCE}scripts/**/*.js`, series(processScripts)); - watch(`${PATH_TO_SOURCE}**/*.html`, series(processMarkup, reloadServer)); -} - function compileProject (done) { parallel( processMarkup, @@ -179,6 +176,5 @@ export function runDev (done) { deleteBuild, compileProject, startServer, - watchFiles )(done); } From 673fcd1b3300a2356c691890e38cd0374ff52878 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 18 Nov 2023 12:50:24 +0300 Subject: [PATCH 022/116] Move all static file paths to constant --- gulpfile.js | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index eeda700b3..4eacbb6f4 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -22,6 +22,15 @@ const sass = gulpSass(dartSass); const PATH_TO_SOURCE = './source/'; const PATH_TO_DIST = './build/'; const PATH_TO_RAW = './raw/'; +const PATHS_TO_STATIC = [ + `${PATH_TO_SOURCE}fonts/**/*.{woff2,woff}`, + `${PATH_TO_SOURCE}*.ico`, + `${PATH_TO_SOURCE}*.webmanifest`, + `${PATH_TO_SOURCE}vendor/**/*`, + `${PATH_TO_SOURCE}images/**/*`, + `!${PATH_TO_SOURCE}images/icons/**/*`, + `!${PATH_TO_SOURCE}**/README.md`, +]; let isDevelopment = true; export function processMarkup () { @@ -115,17 +124,7 @@ export function createStack () { } export function copyAssets () { - return src([ - `${PATH_TO_SOURCE}fonts/**/*.{woff2,woff}`, - `${PATH_TO_SOURCE}*.ico`, - `${PATH_TO_SOURCE}*.webmanifest`, - `${PATH_TO_SOURCE}vendor/**/*`, - `${PATH_TO_SOURCE}images/**/*`, - `!${PATH_TO_SOURCE}images/icons/**/*`, - `!${PATH_TO_SOURCE}**/README.md`, - ], { - base: PATH_TO_SOURCE - }) + return src(PATHS_TO_STATIC, { base: PATH_TO_SOURCE }) .pipe(dest(PATH_TO_DIST)); } From e198a55adb2b2962c816ee8c1a62c8054b4310cb Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 18 Nov 2023 12:54:36 +0300 Subject: [PATCH 023/116] Add watcher for static files --- gulpfile.js | 1 + 1 file changed, 1 insertion(+) diff --git a/gulpfile.js b/gulpfile.js index 4eacbb6f4..8cf9e2687 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -141,6 +141,7 @@ export function startServer () { watch(`${PATH_TO_SOURCE}styles/**/*.scss`, series(processStyles)); watch(`${PATH_TO_SOURCE}scripts/**/*.js`, series(processScripts)); watch(`${PATH_TO_SOURCE}**/*.html`, series(processMarkup, reloadServer)); + watch(PATHS_TO_STATIC, series(copyAssets, reloadServer)); } function reloadServer (done) { From 484a28ac628fd39ebfb7b3f774d6965e70377c84 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 18 Nov 2023 12:41:08 +0300 Subject: [PATCH 024/116] Add watcher for icons --- gulpfile.js | 1 + 1 file changed, 1 insertion(+) diff --git a/gulpfile.js b/gulpfile.js index 8cf9e2687..9aa1ab25b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -141,6 +141,7 @@ export function startServer () { watch(`${PATH_TO_SOURCE}styles/**/*.scss`, series(processStyles)); watch(`${PATH_TO_SOURCE}scripts/**/*.js`, series(processScripts)); watch(`${PATH_TO_SOURCE}**/*.html`, series(processMarkup, reloadServer)); + watch(`${PATH_TO_SOURCE}images/icons/**/*.svg`, series(createStack, reloadServer)); watch(PATHS_TO_STATIC, series(copyAssets, reloadServer)); } From 1178006cbf58e3af677e627a6273a046191e9314 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 18 Nov 2023 12:42:17 +0300 Subject: [PATCH 025/116] Fix markup watcher --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index 9aa1ab25b..3c0f6e2b5 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -138,9 +138,9 @@ export function startServer () { ui: false, }); + watch(`${PATH_TO_SOURCE}**/*.{html,njk}`, series(processMarkup)); watch(`${PATH_TO_SOURCE}styles/**/*.scss`, series(processStyles)); watch(`${PATH_TO_SOURCE}scripts/**/*.js`, series(processScripts)); - watch(`${PATH_TO_SOURCE}**/*.html`, series(processMarkup, reloadServer)); watch(`${PATH_TO_SOURCE}images/icons/**/*.svg`, series(createStack, reloadServer)); watch(PATHS_TO_STATIC, series(copyAssets, reloadServer)); } From 6bc9d1866b329e49cbffb200c1c877377f4b5648 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 18 Nov 2023 13:50:57 +0300 Subject: [PATCH 026/116] Add folder for favicon files --- README.md | 18 ++++++++++++++++++ gulpfile.js | 1 + source/favicons/README.md | 12 ++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 source/favicons/README.md diff --git a/README.md b/README.md index 0b05c9bc9..380acd049 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ │ └── images/ # Папка для оригиналов картинок │ └── icons/ # Папка для оригиналов svg-иконок ├── source/ # Исходники проекта +│ ├── favicons/ # Папка для фавиконок (кроме favicon.ico) │ ├── fonts/ # Папка для шрифтов │ ├── images/ # Папка для оптимизированных картинок │ │ └── icons/ # Папка для оптимизированных svg-иконок для преобразования их в спрайт (stack) @@ -213,6 +214,23 @@ └── logo.svg ``` +### Фавиконки + +Варианты фавиконок форматов PNG и SVG следует размещать в `source/favicons/`. + +Файлы `favicon.ico` и `manifest.webmanifest` — в `source/`: + +```shell +└── source/ + ├── favicons/ + │ ├── 180.png + │ ├── 192.png + │ ├── 512.png + │ └── icon.svg + ├── favicon.ico + └── manifest.webmanifest +``` + ## Работа со шрифтами Все шрифтовые файлы лежат в `source/fonts/`. Сборка переносит их в `build/fonts/`. diff --git a/gulpfile.js b/gulpfile.js index 3c0f6e2b5..d56548647 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -26,6 +26,7 @@ const PATHS_TO_STATIC = [ `${PATH_TO_SOURCE}fonts/**/*.{woff2,woff}`, `${PATH_TO_SOURCE}*.ico`, `${PATH_TO_SOURCE}*.webmanifest`, + `${PATH_TO_SOURCE}favicons/*.{png,svg}`, `${PATH_TO_SOURCE}vendor/**/*`, `${PATH_TO_SOURCE}images/**/*`, `!${PATH_TO_SOURCE}images/icons/**/*`, diff --git a/source/favicons/README.md b/source/favicons/README.md new file mode 100644 index 000000000..21c824385 --- /dev/null +++ b/source/favicons/README.md @@ -0,0 +1,12 @@ +# Папка для фавиконок + +Здесь должны находиться все необходимые варианты фавиконок, кроме `favicon.ico`, который должен быть в `source/`. + +```shell +└── source/ + └── favicons/ + ├── 180.png # для старых iPhone + ├── 192.png + ├── 512.png + └── icon.svg +``` From 30e23b2e7b95d0bb14a2b5b340d4cfd5b2823a5d Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 18 Nov 2023 14:03:43 +0300 Subject: [PATCH 027/116] Add page for 404 error --- gulpfile.js | 7 +++++++ source/404.html | 14 ++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 source/404.html diff --git a/gulpfile.js b/gulpfile.js index d56548647..36bf18c90 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,3 +1,5 @@ +import { readFileSync } from 'node:fs'; + import gulp from 'gulp'; import plumber from 'gulp-plumber'; import { nunjucksCompile } from 'gulp-nunjucks'; @@ -137,6 +139,11 @@ export function startServer () { cors: true, notify: false, ui: false, + }, (err, bs) => { + bs.addMiddleware('*', (req, res) => { + res.write(readFileSync(`${PATH_TO_DIST}404.html`)); + res.end(); + }); }); watch(`${PATH_TO_SOURCE}**/*.{html,njk}`, series(processMarkup)); diff --git a/source/404.html b/source/404.html new file mode 100644 index 000000000..100088840 --- /dev/null +++ b/source/404.html @@ -0,0 +1,14 @@ + + + + + 404 + + + + + +

404

+

Страница не найдена. Перейти на главную.

+ + From 950a8d3cd689660a90fa22d4e92b86e4e6267bb4 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 18 Nov 2023 14:46:46 +0300 Subject: [PATCH 028/116] Add dev routing to static files --- gulpfile.js | 51 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 39 insertions(+), 12 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 36bf18c90..aa1eecd8c 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -136,6 +136,32 @@ export function startServer () { server: { baseDir: PATH_TO_DIST }, + serveStatic: [ + { + route: '/fonts', + dir: `${PATH_TO_SOURCE}fonts`, + }, + { + route: '/*.ico', + dir: `${PATH_TO_SOURCE}*.ico`, + }, + { + route: '/*.webmanifest', + dir: `${PATH_TO_SOURCE}*.webmanifest`, + }, + { + route: '/favicons', + dir: `${PATH_TO_SOURCE}favicons`, + }, + { + route: '/vendor', + dir: `${PATH_TO_SOURCE}vendor`, + }, + { + route: '/images', + dir: `${PATH_TO_SOURCE}images`, + }, + ], cors: true, notify: false, ui: false, @@ -158,16 +184,6 @@ function reloadServer (done) { done(); } -function compileProject (done) { - parallel( - processMarkup, - processStyles, - processScripts, - createStack, - copyAssets, - )(done); -} - function deleteBuild () { return deleteAsync(PATH_TO_DIST); } @@ -176,14 +192,25 @@ export function buildProd (done) { isDevelopment = false; series( deleteBuild, - compileProject + parallel( + processMarkup, + processStyles, + processScripts, + createStack, + copyAssets, + ), )(done); } export function runDev (done) { series( deleteBuild, - compileProject, + parallel( + processMarkup, + processStyles, + processScripts, + createStack, + ), startServer, )(done); } From 875aefa64a1390d4461184e260e7a6d326d59a3b Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 18 Nov 2023 15:06:49 +0300 Subject: [PATCH 029/116] Replace `del` with buildin `rmSync` module --- gulpfile.js | 15 +++--- package-lock.json | 131 +++------------------------------------------- package.json | 1 - 3 files changed, 16 insertions(+), 131 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index aa1eecd8c..a4c01181c 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,4 +1,4 @@ -import { readFileSync } from 'node:fs'; +import { readFileSync, rmSync } from 'node:fs'; import gulp from 'gulp'; import plumber from 'gulp-plumber'; @@ -15,7 +15,6 @@ import browserslistToEsbuild from 'browserslist-to-esbuild'; import sharp from 'gulp-sharp-responsive'; import svgo from 'gulp-svgmin'; import { stacksvg } from 'gulp-stacksvg'; -import { deleteAsync } from 'del'; import server from 'browser-sync'; import bemlinter from 'gulp-html-bemlinter'; @@ -184,14 +183,18 @@ function reloadServer (done) { done(); } -function deleteBuild () { - return deleteAsync(PATH_TO_DIST); +export function removeBuild (done) { + rmSync(PATH_TO_DIST, { + force: true, + recursive: true, + }); + done(); } export function buildProd (done) { isDevelopment = false; series( - deleteBuild, + removeBuild, parallel( processMarkup, processStyles, @@ -204,7 +207,7 @@ export function buildProd (done) { export function runDev (done) { series( - deleteBuild, + removeBuild, parallel( processMarkup, processStyles, diff --git a/package-lock.json b/package-lock.json index 48700bd07..ec2d7c4ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,6 @@ "autoprefixer": "10.4.16", "browser-sync": "2.29.3", "browserslist-to-esbuild": "1.2.0", - "del": "7.1.0", "eslint": "8.53.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", @@ -1192,34 +1191,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", - "dev": true, - "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/aggregate-error/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2667,33 +2638,6 @@ "node": ">=0.8.0" } }, - "node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clean-stack/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-argv-util": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/cli-argv-util/-/cli-argv-util-1.2.4.tgz", @@ -3500,28 +3444,6 @@ "node": ">=0.10.0" } }, - "node_modules/del": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-7.1.0.tgz", - "integrity": "sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==", - "dev": true, - "dependencies": { - "globby": "^13.1.2", - "graceful-fs": "^4.2.10", - "is-glob": "^4.0.3", - "is-path-cwd": "^3.0.0", - "is-path-inside": "^4.0.0", - "p-map": "^5.5.0", - "rimraf": "^3.0.2", - "slash": "^4.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -3885,9 +3807,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.587", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.587.tgz", - "integrity": "sha512-RyJX0q/zOkAoefZhB9XHghGeATVP0Q3mwA253XD/zj2OeXc+JZB9pCaEv6R578JUYaWM9PRhye0kXvd/V1cQ3Q==", + "version": "1.4.588", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.588.tgz", + "integrity": "sha512-soytjxwbgcCu7nh5Pf4S2/4wa6UIu+A3p03U2yVr53qGxi1/VTR3ENI+p50v+UxqqZAfl48j3z55ud7VHIOr9w==", "dev": true }, "node_modules/elliptic": { @@ -4595,15 +4517,6 @@ "node": ">=10.13.0" } }, - "node_modules/eslint/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/eslint/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -7825,28 +7738,13 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-3.0.0.tgz", - "integrity": "sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", + "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": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/is-plain-obj": { @@ -9983,21 +9881,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", - "integrity": "sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==", - "dev": true, - "dependencies": { - "aggregate-error": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", diff --git a/package.json b/package.json index 0d1ca3bd5..b7b85556e 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,6 @@ "autoprefixer": "10.4.16", "browser-sync": "2.29.3", "browserslist-to-esbuild": "1.2.0", - "del": "7.1.0", "eslint": "8.53.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", From 4e9eddac7a4aeea265b22295af761a5a1a45d3ef Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 18 Nov 2023 16:14:49 +0300 Subject: [PATCH 030/116] Update dev dependencies --- package-lock.json | 155 +++++++++++++++++++++++++--------------------- package.json | 6 +- 2 files changed, 89 insertions(+), 72 deletions(-) diff --git a/package-lock.json b/package-lock.json index ec2d7c4ad..5a6872c79 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,12 +8,12 @@ "name": "htmlacademy-gulp-template", "version": "1.0.0", "devDependencies": { - "@htmlacademy/editorconfig-cli": "2.0.5", + "@htmlacademy/editorconfig-cli": "2.0.8", "@linthtml/linthtml": "0.9.5", "autoprefixer": "10.4.16", "browser-sync": "2.29.3", "browserslist-to-esbuild": "1.2.0", - "eslint": "8.53.0", + "eslint": "8.54.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-esbuild": "0.11.2", @@ -34,7 +34,7 @@ "sass": "1.69.5", "stylelint": "15.11.0", "stylelint-config-htmlacademy": "2.0.6", - "w3c-html-validator": "1.6.0" + "w3c-html-validator": "1.6.1" }, "engines": { "node": "^18.18 || ^20.9" @@ -754,23 +754,23 @@ "dev": true }, "node_modules/@eslint/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", + "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@htmlacademy/editorconfig-cli": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@htmlacademy/editorconfig-cli/-/editorconfig-cli-2.0.5.tgz", - "integrity": "sha512-LkgvKtrNZV4iJbnnwisJXIVqBhw76Qps7UHjFt0fPJE6WaGY/FMfp23Nbi2I8Z1ZJTqc9WNmoduMOO1jtBLfjQ==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@htmlacademy/editorconfig-cli/-/editorconfig-cli-2.0.8.tgz", + "integrity": "sha512-ffyN0+oXFMp2RXfmQMrNBV2Yovwnxcl/xojRpkmRASciMJ42cMORrNbm3Y2Z7SkGtBaWYxW7nVC65GJxPf538A==", "dev": true, "dependencies": { - "commander": "11.0.0", - "globby": "13.2.2", - "lintspaces": "0.10.4", + "commander": "11.1.0", + "globby": "14.0.0", + "lintspaces": "0.11.0", "picocolors": "1.0.0" }, "bin": { @@ -1072,6 +1072,18 @@ "node": ">=14" } }, + "node_modules/@sindresorhus/merge-streams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz", + "integrity": "sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@socket.io/component-emitter": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", @@ -2647,18 +2659,6 @@ "slash": "~5.1" } }, - "node_modules/cli-argv-util/node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -2875,9 +2875,9 @@ } }, "node_modules/commander": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", - "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "dev": true, "engines": { "node": ">=16" @@ -3735,21 +3735,21 @@ } }, "node_modules/editorconfig": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", - "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-2.0.0.tgz", + "integrity": "sha512-s1NQ63WQ7RNXH6Efb2cwuyRlfpbtdZubvfNe4vCuoyGPewNPY7vah8JUSOFBiJ+jr99Qh8t0xKv0oITc1dclgw==", "dev": true, "dependencies": { "@one-ini/wasm": "0.1.1", - "commander": "^10.0.0", - "minimatch": "9.0.1", + "commander": "^11.0.0", + "minimatch": "9.0.2", "semver": "^7.5.3" }, "bin": { "editorconfig": "bin/editorconfig" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/editorconfig/node_modules/brace-expansion": { @@ -3761,19 +3761,10 @@ "balanced-match": "^1.0.0" } }, - "node_modules/editorconfig/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "engines": { - "node": ">=14" - } - }, "node_modules/editorconfig/node_modules/minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", + "integrity": "sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -4195,15 +4186,15 @@ } }, "node_modules/eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", + "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.0", + "@eslint/js": "8.54.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -5974,19 +5965,32 @@ } }, "node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.0.tgz", + "integrity": "sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==", "dev": true, "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", + "@sindresorhus/merge-streams": "^1.0.0", + "fast-glob": "^3.3.2", "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true, + "engines": { + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8254,18 +8258,18 @@ "dev": true }, "node_modules/lintspaces": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/lintspaces/-/lintspaces-0.10.4.tgz", - "integrity": "sha512-QRT8ClU2Tf3cstBMcpvSV/nqCrwcuqaxTF6/cjjxxrph0yrMzYH/EcGPyZ5qTd0e2nh1c4BANLOICvanitu1tA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/lintspaces/-/lintspaces-0.11.0.tgz", + "integrity": "sha512-Zi4UWrpPYcIECWVBRDA4UQA4wiFkEQoD0DYroBIO0jtDAAatdm3vs7MOcps0nSpukf3DiyfHeFhJNL5sLegaLA==", "dev": true, "dependencies": { "deep-extend": "^0.6.0", - "editorconfig": "^1.0.1", + "editorconfig": "^2.0.0", "minimist": "^1.2.6", "rc": "^1.2.8" }, "engines": { - "node": ">=14" + "node": ">=16" } }, "node_modules/load-json-file": { @@ -11922,12 +11926,12 @@ "dev": true }, "node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, "engines": { - "node": ">=12" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -13779,6 +13783,18 @@ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", @@ -14200,15 +14216,16 @@ "dev": true }, "node_modules/w3c-html-validator": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/w3c-html-validator/-/w3c-html-validator-1.6.0.tgz", - "integrity": "sha512-zuoEB+WymMM3qlYNaARg6Z0fd9UxjPe8glJBdX/ozpLH4EWgkOn25H4e9TV9RwEplSeXW4gpT/XbUf9JSdUPBA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/w3c-html-validator/-/w3c-html-validator-1.6.1.tgz", + "integrity": "sha512-GOnlZmXYqL2xJKxPg8KaNmUargvpqVyJ3EdS2c56aDolzk8xWAPT1vw2QCv/is/2BW4DHcFOyoeUERa78NbmkQ==", "dev": true, "dependencies": { "chalk": "~5.3", "cli-argv-util": "~1.2", "fancy-log": "~2.0", "glob": "~10.3", + "slash": "~5.1", "superagent": "~8.1" }, "bin": { diff --git a/package.json b/package.json index b7b85556e..b714b9b7b 100644 --- a/package.json +++ b/package.json @@ -3,12 +3,12 @@ "version": "1.0.0", "private": true, "devDependencies": { - "@htmlacademy/editorconfig-cli": "2.0.5", + "@htmlacademy/editorconfig-cli": "2.0.8", "@linthtml/linthtml": "0.9.5", "autoprefixer": "10.4.16", "browser-sync": "2.29.3", "browserslist-to-esbuild": "1.2.0", - "eslint": "8.53.0", + "eslint": "8.54.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-esbuild": "0.11.2", @@ -29,7 +29,7 @@ "sass": "1.69.5", "stylelint": "15.11.0", "stylelint-config-htmlacademy": "2.0.6", - "w3c-html-validator": "1.6.0" + "w3c-html-validator": "1.6.1" }, "scripts": { "lint:spaces": "editorconfig-cli", From aadc685c8182659c872e0d18edf9de26e508dccb Mon Sep 17 00:00:00 2001 From: Georgij Tsabiev Date: Sat, 18 Nov 2023 21:32:04 +0300 Subject: [PATCH 031/116] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D1=8F=D0=B5=D1=82=20=D0=BE=D0=BF=D0=B5=D1=87=D0=B0=D1=82?= =?UTF-8?q?=D0=BA=D1=83=20=D0=B2=20=D0=BD=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B8=20=D0=BF=D0=B0=D0=BF=D0=BA=D0=B8=20scripts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 380acd049..52f7fc0f4 100644 --- a/README.md +++ b/README.md @@ -245,7 +245,7 @@ ## Работа со скриптами -Все скрипты лежат в `source/script/`. +Все скрипты лежат в `source/scripts/`. ```shell └── source/ @@ -254,7 +254,7 @@ └── modal.js ``` -Сборка переносит их в `build/script/`. +Сборка переносит их в `build/scripts/`. ```shell └── build/ From 0d794ed4f313a5f87988823b180171c775cd27bd Mon Sep 17 00:00:00 2001 From: firefoxic Date: Mon, 20 Nov 2023 21:14:21 +0300 Subject: [PATCH 032/116] Run linthtml for result markup --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b714b9b7b..db17f61b1 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "lint:spaces": "editorconfig-cli", "lint:styles": "stylelint \"source/styles/**/*.scss\"", "lint:markup": "cd build && html-validator --quiet --continue", - "lint:html": "linthtml source/**/*.html --config .linthtmlrc", + "lint:html": "linthtml build/**/*.html --config .linthtmlrc", "lint:bem": "gulp lintBem --silent", "lint:scripts": "eslint . --ignore-path .gitignore", "prelint": "gulp processMarkup --silent", From cf9a953ea86131518536543b2e5c0cdcc5839eb1 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Tue, 21 Nov 2023 12:45:29 +0300 Subject: [PATCH 033/116] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B8=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=D0=B2=D1=8B=D0=B2=D0=B0=D0=B5=D1=82=20=D1=84?= =?UTF-8?q?=D0=B0=D0=B9=D0=BB=20index.css?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/styles/{index.scss => styles.scss} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename source/styles/{index.scss => styles.scss} (100%) diff --git a/source/styles/index.scss b/source/styles/styles.scss similarity index 100% rename from source/styles/index.scss rename to source/styles/styles.scss From 03187e543a05200a8c7726641a2098b269d931d1 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Tue, 21 Nov 2023 12:45:40 +0300 Subject: [PATCH 034/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 194 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 98 insertions(+), 98 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5a6872c79..50a2c6ebe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "eslint": "8.54.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", - "gulp-esbuild": "0.11.2", + "gulp-esbuild": "0.12.0", "gulp-html-bemlinter": "2.1.4", "gulp-htmlmin": "5.0.1", "gulp-nunjucks": "6.0.0", @@ -314,9 +314,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.7.tgz", + "integrity": "sha512-YGSPnndkcLo4PmVl2tKatEn+0mlVMr3yEpOOT0BeMria87PhvoJb5dg5f5Ft9fbCVgtAz4pWMzZVgSEGpDAlww==", "cpu": [ "arm" ], @@ -330,9 +330,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.7.tgz", + "integrity": "sha512-YEDcw5IT7hW3sFKZBkCAQaOCJQLONVcD4bOyTXMZz5fr66pTHnAet46XAtbXAkJRfIn2YVhdC6R9g4xa27jQ1w==", "cpu": [ "arm64" ], @@ -346,9 +346,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.7.tgz", + "integrity": "sha512-jhINx8DEjz68cChFvM72YzrqfwJuFbfvSxZAk4bebpngGfNNRm+zRl4rtT9oAX6N9b6gBcFaJHFew5Blf6CvUw==", "cpu": [ "x64" ], @@ -362,9 +362,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.7.tgz", + "integrity": "sha512-dr81gbmWN//3ZnBIm6YNCl4p3pjnabg1/ZVOgz2fJoUO1a3mq9WQ/1iuEluMs7mCL+Zwv7AY5e3g1hjXqQZ9Iw==", "cpu": [ "arm64" ], @@ -378,9 +378,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.7.tgz", + "integrity": "sha512-Lc0q5HouGlzQEwLkgEKnWcSazqr9l9OdV2HhVasWJzLKeOt0PLhHaUHuzb8s/UIya38DJDoUm74GToZ6Wc7NGQ==", "cpu": [ "x64" ], @@ -394,9 +394,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.7.tgz", + "integrity": "sha512-+y2YsUr0CxDFF7GWiegWjGtTUF6gac2zFasfFkRJPkMAuMy9O7+2EH550VlqVdpEEchWMynkdhC9ZjtnMiHImQ==", "cpu": [ "arm64" ], @@ -410,9 +410,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.7.tgz", + "integrity": "sha512-CdXOxIbIzPJmJhrpmJTLx+o35NoiKBIgOvmvT+jeSadYiWJn0vFKsl+0bSG/5lwjNHoIDEyMYc/GAPR9jxusTA==", "cpu": [ "x64" ], @@ -426,9 +426,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.7.tgz", + "integrity": "sha512-Y+SCmWxsJOdQtjcBxoacn/pGW9HDZpwsoof0ttL+2vGcHokFlfqV666JpfLCSP2xLxFpF1lj7T3Ox3sr95YXww==", "cpu": [ "arm" ], @@ -442,9 +442,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.7.tgz", + "integrity": "sha512-inHqdOVCkUhHNvuQPT1oCB7cWz9qQ/Cz46xmVe0b7UXcuIJU3166aqSunsqkgSGMtUCWOZw3+KMwI6otINuC9g==", "cpu": [ "arm64" ], @@ -458,9 +458,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.7.tgz", + "integrity": "sha512-2BbiL7nLS5ZO96bxTQkdO0euGZIUQEUXMTrqLxKUmk/Y5pmrWU84f+CMJpM8+EHaBPfFSPnomEaQiG/+Gmh61g==", "cpu": [ "ia32" ], @@ -474,9 +474,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.7.tgz", + "integrity": "sha512-BVFQla72KXv3yyTFCQXF7MORvpTo4uTA8FVFgmwVrqbB/4DsBFWilUm1i2Oq6zN36DOZKSVUTb16jbjedhfSHw==", "cpu": [ "loong64" ], @@ -490,9 +490,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.7.tgz", + "integrity": "sha512-DzAYckIaK+pS31Q/rGpvUKu7M+5/t+jI+cdleDgUwbU7KdG2eC3SUbZHlo6Q4P1CfVKZ1lUERRFP8+q0ob9i2w==", "cpu": [ "mips64el" ], @@ -506,9 +506,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.7.tgz", + "integrity": "sha512-JQ1p0SmUteNdUaaiRtyS59GkkfTW0Edo+e0O2sihnY4FoZLz5glpWUQEKMSzMhA430ctkylkS7+vn8ziuhUugQ==", "cpu": [ "ppc64" ], @@ -522,9 +522,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.7.tgz", + "integrity": "sha512-xGwVJ7eGhkprY/nB7L7MXysHduqjpzUl40+XoYDGC4UPLbnG+gsyS1wQPJ9lFPcxYAaDXbdRXd1ACs9AE9lxuw==", "cpu": [ "riscv64" ], @@ -538,9 +538,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.7.tgz", + "integrity": "sha512-U8Rhki5PVU0L0nvk+E8FjkV8r4Lh4hVEb9duR6Zl21eIEYEwXz8RScj4LZWA2i3V70V4UHVgiqMpszXvG0Yqhg==", "cpu": [ "s390x" ], @@ -554,9 +554,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.7.tgz", + "integrity": "sha512-ZYZopyLhm4mcoZXjFt25itRlocKlcazDVkB4AhioiL9hOWhDldU9n38g62fhOI4Pth6vp+Mrd5rFKxD0/S+7aQ==", "cpu": [ "x64" ], @@ -570,9 +570,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.7.tgz", + "integrity": "sha512-/yfjlsYmT1O3cum3J6cmGG16Fd5tqKMcg5D+sBYLaOQExheAJhqr8xOAEIuLo8JYkevmjM5zFD9rVs3VBcsjtQ==", "cpu": [ "x64" ], @@ -586,9 +586,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.7.tgz", + "integrity": "sha512-MYDFyV0EW1cTP46IgUJ38OnEY5TaXxjoDmwiTXPjezahQgZd+j3T55Ht8/Q9YXBM0+T9HJygrSRGV5QNF/YVDQ==", "cpu": [ "x64" ], @@ -602,9 +602,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.7.tgz", + "integrity": "sha512-JcPvgzf2NN/y6X3UUSqP6jSS06V0DZAV/8q0PjsZyGSXsIGcG110XsdmuWiHM+pno7/mJF6fjH5/vhUz/vA9fw==", "cpu": [ "x64" ], @@ -618,9 +618,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.7.tgz", + "integrity": "sha512-ZA0KSYti5w5toax5FpmfcAgu3ZNJxYSRm0AW/Dao5up0YV1hDVof1NvwLomjEN+3/GMtaWDI+CIyJOMTRSTdMw==", "cpu": [ "arm64" ], @@ -634,9 +634,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.7.tgz", + "integrity": "sha512-CTOnijBKc5Jpk6/W9hQMMvJnsSYRYgveN6O75DTACCY18RA2nqka8dTZR+x/JqXCRiKk84+5+bRKXUSbbwsS0A==", "cpu": [ "ia32" ], @@ -650,9 +650,9 @@ } }, "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==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.7.tgz", + "integrity": "sha512-gRaP2sk6hc98N734luX4VpF318l3w+ofrtTu9j5L8EQXF+FzQKV6alCOHMVoJJHvVK/mGbwBXfOL1HETQu9IGQ==", "cpu": [ "x64" ], @@ -4122,9 +4122,9 @@ } }, "node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.7.tgz", + "integrity": "sha512-6brbTZVqxhqgbpqBR5MzErImcpA0SQdoKOkcWK/U30HtQxnokIpG3TX2r0IJqbFUzqLjhU/zC1S5ndgakObVCQ==", "dev": true, "hasInstallScript": true, "bin": { @@ -4134,28 +4134,28 @@ "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" + "@esbuild/android-arm": "0.19.7", + "@esbuild/android-arm64": "0.19.7", + "@esbuild/android-x64": "0.19.7", + "@esbuild/darwin-arm64": "0.19.7", + "@esbuild/darwin-x64": "0.19.7", + "@esbuild/freebsd-arm64": "0.19.7", + "@esbuild/freebsd-x64": "0.19.7", + "@esbuild/linux-arm": "0.19.7", + "@esbuild/linux-arm64": "0.19.7", + "@esbuild/linux-ia32": "0.19.7", + "@esbuild/linux-loong64": "0.19.7", + "@esbuild/linux-mips64el": "0.19.7", + "@esbuild/linux-ppc64": "0.19.7", + "@esbuild/linux-riscv64": "0.19.7", + "@esbuild/linux-s390x": "0.19.7", + "@esbuild/linux-x64": "0.19.7", + "@esbuild/netbsd-x64": "0.19.7", + "@esbuild/openbsd-x64": "0.19.7", + "@esbuild/sunos-x64": "0.19.7", + "@esbuild/win32-arm64": "0.19.7", + "@esbuild/win32-ia32": "0.19.7", + "@esbuild/win32-x64": "0.19.7" } }, "node_modules/escalade": { @@ -6354,17 +6354,17 @@ } }, "node_modules/gulp-esbuild": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/gulp-esbuild/-/gulp-esbuild-0.11.2.tgz", - "integrity": "sha512-skS81h8Rco/JpWxnU8IWFUnhYVSy9Y7ImpmpKNCf1N5+h4i8OMfaPzHF+F8X2rP+Rv0QarpTjHGodSU4OwRsTA==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/gulp-esbuild/-/gulp-esbuild-0.12.0.tgz", + "integrity": "sha512-6el2YFJK+Wiip18G4iMl1rNuetSxpEZTLT1e6GuAsi3Q/yaeoNUgTX7nlwpbFkymGXMI4NFXisg5++PMe+fNNA==", "dev": true, "dependencies": { - "esbuild": "^0.18.7", + "esbuild": "^0.19.6", "plugin-error": "^2.0.1", "vinyl": "^3.0.0" }, "engines": { - "node": ">=12" + "node": ">=16" } }, "node_modules/gulp-html-bemlinter": { diff --git a/package.json b/package.json index b714b9b7b..47b6cc20b 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "eslint": "8.54.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", - "gulp-esbuild": "0.11.2", + "gulp-esbuild": "0.12.0", "gulp-html-bemlinter": "2.1.4", "gulp-htmlmin": "5.0.1", "gulp-nunjucks": "6.0.0", From d32b1e92c4de1cf28f033fb40e9c69beb99117da Mon Sep 17 00:00:00 2001 From: firefoxic Date: Wed, 22 Nov 2023 21:18:49 +0300 Subject: [PATCH 035/116] Add .gitattributes --- .gitattributes | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..7d233b98a --- /dev/null +++ b/.gitattributes @@ -0,0 +1,10 @@ +* text eol=lf + +*.ico binary +*.png binary +*.jpg binary +*.jpeg binary +*.webp binary +*.avif binary +*.woff binary +*.woff2 binary From b2b532667e932ff90ff2e6e45185d09ced68fd53 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Wed, 22 Nov 2023 21:57:12 +0300 Subject: [PATCH 036/116] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 52f7fc0f4..2e15674da 100644 --- a/README.md +++ b/README.md @@ -192,7 +192,7 @@ └── images/ ``` -Векторную графику для спрайта (иконки) складывайте в `raw/icons/`. Запуск той же команды `npm run optimizeImages` поместит оптимизированные копии этих svg-файлов в `source/images/`. +Векторную графику для спрайта (иконки) складывайте в `raw/images/icons/`. Запуск той же команды `npm run optimizeImages` поместит оптимизированные копии этих svg-файлов в `source/images/icons/`. ```shell └── source/ From 67ab6f65df228ef91f3ab828a915eeb868ecfbf2 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Wed, 22 Nov 2023 22:01:33 +0300 Subject: [PATCH 037/116] Add one more illustration --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2e15674da..1e5e1f4eb 100644 --- a/README.md +++ b/README.md @@ -192,7 +192,15 @@ └── images/ ``` -Векторную графику для спрайта (иконки) складывайте в `raw/images/icons/`. Запуск той же команды `npm run optimizeImages` поместит оптимизированные копии этих svg-файлов в `source/images/icons/`. +Векторную графику для спрайта (иконки) складывайте в `raw/images/icons/`. + +```shell +└── raw/ + └── images/ + └── icons/ +``` + +Запуск той же команды `npm run optimizeImages` поместит оптимизированные копии этих svg-файлов в `source/images/icons/`. ```shell └── source/ From 6d0c0671540c11b9718f3d98e58e5f84836cbf95 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Wed, 22 Nov 2023 22:30:48 +0300 Subject: [PATCH 038/116] Ignore EOF for SVG --- .editorconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.editorconfig b/.editorconfig index ae2ebfee9..719dd61a6 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,3 +7,6 @@ indent_size = 2 end_of_line = lf trim_trailing_whitespace = true insert_final_newline = true + +[*.svg] +insert_final_newline = false From 563ea1f7a66d4582d5ed628c38d054fbe8645d44 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Thu, 23 Nov 2023 22:15:55 +0300 Subject: [PATCH 039/116] Fix error status of w3c-validation --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index afa0d5bb0..3effb6843 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "scripts": { "lint:spaces": "editorconfig-cli", "lint:styles": "stylelint \"source/styles/**/*.scss\"", - "lint:markup": "cd build && html-validator --quiet --continue", + "lint:markup": "cd build && html-validator --quiet", "lint:html": "linthtml build/**/*.html --config .linthtmlrc", "lint:bem": "gulp lintBem --silent", "lint:scripts": "eslint . --ignore-path .gitignore", From 8532287382b55f5a0fc8879d47ce0d5b97e272c5 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Thu, 23 Nov 2023 22:19:17 +0300 Subject: [PATCH 040/116] Reorganize `package.json` --- package.json | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/package.json b/package.json index 3effb6843..e98600bed 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,30 @@ "name": "htmlacademy-gulp-template", "version": "1.0.0", "private": true, + "type": "module", + "engines": { + "node": "^18.18 || ^20.9" + }, + "browserslist": [ + "last 2 versions", + "not dead", + "not op_mini all", + "not < 0.25%" + ], + "scripts": { + "lint:spaces": "editorconfig-cli", + "lint:styles": "stylelint \"source/styles/**/*.scss\"", + "lint:markup": "cd build && html-validator --quiet", + "lint:html": "linthtml build/**/*.html --config .linthtmlrc", + "lint:bem": "gulp lintBem --silent", + "lint:scripts": "eslint . --ignore-path .gitignore", + "prelint": "gulp processMarkup --silent", + "lint": "npm-run-all -p lint:**", + "optimizeImages": "gulp optimizeImages", + "start": "gulp runDev", + "build": "gulp buildProd", + "preview": "gulp buildProd && gulp startServer" + }, "devDependencies": { "@htmlacademy/editorconfig-cli": "2.0.8", "@linthtml/linthtml": "0.9.5", @@ -30,29 +54,5 @@ "stylelint": "15.11.0", "stylelint-config-htmlacademy": "2.0.6", "w3c-html-validator": "1.6.1" - }, - "scripts": { - "lint:spaces": "editorconfig-cli", - "lint:styles": "stylelint \"source/styles/**/*.scss\"", - "lint:markup": "cd build && html-validator --quiet", - "lint:html": "linthtml build/**/*.html --config .linthtmlrc", - "lint:bem": "gulp lintBem --silent", - "lint:scripts": "eslint . --ignore-path .gitignore", - "prelint": "gulp processMarkup --silent", - "lint": "npm-run-all -p lint:**", - "optimizeImages": "gulp optimizeImages", - "start": "gulp runDev", - "build": "gulp buildProd", - "preview": "gulp buildProd && gulp startServer" - }, - "browserslist": [ - "last 2 versions", - "not dead", - "not op_mini all", - "not < 0.25%" - ], - "engines": { - "node": "^18.18 || ^20.9" - }, - "type": "module" + } } From a6ce3861b8be523f79e9d71dfae4a6431615414d Mon Sep 17 00:00:00 2001 From: firefoxic Date: Thu, 23 Nov 2023 22:22:34 +0300 Subject: [PATCH 041/116] Remove proxy-browser from supported list --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index e98600bed..1c870818a 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "last 2 versions", "not dead", "not op_mini all", - "not < 0.25%" + "not and_uc > 0", + "not < 0.2%" ], "scripts": { "lint:spaces": "editorconfig-cli", From 8417412665e678c18fd91be4de89201e328d0b05 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Thu, 23 Nov 2023 22:27:13 +0300 Subject: [PATCH 042/116] Update `bem-linter` --- package-lock.json | 95 +++++++++++++++++------------------------------ package.json | 2 +- 2 files changed, 35 insertions(+), 62 deletions(-) diff --git a/package-lock.json b/package-lock.json index 50a2c6ebe..b8329680f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-esbuild": "0.12.0", - "gulp-html-bemlinter": "2.1.4", + "gulp-html-bemlinter": "3.0.0", "gulp-htmlmin": "5.0.1", "gulp-nunjucks": "6.0.0", "gulp-plumber": "1.2.1", @@ -50,12 +50,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", + "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.22.13", + "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" }, "engines": { @@ -143,9 +143,9 @@ } }, "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", @@ -1106,9 +1106,9 @@ "dev": true }, "node_modules/@types/cors": { - "version": "2.8.16", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.16.tgz", - "integrity": "sha512-Trx5or1Nyg1Fq138PCuWqoApzvoSLWzZ25ORBiHMbbUT42g578lH1GT4TwYDbiUOLFuDsCkfLneT2105fsFWGg==", + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", "dev": true, "dependencies": { "@types/node": "*" @@ -1127,9 +1127,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.1.tgz", - "integrity": "sha512-HhmzZh5LSJNS5O8jQKpJ/3ZcrrlG6L70hpGqMIAoM9YVD0YBRNWYsfwcXq8VnSjlNpCpgLzMXdiPo+dxcvSmiA==", + "version": "20.9.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.4.tgz", + "integrity": "sha512-wmyg8HUhcn6ACjsn8oKYjkN/zUzQeNtMy44weTJSM6p4MMzEOuKbA3OjJ267uPCOW7Xex9dyrNTful8XTQYoDA==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1148,9 +1148,9 @@ "dev": true }, "node_modules/@types/vinyl": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.10.tgz", - "integrity": "sha512-DqN5BjCrmjAtZ1apqzcq2vk2PSW0m1nFfjIafBFkAyddmHxuw3ZAK3omLiSdpuu81+8h07i6U4DtaE38Xsf2xQ==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.11.tgz", + "integrity": "sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==", "dev": true, "dependencies": { "@types/expect": "^1.20.4", @@ -2478,9 +2478,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001563", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", - "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", + "version": "1.0.30001564", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz", + "integrity": "sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==", "dev": true, "funding": [ { @@ -3798,9 +3798,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.588", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.588.tgz", - "integrity": "sha512-soytjxwbgcCu7nh5Pf4S2/4wa6UIu+A3p03U2yVr53qGxi1/VTR3ENI+p50v+UxqqZAfl48j3z55ud7VHIOr9w==", + "version": "1.4.593", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.593.tgz", + "integrity": "sha512-c7+Hhj87zWmdpmjDONbvNKNo24tvmD4mjal1+qqTYTrlF0/sNpAcDlU0Ki84ftA/5yj3BF2QhSGEC0Rky6larg==", "dev": true }, "node_modules/elliptic": { @@ -6368,15 +6368,18 @@ } }, "node_modules/gulp-html-bemlinter": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/gulp-html-bemlinter/-/gulp-html-bemlinter-2.1.4.tgz", - "integrity": "sha512-Xf34OWD06uEd0aNuKPv3PzdhZtDjdeWPQZgTmxc+ccHZVKzymQKju/vKI8J5snfCqKrnCD5MkanbGf/Sb+s50w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-html-bemlinter/-/gulp-html-bemlinter-3.0.0.tgz", + "integrity": "sha512-iqKPaIvzKTqlMRSyXLMJVy2j48bEeBqG8ZuhMu8b5SJbMG1RPLlQOuDtOn04PWXjJinbAF2/qtqTaL7TZqDZUw==", "dev": true, "dependencies": { - "chalk": "^5.2.0", - "node-html-parser": "^6.1.5", + "chalk": "^5.3.0", + "node-html-parser": "^6.1.11", "plugin-error": "^2.0.1", "through2": "^4.0.2" + }, + "engines": { + "node": "^18.12 || ^20.9" } }, "node_modules/gulp-html-bemlinter/node_modules/chalk": { @@ -10085,44 +10088,14 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.2.tgz", - "integrity": "sha512-Yj9mA8fPiVgOUpByoTZO5pNrcl5Yk37FcSHsUINpAsaBIEZIuqcCclDZJCVxqQShDsmYX8QG63svJiTbOATZwg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", "dev": true, - "dependencies": { - "semver": "^7.3.5" - }, "engines": { "node": "14 || >=16.14" } }, - "node_modules/path-scurry/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/path-scurry/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", diff --git a/package.json b/package.json index 1c870818a..1f5288540 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-esbuild": "0.12.0", - "gulp-html-bemlinter": "2.1.4", + "gulp-html-bemlinter": "3.0.0", "gulp-htmlmin": "5.0.1", "gulp-nunjucks": "6.0.0", "gulp-plumber": "1.2.1", From 44e9994a1b78b44f599503db78cd48494a5bc37e Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sun, 26 Nov 2023 20:00:15 +0300 Subject: [PATCH 043/116] Reorganize npm scripts --- package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 1f5288540..d9dc2a56e 100644 --- a/package.json +++ b/package.json @@ -14,18 +14,18 @@ "not < 0.2%" ], "scripts": { + "start": "gulp runDev", + "build": "gulp buildProd", + "preview": "gulp buildProd && gulp startServer", + "prelint": "gulp processMarkup --silent", + "lint": "npm-run-all -p lint:**", "lint:spaces": "editorconfig-cli", - "lint:styles": "stylelint \"source/styles/**/*.scss\"", "lint:markup": "cd build && html-validator --quiet", "lint:html": "linthtml build/**/*.html --config .linthtmlrc", "lint:bem": "gulp lintBem --silent", + "lint:styles": "stylelint \"source/styles/**/*.scss\"", "lint:scripts": "eslint . --ignore-path .gitignore", - "prelint": "gulp processMarkup --silent", - "lint": "npm-run-all -p lint:**", - "optimizeImages": "gulp optimizeImages", - "start": "gulp runDev", - "build": "gulp buildProd", - "preview": "gulp buildProd && gulp startServer" + "optimizeImages": "gulp optimizeImages" }, "devDependencies": { "@htmlacademy/editorconfig-cli": "2.0.8", From dc28200ff04fc88cf13391be3f901f7168eaf18a Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sun, 26 Nov 2023 20:11:34 +0300 Subject: [PATCH 044/116] Fix preview script --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d9dc2a56e..f826e0ec7 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "scripts": { "start": "gulp runDev", "build": "gulp buildProd", - "preview": "gulp buildProd && gulp startServer", + "preview": "npm run build && browser-sync start -s build/ --cors --no-notify --no-ui", "prelint": "gulp processMarkup --silent", "lint": "npm-run-all -p lint:**", "lint:spaces": "editorconfig-cli", From 09ad36ead69985803b111603267e0f5004fb2c10 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sun, 26 Nov 2023 20:38:58 +0300 Subject: [PATCH 045/116] Split raster and vector optimizations --- README.md | 24 +++++++++++++----------- gulpfile.js | 7 ------- package.json | 4 +++- raw/images/README.md | 4 ++-- raw/images/icons/README.md | 2 +- 5 files changed, 19 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 1e5e1f4eb..97c3f297c 100644 --- a/README.md +++ b/README.md @@ -105,15 +105,17 @@ ## Дополнительные команды -- `npm run optimizeImages` - создаёт оптимизированные изображения в `source/images/` и `source/icons/` - `npm run preview` - позволяет посмотреть результат работы prod-версии сборки -- `npm run lint` - запускает все проверки (занимает длительное время) -- `npm run lint:bem` - проверяет правильное использование БЭМ в разметке -- `npm run lint:markup` - проверяет HTML-разметку через W3C-валидатор -- `npm run lint:styles` - проверяет проект на совместимость с stylelint -- `npm run lint:spaces` - проверяет отступы с помощью editorConfig -- `npm run lint:html` - проверяет разметку по правилам linthtml -- `npm run lint:scripts` - проверяет скрипты по правилам eslint +- `npm run lint` - запускает все проверки (занимает длительное время): + - `npm run lint:spaces` - проверяет отступы с помощью editorConfig + - `npm run lint:markup` - проверяет HTML-разметку через W3C-валидатор + - `npm run lint:html` - проверяет разметку по правилам linthtml + - `npm run lint:bem` - проверяет правильное использование БЭМ в разметке + - `npm run lint:styles` - проверяет проект на совместимость с stylelint + - `npm run lint:scripts` - проверяет скрипты по правилам eslint +- `npm run optimize` - запускает все оптимизации изображений (занимает длительное время): + - `npm run optimize:raster` - оптимизирует растровые изображения из `raw/images/` в `source/images/` + - `npm run optimize:vector` - оптимизирует векторные изображения из `raw/images/` в `source/images/` ## Работа с разметкой @@ -179,13 +181,13 @@ Абсолютно всю растровую графику с двухкратной плотностью из макета складывайте в `raw/images/`. Здесь графика игнорируется гитом. -После того как добавите графику сразу запускайте команду `npm run optimizeImages` для оптимизации графики и создания `.webp`-версии. Команду нужно запускать один раз при появлении новой графики в проекте. +После того как добавите графику сразу запускайте команду `npm run optimize:raster` (или просто `npm run optimize`) для оптимизации графики и создания `.webp`-версии. Команду нужно запускать один раз при появлении новой графики в проекте. Новая оптимизированная графика разной плотностью и суффиксами плотности в именах файлов появится в `source/images`. Эту, уже оптимизированную графику нужно коммитить. ### Вектор -Контентную векторную графику (логотип, графики, иллюстрации) также складывайте в `raw/images/`. Запуск той же команды `npm run optimizeImages` поместит оптимизированные копии этих svg-файлов в `source/images/` +Контентную векторную графику (логотип, графики, иллюстрации) также складывайте в `raw/images/`. Запуск команды `npm run optimize:vector` (или просто `npm run optimize`) поместит оптимизированные копии этих svg-файлов в `source/images/` ```shell └── raw/ @@ -200,7 +202,7 @@ └── icons/ ``` -Запуск той же команды `npm run optimizeImages` поместит оптимизированные копии этих svg-файлов в `source/images/icons/`. +Запуск команды `npm run optimize:vector` поместит оптимизированные копии этих svg-файлов в `source/images/icons/`. ```shell └── source/ diff --git a/gulpfile.js b/gulpfile.js index a4c01181c..4974050b4 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -112,13 +112,6 @@ export function optimizeVector () { .pipe(dest(PATH_TO_SOURCE)); } -export function optimizeImages (done) { - parallel( - optimizeVector, - optimizeRaster - )(done); -} - export function createStack () { return src(`${PATH_TO_SOURCE}images/icons/**/*.svg`) .pipe(stacksvg()) diff --git a/package.json b/package.json index f826e0ec7..537e5811a 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,9 @@ "lint:bem": "gulp lintBem --silent", "lint:styles": "stylelint \"source/styles/**/*.scss\"", "lint:scripts": "eslint . --ignore-path .gitignore", - "optimizeImages": "gulp optimizeImages" + "optimize": "npm-run-all -p optimize:**", + "optimize:raster": "gulp optimizeRaster", + "optimize:vector": "gulp optimizeVector" }, "devDependencies": { "@htmlacademy/editorconfig-cli": "2.0.8", diff --git a/raw/images/README.md b/raw/images/README.md index 0f29eeeac..06f406e8f 100644 --- a/raw/images/README.md +++ b/raw/images/README.md @@ -5,13 +5,13 @@ 1. контентные `svg` (не иконки), например логотип. 2. `png` и `jpg` двойной плотности пикселей. -Для каждого растрового изображения в этой папке запуск команды `npm run optimizeImages` создат в `source/images`: +Для каждого растрового изображения в этой папке запуск команды `npm run optimize` создат в `source/images`: - оптимизированную копию с суффиксом `@2x`, - оптимизированную уменьшенную в 2 раза копию с суффиксом `@1x`, - копию в прогрессивном формате `webp` с суффиксом `@2x`, - уменьшенную в 2 раза копию в формате `webp` с суффиксом `@1x`. -Эта же команда создаст оптимизированную копию каждого векторного изображения. +Эта же команда создаст оптимизированную копию каждого векторного изображения. Или можно запускать отдельно для растра `npm run optimize:raster` и отдельно для вектора `npm run optimize:vector`. После оптимизации оригиналы можно удалить, чтобы повторный запуск для новых изображений не генерировал заново уже имеющиеся файлы. diff --git a/raw/images/icons/README.md b/raw/images/icons/README.md index 5c2243a0a..9c5eb8e6b 100644 --- a/raw/images/icons/README.md +++ b/raw/images/icons/README.md @@ -1,3 +1,3 @@ # Папка для оригиналов иконок -Сюда нужно скидывать неоптимизированные svg-иконки. Для каждой из них запуск команды `npm run optimizeImages` создат в `source/images/icons` оптимизированную копию. +Сюда нужно скидывать неоптимизированные svg-иконки. Для каждой из них запуск команды `npm run optimize:vector` создат в `source/images/icons` оптимизированную копию. From 6d57bc448891aff0611c95c54ad4b3c52b271111 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sun, 26 Nov 2023 23:14:40 +0300 Subject: [PATCH 046/116] Allow to commit minified vendor libs --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0e35b8715..96dc29db9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ node_modules -*.min.* build .idea .DS_Store From f6ffe2030996dc3ce41a498ba644431c4dda5872 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Fri, 1 Dec 2023 16:22:51 +0300 Subject: [PATCH 047/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index b8329680f..4f9de1eeb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.12", + "linthtml-config-htmlacademy": "1.0.13", "npm-run-all": "4.1.5", "postcss": "8.4.31", "postcss-csso": "6.0.1", @@ -8245,9 +8245,9 @@ "dev": true }, "node_modules/linthtml-config-htmlacademy": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.12.tgz", - "integrity": "sha512-4TAIFkOhehbi0aWs5F1N7P+mfY3a6gB7FLeYXc92Kh+Zy8dUEiYniUul2ySYe4bHV9z95BdenvZitGIgilR8Aw==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.13.tgz", + "integrity": "sha512-pRKmR88gTPIrpBFlQ6GKGYjvT2jiNoPMm0vRTI9VmyVPXCxdmHzKUh8H4JPzoWrYx06nSGXpPTA9obIjyiWb4g==", "dev": true, "dependencies": { "@linthtml/linthtml": "0.9.5", diff --git a/package.json b/package.json index 537e5811a..fc396281e 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.12", + "linthtml-config-htmlacademy": "1.0.13", "npm-run-all": "4.1.5", "postcss": "8.4.31", "postcss-csso": "6.0.1", From 0de426f483b23f0cc244401f93deaf096583380d Mon Sep 17 00:00:00 2001 From: firefoxic Date: Fri, 1 Dec 2023 21:26:23 +0300 Subject: [PATCH 048/116] Update required actions --- .github/workflows/check.yml | 4 ++-- .github/workflows/gh-pages.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 2d87fb2e4..f91d338e0 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -17,10 +17,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version-file: 'package.json' diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 3a4a03b22..d6ad03a2c 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -17,10 +17,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version-file: 'package.json' From 8090a34439c33759da468ee7e17daa18f403121d Mon Sep 17 00:00:00 2001 From: firefoxic Date: Mon, 4 Dec 2023 16:57:52 +0300 Subject: [PATCH 049/116] Update dependencies --- package-lock.json | 274 +++++++++++++++++++++++----------------------- package.json | 4 +- 2 files changed, 139 insertions(+), 139 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4f9de1eeb..2981e56c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "autoprefixer": "10.4.16", "browser-sync": "2.29.3", "browserslist-to-esbuild": "1.2.0", - "eslint": "8.54.0", + "eslint": "8.55.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-esbuild": "0.12.0", @@ -28,7 +28,7 @@ "gulp-svgmin": "4.1.0", "linthtml-config-htmlacademy": "1.0.13", "npm-run-all": "4.1.5", - "postcss": "8.4.31", + "postcss": "8.4.32", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.69.5", @@ -50,9 +50,9 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", - "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "dev": true, "dependencies": { "@babel/highlight": "^7.23.4", @@ -314,9 +314,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.7.tgz", - "integrity": "sha512-YGSPnndkcLo4PmVl2tKatEn+0mlVMr3yEpOOT0BeMria87PhvoJb5dg5f5Ft9fbCVgtAz4pWMzZVgSEGpDAlww==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.8.tgz", + "integrity": "sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==", "cpu": [ "arm" ], @@ -330,9 +330,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.7.tgz", - "integrity": "sha512-YEDcw5IT7hW3sFKZBkCAQaOCJQLONVcD4bOyTXMZz5fr66pTHnAet46XAtbXAkJRfIn2YVhdC6R9g4xa27jQ1w==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz", + "integrity": "sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==", "cpu": [ "arm64" ], @@ -346,9 +346,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.7.tgz", - "integrity": "sha512-jhINx8DEjz68cChFvM72YzrqfwJuFbfvSxZAk4bebpngGfNNRm+zRl4rtT9oAX6N9b6gBcFaJHFew5Blf6CvUw==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.8.tgz", + "integrity": "sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==", "cpu": [ "x64" ], @@ -362,9 +362,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.7.tgz", - "integrity": "sha512-dr81gbmWN//3ZnBIm6YNCl4p3pjnabg1/ZVOgz2fJoUO1a3mq9WQ/1iuEluMs7mCL+Zwv7AY5e3g1hjXqQZ9Iw==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz", + "integrity": "sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==", "cpu": [ "arm64" ], @@ -378,9 +378,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.7.tgz", - "integrity": "sha512-Lc0q5HouGlzQEwLkgEKnWcSazqr9l9OdV2HhVasWJzLKeOt0PLhHaUHuzb8s/UIya38DJDoUm74GToZ6Wc7NGQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz", + "integrity": "sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==", "cpu": [ "x64" ], @@ -394,9 +394,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.7.tgz", - "integrity": "sha512-+y2YsUr0CxDFF7GWiegWjGtTUF6gac2zFasfFkRJPkMAuMy9O7+2EH550VlqVdpEEchWMynkdhC9ZjtnMiHImQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz", + "integrity": "sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==", "cpu": [ "arm64" ], @@ -410,9 +410,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.7.tgz", - "integrity": "sha512-CdXOxIbIzPJmJhrpmJTLx+o35NoiKBIgOvmvT+jeSadYiWJn0vFKsl+0bSG/5lwjNHoIDEyMYc/GAPR9jxusTA==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz", + "integrity": "sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==", "cpu": [ "x64" ], @@ -426,9 +426,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.7.tgz", - "integrity": "sha512-Y+SCmWxsJOdQtjcBxoacn/pGW9HDZpwsoof0ttL+2vGcHokFlfqV666JpfLCSP2xLxFpF1lj7T3Ox3sr95YXww==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz", + "integrity": "sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==", "cpu": [ "arm" ], @@ -442,9 +442,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.7.tgz", - "integrity": "sha512-inHqdOVCkUhHNvuQPT1oCB7cWz9qQ/Cz46xmVe0b7UXcuIJU3166aqSunsqkgSGMtUCWOZw3+KMwI6otINuC9g==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz", + "integrity": "sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==", "cpu": [ "arm64" ], @@ -458,9 +458,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.7.tgz", - "integrity": "sha512-2BbiL7nLS5ZO96bxTQkdO0euGZIUQEUXMTrqLxKUmk/Y5pmrWU84f+CMJpM8+EHaBPfFSPnomEaQiG/+Gmh61g==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz", + "integrity": "sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==", "cpu": [ "ia32" ], @@ -474,9 +474,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.7.tgz", - "integrity": "sha512-BVFQla72KXv3yyTFCQXF7MORvpTo4uTA8FVFgmwVrqbB/4DsBFWilUm1i2Oq6zN36DOZKSVUTb16jbjedhfSHw==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz", + "integrity": "sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==", "cpu": [ "loong64" ], @@ -490,9 +490,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.7.tgz", - "integrity": "sha512-DzAYckIaK+pS31Q/rGpvUKu7M+5/t+jI+cdleDgUwbU7KdG2eC3SUbZHlo6Q4P1CfVKZ1lUERRFP8+q0ob9i2w==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz", + "integrity": "sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==", "cpu": [ "mips64el" ], @@ -506,9 +506,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.7.tgz", - "integrity": "sha512-JQ1p0SmUteNdUaaiRtyS59GkkfTW0Edo+e0O2sihnY4FoZLz5glpWUQEKMSzMhA430ctkylkS7+vn8ziuhUugQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz", + "integrity": "sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==", "cpu": [ "ppc64" ], @@ -522,9 +522,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.7.tgz", - "integrity": "sha512-xGwVJ7eGhkprY/nB7L7MXysHduqjpzUl40+XoYDGC4UPLbnG+gsyS1wQPJ9lFPcxYAaDXbdRXd1ACs9AE9lxuw==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz", + "integrity": "sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==", "cpu": [ "riscv64" ], @@ -538,9 +538,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.7.tgz", - "integrity": "sha512-U8Rhki5PVU0L0nvk+E8FjkV8r4Lh4hVEb9duR6Zl21eIEYEwXz8RScj4LZWA2i3V70V4UHVgiqMpszXvG0Yqhg==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz", + "integrity": "sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==", "cpu": [ "s390x" ], @@ -554,9 +554,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.7.tgz", - "integrity": "sha512-ZYZopyLhm4mcoZXjFt25itRlocKlcazDVkB4AhioiL9hOWhDldU9n38g62fhOI4Pth6vp+Mrd5rFKxD0/S+7aQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz", + "integrity": "sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==", "cpu": [ "x64" ], @@ -570,9 +570,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.7.tgz", - "integrity": "sha512-/yfjlsYmT1O3cum3J6cmGG16Fd5tqKMcg5D+sBYLaOQExheAJhqr8xOAEIuLo8JYkevmjM5zFD9rVs3VBcsjtQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz", + "integrity": "sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==", "cpu": [ "x64" ], @@ -586,9 +586,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.7.tgz", - "integrity": "sha512-MYDFyV0EW1cTP46IgUJ38OnEY5TaXxjoDmwiTXPjezahQgZd+j3T55Ht8/Q9YXBM0+T9HJygrSRGV5QNF/YVDQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz", + "integrity": "sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==", "cpu": [ "x64" ], @@ -602,9 +602,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.7.tgz", - "integrity": "sha512-JcPvgzf2NN/y6X3UUSqP6jSS06V0DZAV/8q0PjsZyGSXsIGcG110XsdmuWiHM+pno7/mJF6fjH5/vhUz/vA9fw==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz", + "integrity": "sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==", "cpu": [ "x64" ], @@ -618,9 +618,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.7.tgz", - "integrity": "sha512-ZA0KSYti5w5toax5FpmfcAgu3ZNJxYSRm0AW/Dao5up0YV1hDVof1NvwLomjEN+3/GMtaWDI+CIyJOMTRSTdMw==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz", + "integrity": "sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==", "cpu": [ "arm64" ], @@ -634,9 +634,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.7.tgz", - "integrity": "sha512-CTOnijBKc5Jpk6/W9hQMMvJnsSYRYgveN6O75DTACCY18RA2nqka8dTZR+x/JqXCRiKk84+5+bRKXUSbbwsS0A==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz", + "integrity": "sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==", "cpu": [ "ia32" ], @@ -650,9 +650,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.7.tgz", - "integrity": "sha512-gRaP2sk6hc98N734luX4VpF318l3w+ofrtTu9j5L8EQXF+FzQKV6alCOHMVoJJHvVK/mGbwBXfOL1HETQu9IGQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz", + "integrity": "sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==", "cpu": [ "x64" ], @@ -690,9 +690,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -754,9 +754,9 @@ "dev": true }, "node_modules/@eslint/js": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", - "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", + "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1127,9 +1127,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.9.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.4.tgz", - "integrity": "sha512-wmyg8HUhcn6ACjsn8oKYjkN/zUzQeNtMy44weTJSM6p4MMzEOuKbA3OjJ267uPCOW7Xex9dyrNTful8XTQYoDA==", + "version": "20.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.3.tgz", + "integrity": "sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -2265,9 +2265,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", "dev": true, "funding": [ { @@ -2284,9 +2284,9 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, "bin": { @@ -2478,9 +2478,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001564", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz", - "integrity": "sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==", + "version": "1.0.30001566", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz", + "integrity": "sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==", "dev": true, "funding": [ { @@ -2672,9 +2672,9 @@ } }, "node_modules/cli-spinners": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz", - "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, "engines": { "node": ">=6" @@ -3798,9 +3798,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.593", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.593.tgz", - "integrity": "sha512-c7+Hhj87zWmdpmjDONbvNKNo24tvmD4mjal1+qqTYTrlF0/sNpAcDlU0Ki84ftA/5yj3BF2QhSGEC0Rky6larg==", + "version": "1.4.601", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.601.tgz", + "integrity": "sha512-SpwUMDWe9tQu8JX5QCO1+p/hChAi9AE9UpoC3rcHVc+gdCGlbT3SGb5I1klgb952HRIyvt9wZhSz9bNBYz9swA==", "dev": true }, "node_modules/elliptic": { @@ -4122,9 +4122,9 @@ } }, "node_modules/esbuild": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.7.tgz", - "integrity": "sha512-6brbTZVqxhqgbpqBR5MzErImcpA0SQdoKOkcWK/U30HtQxnokIpG3TX2r0IJqbFUzqLjhU/zC1S5ndgakObVCQ==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.8.tgz", + "integrity": "sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==", "dev": true, "hasInstallScript": true, "bin": { @@ -4134,28 +4134,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.7", - "@esbuild/android-arm64": "0.19.7", - "@esbuild/android-x64": "0.19.7", - "@esbuild/darwin-arm64": "0.19.7", - "@esbuild/darwin-x64": "0.19.7", - "@esbuild/freebsd-arm64": "0.19.7", - "@esbuild/freebsd-x64": "0.19.7", - "@esbuild/linux-arm": "0.19.7", - "@esbuild/linux-arm64": "0.19.7", - "@esbuild/linux-ia32": "0.19.7", - "@esbuild/linux-loong64": "0.19.7", - "@esbuild/linux-mips64el": "0.19.7", - "@esbuild/linux-ppc64": "0.19.7", - "@esbuild/linux-riscv64": "0.19.7", - "@esbuild/linux-s390x": "0.19.7", - "@esbuild/linux-x64": "0.19.7", - "@esbuild/netbsd-x64": "0.19.7", - "@esbuild/openbsd-x64": "0.19.7", - "@esbuild/sunos-x64": "0.19.7", - "@esbuild/win32-arm64": "0.19.7", - "@esbuild/win32-ia32": "0.19.7", - "@esbuild/win32-x64": "0.19.7" + "@esbuild/android-arm": "0.19.8", + "@esbuild/android-arm64": "0.19.8", + "@esbuild/android-x64": "0.19.8", + "@esbuild/darwin-arm64": "0.19.8", + "@esbuild/darwin-x64": "0.19.8", + "@esbuild/freebsd-arm64": "0.19.8", + "@esbuild/freebsd-x64": "0.19.8", + "@esbuild/linux-arm": "0.19.8", + "@esbuild/linux-arm64": "0.19.8", + "@esbuild/linux-ia32": "0.19.8", + "@esbuild/linux-loong64": "0.19.8", + "@esbuild/linux-mips64el": "0.19.8", + "@esbuild/linux-ppc64": "0.19.8", + "@esbuild/linux-riscv64": "0.19.8", + "@esbuild/linux-s390x": "0.19.8", + "@esbuild/linux-x64": "0.19.8", + "@esbuild/netbsd-x64": "0.19.8", + "@esbuild/openbsd-x64": "0.19.8", + "@esbuild/sunos-x64": "0.19.8", + "@esbuild/win32-arm64": "0.19.8", + "@esbuild/win32-ia32": "0.19.8", + "@esbuild/win32-x64": "0.19.8" } }, "node_modules/escalade": { @@ -4186,15 +4186,15 @@ } }, "node_modules/eslint": { - "version": "8.54.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", - "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", + "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.54.0", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.55.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -9211,9 +9211,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/normalize-package-data": { @@ -9597,13 +9597,13 @@ } }, "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==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -10226,9 +10226,9 @@ } }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "dev": true, "funding": [ { @@ -10245,7 +10245,7 @@ } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, diff --git a/package.json b/package.json index fc396281e..44dc78698 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "autoprefixer": "10.4.16", "browser-sync": "2.29.3", "browserslist-to-esbuild": "1.2.0", - "eslint": "8.54.0", + "eslint": "8.55.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-esbuild": "0.12.0", @@ -50,7 +50,7 @@ "gulp-svgmin": "4.1.0", "linthtml-config-htmlacademy": "1.0.13", "npm-run-all": "4.1.5", - "postcss": "8.4.31", + "postcss": "8.4.32", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.69.5", From 52bf4571e59fd01a31bea70cc633aa0152e78416 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Mon, 4 Dec 2023 17:00:39 +0300 Subject: [PATCH 050/116] Bump `gulp-html-bemlinter` from `3.0.0` to `3.0.1` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes the coloring and informative of the error output in the terminal. --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2981e56c8..726004f2f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-esbuild": "0.12.0", - "gulp-html-bemlinter": "3.0.0", + "gulp-html-bemlinter": "3.0.1", "gulp-htmlmin": "5.0.1", "gulp-nunjucks": "6.0.0", "gulp-plumber": "1.2.1", @@ -6368,9 +6368,9 @@ } }, "node_modules/gulp-html-bemlinter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-html-bemlinter/-/gulp-html-bemlinter-3.0.0.tgz", - "integrity": "sha512-iqKPaIvzKTqlMRSyXLMJVy2j48bEeBqG8ZuhMu8b5SJbMG1RPLlQOuDtOn04PWXjJinbAF2/qtqTaL7TZqDZUw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/gulp-html-bemlinter/-/gulp-html-bemlinter-3.0.1.tgz", + "integrity": "sha512-MVy3WYGk+PXtOTZ5AWVpU7y7YJ5bwax1crlVOFbOCobI6H1pzt3hXXfD5V/PCsa9hYpFrO7SAiQvbJsupSULog==", "dev": true, "dependencies": { "chalk": "^5.3.0", diff --git a/package.json b/package.json index 44dc78698..31bc3ebdc 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-esbuild": "0.12.0", - "gulp-html-bemlinter": "3.0.0", + "gulp-html-bemlinter": "3.0.1", "gulp-htmlmin": "5.0.1", "gulp-nunjucks": "6.0.0", "gulp-plumber": "1.2.1", From ecba8fad0c258f7b61156e450415f87e9a037a62 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Mon, 4 Dec 2023 17:08:25 +0300 Subject: [PATCH 051/116] Fix the coloring in GitHub CI --- .github/workflows/check.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index f91d338e0..f2458ff96 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -36,3 +36,5 @@ jobs: - name: Run checks run: npm run lint + env: + FORCE_COLOR: true From eaca2e8efcfeeb563923792b052eeca8065b140f Mon Sep 17 00:00:00 2001 From: firefoxic Date: Mon, 4 Dec 2023 20:10:03 +0300 Subject: [PATCH 052/116] Get all the errors output --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 31bc3ebdc..a86dc5563 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "build": "gulp buildProd", "preview": "npm run build && browser-sync start -s build/ --cors --no-notify --no-ui", "prelint": "gulp processMarkup --silent", - "lint": "npm-run-all -p lint:**", + "lint": "npm-run-all -pc lint:**", "lint:spaces": "editorconfig-cli", "lint:markup": "cd build && html-validator --quiet", "lint:html": "linthtml build/**/*.html --config .linthtmlrc", From c01645d04d55bca18d3aae3601f75524aa134d8d Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 9 Dec 2023 00:20:57 +0300 Subject: [PATCH 053/116] Fix assets watcher --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index 4974050b4..4a47055f7 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -168,7 +168,7 @@ export function startServer () { watch(`${PATH_TO_SOURCE}styles/**/*.scss`, series(processStyles)); watch(`${PATH_TO_SOURCE}scripts/**/*.js`, series(processScripts)); watch(`${PATH_TO_SOURCE}images/icons/**/*.svg`, series(createStack, reloadServer)); - watch(PATHS_TO_STATIC, series(copyAssets, reloadServer)); + watch(PATHS_TO_STATIC, series(reloadServer)); } function reloadServer (done) { From 33e531cff6eed5cad2636ab13445075e97c10ed6 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 9 Dec 2023 06:18:28 +0300 Subject: [PATCH 054/116] Rename task --- gulpfile.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 4a47055f7..2f83b3eea 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -118,7 +118,7 @@ export function createStack () { .pipe(dest(`${PATH_TO_DIST}images/icons`)); } -export function copyAssets () { +export function copyStatic () { return src(PATHS_TO_STATIC, { base: PATH_TO_SOURCE }) .pipe(dest(PATH_TO_DIST)); } @@ -193,7 +193,7 @@ export function buildProd (done) { processStyles, processScripts, createStack, - copyAssets, + copyStatic, ), )(done); } From 30df2f951dc4b4dea9f5e8a2af487e3c99cc3457 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 9 Dec 2023 07:07:09 +0300 Subject: [PATCH 055/116] Get routes from paths to static --- gulpfile.js | 38 +++++++++++--------------------------- 1 file changed, 11 insertions(+), 27 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 2f83b3eea..ad4b64993 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -27,7 +27,7 @@ const PATHS_TO_STATIC = [ `${PATH_TO_SOURCE}fonts/**/*.{woff2,woff}`, `${PATH_TO_SOURCE}*.ico`, `${PATH_TO_SOURCE}*.webmanifest`, - `${PATH_TO_SOURCE}favicons/*.{png,svg}`, + `${PATH_TO_SOURCE}favicons/**/*.{png,svg}`, `${PATH_TO_SOURCE}vendor/**/*`, `${PATH_TO_SOURCE}images/**/*`, `!${PATH_TO_SOURCE}images/icons/**/*`, @@ -124,36 +124,20 @@ export function copyStatic () { } export function startServer () { + const serveStatic = PATHS_TO_STATIC + .filter((path) => path.startsWith('!') === false) + .map((path) => { + const dir = path.replace(/\*\*(.*)/, ''); + const route = dir.replace(PATH_TO_SOURCE, '/') + + return { route, dir }; + }); + server.init({ server: { baseDir: PATH_TO_DIST }, - serveStatic: [ - { - route: '/fonts', - dir: `${PATH_TO_SOURCE}fonts`, - }, - { - route: '/*.ico', - dir: `${PATH_TO_SOURCE}*.ico`, - }, - { - route: '/*.webmanifest', - dir: `${PATH_TO_SOURCE}*.webmanifest`, - }, - { - route: '/favicons', - dir: `${PATH_TO_SOURCE}favicons`, - }, - { - route: '/vendor', - dir: `${PATH_TO_SOURCE}vendor`, - }, - { - route: '/images', - dir: `${PATH_TO_SOURCE}images`, - }, - ], + serveStatic, cors: true, notify: false, ui: false, From 5c1f0c4c91293e8a24d1226c8d5a296e6f917553 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 9 Dec 2023 07:14:31 +0300 Subject: [PATCH 056/116] fixup! Get routes from paths to static --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index ad4b64993..35fd37d3b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -128,7 +128,7 @@ export function startServer () { .filter((path) => path.startsWith('!') === false) .map((path) => { const dir = path.replace(/\*\*(.*)/, ''); - const route = dir.replace(PATH_TO_SOURCE, '/') + const route = dir.replace(PATH_TO_SOURCE, '/'); return { route, dir }; }); From 810b5a572b1691a28747cf7265a54b8678edf379 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Wed, 13 Dec 2023 15:08:40 +0300 Subject: [PATCH 057/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 305 +++++++++++++--------------------------------- package.json | 4 +- 2 files changed, 87 insertions(+), 222 deletions(-) diff --git a/package-lock.json b/package-lock.json index 726004f2f..3b167a604 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,8 +32,8 @@ "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.69.5", - "stylelint": "15.11.0", - "stylelint-config-htmlacademy": "2.0.6", + "stylelint": "16.0.2", + "stylelint-config-htmlacademy": "3.0.2", "w3c-html-validator": "1.6.1" }, "engines": { @@ -3949,6 +3949,15 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -7300,15 +7309,6 @@ "node": ">=4" } }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -10317,19 +10317,29 @@ "dev": true }, "node_modules/postcss-safe-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", - "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz", + "integrity": "sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "node": ">=18.0" }, "peerDependencies": { - "postcss": "^8.3.3" + "postcss": "^8.4.31" } }, "node_modules/postcss-scss": { @@ -12588,47 +12598,45 @@ "dev": true }, "node_modules/stylelint": { - "version": "15.11.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz", - "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==", + "version": "16.0.2", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.0.2.tgz", + "integrity": "sha512-SxA/rg3VWxdoHZlW0nmVueWO1E7TAKW4W6mmA3iTxxEF9bIeQdFZu2oiBlQYyNe1pGnOamOqo2XYnI7cs5Bgow==", "dev": true, "dependencies": { - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0", - "@csstools/media-query-list-parser": "^2.1.4", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/media-query-list-parser": "^2.1.5", "@csstools/selector-specificity": "^3.0.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", - "cosmiconfig": "^8.2.0", + "cosmiconfig": "^9.0.0", "css-functions-list": "^3.2.1", "css-tree": "^2.3.1", "debug": "^4.3.4", - "fast-glob": "^3.3.1", + "fast-glob": "^3.3.2", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^7.0.0", + "file-entry-cache": "^7.0.2", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^5.2.4", - "import-lazy": "^4.0.0", + "ignore": "^5.3.0", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", "known-css-properties": "^0.29.0", "mathml-tag-names": "^2.1.3", - "meow": "^10.1.5", + "meow": "^12.1.1", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.28", + "postcss": "^8.4.32", "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^6.0.0", + "postcss-safe-parser": "^7.0.0", "postcss-selector-parser": "^6.0.13", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "style-search": "^0.1.0", + "strip-ansi": "^7.1.0", "supports-hyperlinks": "^3.0.0", "svg-tags": "^1.0.0", "table": "^6.8.1", @@ -12638,7 +12646,7 @@ "stylelint": "bin/stylelint.mjs" }, "engines": { - "node": "^14.13.1 || >=16.0.0" + "node": ">=18.12.0" }, "funding": { "type": "opencollective", @@ -12646,42 +12654,54 @@ } }, "node_modules/stylelint-codeguide": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/stylelint-codeguide/-/stylelint-codeguide-0.3.2.tgz", - "integrity": "sha512-h0Ji45U3URXZF1wdchQorQAIC2sY64Q7JszIFNcyfo+lL4anIZGMOB88bCpo9EMPolIe3AMvdxITAqBKO4kGzg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stylelint-codeguide/-/stylelint-codeguide-1.0.2.tgz", + "integrity": "sha512-5JmVR4hgo9JkzK0KsLZd/UVr0kHhgwYVdF1bE09/KvLoAWl6h1SX24SIQ/o0rChV+TNsHCDCqOikVjNcVWbwCQ==", "dev": true, "dependencies": { "@csstools/css-parser-algorithms": "^2.3.2", "@csstools/css-tokenizer": "^2.2.1", "@csstools/media-query-list-parser": "^2.1.5", - "html-tags": "^3.3.1", "is-plain-object": "^5.0.0", "postcss-selector-parser": "^6.0.13", "postcss-value-parser": "^4.2.0", - "style-search": "^0.1.0" + "style-search": "^0.1.0", + "stylelint": "^16.0.2" }, "engines": { - "node": ">=18.16" + "node": "^18.12 || >=20.9" }, "peerDependencies": { - "stylelint": "^15.11.0" + "stylelint": "^16.0.2" } }, "node_modules/stylelint-config-htmlacademy": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-2.0.6.tgz", - "integrity": "sha512-UEx75MXvduv4b0mK0ER9y7D5uwxqQs5tqHnRXfR+C+rRG/iO9RU0xjQK6+S3YRpjEO+0GZOe+3Pp9MYm0A4lZg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-3.0.2.tgz", + "integrity": "sha512-WULLZKKJ+Ydi/td9NPky9Ugv4zFpn5C2/ydrjX4sYYT3m2bh3DwGN77cmi1G7aAN1OpZUvlrJHNxaKUujov8ug==", "dev": true, "dependencies": { "postcss-less": "6.0.0", "postcss-scss": "4.0.9", - "stylelint-codeguide": "0.3.2" + "stylelint-codeguide": "1.0.2" }, "engines": { - "node": ">=18.16.0" + "node": ">=18.12.0" }, "peerDependencies": { - "stylelint": "~15.11" + "stylelint": "^16.0.0" + } + }, + "node_modules/stylelint/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/stylelint/node_modules/argparse": { @@ -12696,46 +12716,16 @@ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "dev": true }, - "node_modules/stylelint/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/camelcase-keys": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", - "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", - "dev": true, - "dependencies": { - "camelcase": "^6.3.0", - "map-obj": "^4.1.0", - "quick-lru": "^5.1.1", - "type-fest": "^1.2.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/stylelint/node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, "dependencies": { + "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" + "parse-json": "^5.2.0" }, "engines": { "node": ">=14" @@ -12782,18 +12772,6 @@ } } }, - "node_modules/stylelint/node_modules/decamelize": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", - "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/stylelint/node_modules/file-entry-cache": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz", @@ -12826,18 +12804,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stylelint/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/stylelint/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -12857,26 +12823,12 @@ "dev": true }, "node_modules/stylelint/node_modules/meow": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", - "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", "dev": true, - "dependencies": { - "@types/minimist": "^1.2.2", - "camelcase-keys": "^7.0.0", - "decamelize": "^5.0.0", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.2", - "read-pkg-up": "^8.0.0", - "redent": "^4.0.0", - "trim-newlines": "^4.0.2", - "type-fest": "^1.2.2", - "yargs-parser": "^20.2.9" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=16.10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -12888,69 +12840,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/stylelint/node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/read-pkg": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", - "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^3.0.2", - "parse-json": "^5.2.0", - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/read-pkg-up": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", - "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", - "dev": true, - "dependencies": { - "find-up": "^5.0.0", - "read-pkg": "^6.0.0", - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/redent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", - "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", - "dev": true, - "dependencies": { - "indent-string": "^5.0.0", - "strip-indent": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/stylelint/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -12960,43 +12849,19 @@ "node": ">=8" } }, - "node_modules/stylelint/node_modules/strip-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", - "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "node_modules/stylelint/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "dependencies": { - "min-indent": "^1.0.1" + "ansi-regex": "^6.0.1" }, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/trim-newlines": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", - "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stylelint/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/superagent": { diff --git a/package.json b/package.json index a86dc5563..cb56d442a 100644 --- a/package.json +++ b/package.json @@ -54,8 +54,8 @@ "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.69.5", - "stylelint": "15.11.0", - "stylelint-config-htmlacademy": "2.0.6", + "stylelint": "16.0.2", + "stylelint-config-htmlacademy": "3.0.2", "w3c-html-validator": "1.6.1" } } From dc0c48565ef4c834a240c1a5ba72555330d5e857 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Thu, 14 Dec 2023 16:00:53 +0300 Subject: [PATCH 058/116] Bump `linthtml-config-htmlacademy` from `1.0.13` to `1.0.14` --- package-lock.json | 228 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 115 insertions(+), 115 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3b167a604..460b1d4e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.13", + "linthtml-config-htmlacademy": "1.0.14", "npm-run-all": "4.1.5", "postcss": "8.4.32", "postcss-csso": "6.0.1", @@ -314,9 +314,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.8.tgz", - "integrity": "sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.9.tgz", + "integrity": "sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==", "cpu": [ "arm" ], @@ -330,9 +330,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz", - "integrity": "sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz", + "integrity": "sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==", "cpu": [ "arm64" ], @@ -346,9 +346,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.8.tgz", - "integrity": "sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.9.tgz", + "integrity": "sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==", "cpu": [ "x64" ], @@ -362,9 +362,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz", - "integrity": "sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz", + "integrity": "sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==", "cpu": [ "arm64" ], @@ -378,9 +378,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz", - "integrity": "sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz", + "integrity": "sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==", "cpu": [ "x64" ], @@ -394,9 +394,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz", - "integrity": "sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz", + "integrity": "sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==", "cpu": [ "arm64" ], @@ -410,9 +410,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz", - "integrity": "sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz", + "integrity": "sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==", "cpu": [ "x64" ], @@ -426,9 +426,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz", - "integrity": "sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz", + "integrity": "sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==", "cpu": [ "arm" ], @@ -442,9 +442,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz", - "integrity": "sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz", + "integrity": "sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==", "cpu": [ "arm64" ], @@ -458,9 +458,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz", - "integrity": "sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz", + "integrity": "sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==", "cpu": [ "ia32" ], @@ -474,9 +474,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz", - "integrity": "sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz", + "integrity": "sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==", "cpu": [ "loong64" ], @@ -490,9 +490,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz", - "integrity": "sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz", + "integrity": "sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==", "cpu": [ "mips64el" ], @@ -506,9 +506,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz", - "integrity": "sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz", + "integrity": "sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==", "cpu": [ "ppc64" ], @@ -522,9 +522,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz", - "integrity": "sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz", + "integrity": "sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==", "cpu": [ "riscv64" ], @@ -538,9 +538,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz", - "integrity": "sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz", + "integrity": "sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==", "cpu": [ "s390x" ], @@ -554,9 +554,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz", - "integrity": "sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz", + "integrity": "sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==", "cpu": [ "x64" ], @@ -570,9 +570,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz", - "integrity": "sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz", + "integrity": "sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==", "cpu": [ "x64" ], @@ -586,9 +586,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz", - "integrity": "sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz", + "integrity": "sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==", "cpu": [ "x64" ], @@ -602,9 +602,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz", - "integrity": "sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz", + "integrity": "sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==", "cpu": [ "x64" ], @@ -618,9 +618,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz", - "integrity": "sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz", + "integrity": "sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==", "cpu": [ "arm64" ], @@ -634,9 +634,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz", - "integrity": "sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz", + "integrity": "sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==", "cpu": [ "ia32" ], @@ -650,9 +650,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz", - "integrity": "sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz", + "integrity": "sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==", "cpu": [ "x64" ], @@ -1127,9 +1127,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.10.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.3.tgz", - "integrity": "sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg==", + "version": "20.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz", + "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -2478,9 +2478,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001566", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz", - "integrity": "sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==", + "version": "1.0.30001570", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", + "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==", "dev": true, "funding": [ { @@ -3798,9 +3798,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.601", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.601.tgz", - "integrity": "sha512-SpwUMDWe9tQu8JX5QCO1+p/hChAi9AE9UpoC3rcHVc+gdCGlbT3SGb5I1klgb952HRIyvt9wZhSz9bNBYz9swA==", + "version": "1.4.612", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.612.tgz", + "integrity": "sha512-dM8BMtXtlH237ecSMnYdYuCkib2QHq0kpWfUnavjdYsyr/6OsAwg5ZGUfnQ9KD1Ga4QgB2sqXlB2NT8zy2GnVg==", "dev": true }, "node_modules/elliptic": { @@ -4131,9 +4131,9 @@ } }, "node_modules/esbuild": { - "version": "0.19.8", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.8.tgz", - "integrity": "sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.9.tgz", + "integrity": "sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==", "dev": true, "hasInstallScript": true, "bin": { @@ -4143,28 +4143,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.8", - "@esbuild/android-arm64": "0.19.8", - "@esbuild/android-x64": "0.19.8", - "@esbuild/darwin-arm64": "0.19.8", - "@esbuild/darwin-x64": "0.19.8", - "@esbuild/freebsd-arm64": "0.19.8", - "@esbuild/freebsd-x64": "0.19.8", - "@esbuild/linux-arm": "0.19.8", - "@esbuild/linux-arm64": "0.19.8", - "@esbuild/linux-ia32": "0.19.8", - "@esbuild/linux-loong64": "0.19.8", - "@esbuild/linux-mips64el": "0.19.8", - "@esbuild/linux-ppc64": "0.19.8", - "@esbuild/linux-riscv64": "0.19.8", - "@esbuild/linux-s390x": "0.19.8", - "@esbuild/linux-x64": "0.19.8", - "@esbuild/netbsd-x64": "0.19.8", - "@esbuild/openbsd-x64": "0.19.8", - "@esbuild/sunos-x64": "0.19.8", - "@esbuild/win32-arm64": "0.19.8", - "@esbuild/win32-ia32": "0.19.8", - "@esbuild/win32-x64": "0.19.8" + "@esbuild/android-arm": "0.19.9", + "@esbuild/android-arm64": "0.19.9", + "@esbuild/android-x64": "0.19.9", + "@esbuild/darwin-arm64": "0.19.9", + "@esbuild/darwin-x64": "0.19.9", + "@esbuild/freebsd-arm64": "0.19.9", + "@esbuild/freebsd-x64": "0.19.9", + "@esbuild/linux-arm": "0.19.9", + "@esbuild/linux-arm64": "0.19.9", + "@esbuild/linux-ia32": "0.19.9", + "@esbuild/linux-loong64": "0.19.9", + "@esbuild/linux-mips64el": "0.19.9", + "@esbuild/linux-ppc64": "0.19.9", + "@esbuild/linux-riscv64": "0.19.9", + "@esbuild/linux-s390x": "0.19.9", + "@esbuild/linux-x64": "0.19.9", + "@esbuild/netbsd-x64": "0.19.9", + "@esbuild/openbsd-x64": "0.19.9", + "@esbuild/sunos-x64": "0.19.9", + "@esbuild/win32-arm64": "0.19.9", + "@esbuild/win32-ia32": "0.19.9", + "@esbuild/win32-x64": "0.19.9" } }, "node_modules/escalade": { @@ -5944,9 +5944,9 @@ } }, "node_modules/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -8245,19 +8245,19 @@ "dev": true }, "node_modules/linthtml-config-htmlacademy": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.13.tgz", - "integrity": "sha512-pRKmR88gTPIrpBFlQ6GKGYjvT2jiNoPMm0vRTI9VmyVPXCxdmHzKUh8H4JPzoWrYx06nSGXpPTA9obIjyiWb4g==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.14.tgz", + "integrity": "sha512-gopMjniGu5R60O0Od4B2KV+YFvKNCEZ76fqrFBWek/3mFVmXxp/X0hsCXDeulBxg/AR3D3ZAfRpSHaTv2RQU5g==", "dev": true, "dependencies": { "@linthtml/linthtml": "0.9.5", - "linthtml-rules-htmlacademy": "1.0.9" + "linthtml-rules-htmlacademy": "1.0.10" } }, "node_modules/linthtml-rules-htmlacademy": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.9.tgz", - "integrity": "sha512-4wwtXLVbhhRPerqLdMfyNllNSZmDo3/Zvj8O0F2GPBKJmpARYJy8kohjz6QsjSe9vpyXe7wR019wZ4zO9M6RnA==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.10.tgz", + "integrity": "sha512-v2bUszCQZNu/wXNvYbOtA6X2CVsrSX+eVntC2o4W0SXyKRi1vjXQhOc2T5yBgU7SCkKS9OEkQ+YSs68vbZFntg==", "dev": true }, "node_modules/lintspaces": { @@ -12404,9 +12404,9 @@ "dev": true }, "node_modules/streamx": { - "version": "2.15.5", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz", - "integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==", + "version": "2.15.6", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", + "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", "dev": true, "dependencies": { "fast-fifo": "^1.1.0", diff --git a/package.json b/package.json index cb56d442a..c6129f903 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.13", + "linthtml-config-htmlacademy": "1.0.14", "npm-run-all": "4.1.5", "postcss": "8.4.32", "postcss-csso": "6.0.1", From b8eec470ca7f4c4026ee6c38330babbfe5292f3c Mon Sep 17 00:00:00 2001 From: firefoxic Date: Thu, 14 Dec 2023 16:03:42 +0300 Subject: [PATCH 059/116] Exclude vendor/ from linting --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c6129f903..c0e19e9c7 100644 --- a/package.json +++ b/package.json @@ -19,12 +19,12 @@ "preview": "npm run build && browser-sync start -s build/ --cors --no-notify --no-ui", "prelint": "gulp processMarkup --silent", "lint": "npm-run-all -pc lint:**", - "lint:spaces": "editorconfig-cli", + "lint:spaces": "ec --exclude vendor/*", "lint:markup": "cd build && html-validator --quiet", "lint:html": "linthtml build/**/*.html --config .linthtmlrc", "lint:bem": "gulp lintBem --silent", "lint:styles": "stylelint \"source/styles/**/*.scss\"", - "lint:scripts": "eslint . --ignore-path .gitignore", + "lint:scripts": "eslint . --ignore-path .gitignore --ignore-pattern 'vendor/**'", "optimize": "npm-run-all -p optimize:**", "optimize:raster": "gulp optimizeRaster", "optimize:vector": "gulp optimizeVector" From c35af5b4cf273f2f568e785a12e0988e1e46d082 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Thu, 14 Dec 2023 17:29:18 +0300 Subject: [PATCH 060/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c0e19e9c7..7b81e3c52 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "htmlacademy-gulp-template", - "version": "1.0.0", + "version": "2.0.6", "private": true, "type": "module", "engines": { From 499ed85319b4e1ac42701ea2965b314baf73b06c Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Mon, 18 Dec 2023 11:12:36 +0300 Subject: [PATCH 061/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 20 ++++++++++---------- package.json | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 460b1d4e7..f3c6aad7b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,19 @@ { "name": "htmlacademy-gulp-template", - "version": "1.0.0", + "version": "2.0.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "htmlacademy-gulp-template", - "version": "1.0.0", + "version": "2.0.6", "devDependencies": { "@htmlacademy/editorconfig-cli": "2.0.8", "@linthtml/linthtml": "0.9.5", "autoprefixer": "10.4.16", "browser-sync": "2.29.3", "browserslist-to-esbuild": "1.2.0", - "eslint": "8.55.0", + "eslint": "8.56.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-esbuild": "0.12.0", @@ -754,9 +754,9 @@ "dev": true }, "node_modules/@eslint/js": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", - "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4195,15 +4195,15 @@ } }, "node_modules/eslint": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", - "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.55.0", + "@eslint/js": "8.56.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", diff --git a/package.json b/package.json index 7b81e3c52..0956afb75 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "autoprefixer": "10.4.16", "browser-sync": "2.29.3", "browserslist-to-esbuild": "1.2.0", - "eslint": "8.55.0", + "eslint": "8.56.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-esbuild": "0.12.0", From b6a2198b74d635c597c0c3ad3248691e50e4239f Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Mon, 25 Dec 2023 16:06:38 +0300 Subject: [PATCH 062/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 218 ++++++++++++++++++++++++++++++++-------------- package.json | 6 +- 2 files changed, 154 insertions(+), 70 deletions(-) diff --git a/package-lock.json b/package-lock.json index f3c6aad7b..35782cc84 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,9 +32,9 @@ "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.69.5", - "stylelint": "16.0.2", - "stylelint-config-htmlacademy": "3.0.2", - "w3c-html-validator": "1.6.1" + "stylelint": "^16.1.0", + "stylelint-config-htmlacademy": "4.0.0", + "w3c-html-validator": "1.6.2" }, "engines": { "node": "^18.18 || ^20.9" @@ -228,9 +228,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz", - "integrity": "sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.4.0.tgz", + "integrity": "sha512-/PPLr2g5PAUCKAPEbfyk6/baZA+WJHQtUhPkoCQMpyRE8I0lXrG1QFRN8e5s3ZYxM8d/g5BZc6lH3s8Op7/VEg==", "dev": true, "funding": [ { @@ -246,13 +246,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.2.1" + "@csstools/css-tokenizer": "^2.2.2" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz", - "integrity": "sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.2.tgz", + "integrity": "sha512-wCDUe/MAw7npAHFLyW3QjSyLA66S5QFaV1jIXlNQvdJ8RzXDSgALa49eWcUO6P55ARQaz0TsDdAgdRgkXFYY8g==", "dev": true, "funding": [ { @@ -269,9 +269,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz", - "integrity": "sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.6.tgz", + "integrity": "sha512-R6AKl9vaU0It7D7TR2lQn0pre5aQfdeqHRePlaRCY8rHL3l9eVlNRpsEVDKFi/zAjzv68CxH2M5kqbhPFPKjvw==", "dev": true, "funding": [ { @@ -287,14 +287,14 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.3.2", - "@csstools/css-tokenizer": "^2.2.1" + "@csstools/css-parser-algorithms": "^2.4.0", + "@csstools/css-tokenizer": "^2.2.2" } }, "node_modules/@csstools/selector-specificity": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", - "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz", + "integrity": "sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==", "dev": true, "funding": [ { @@ -1090,6 +1090,28 @@ "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", "dev": true }, + "node_modules/@stylistic/stylelint-plugin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-2.0.0.tgz", + "integrity": "sha512-dHKuT6PGd1WGZLOTuozAM7GdQzdmlmnFXYzvV1jYJXXpcCpV/OJ3+n8TXpMkoOeKHpJydY43EOoZTO1W/FOA4Q==", + "dev": true, + "dependencies": { + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/media-query-list-parser": "^2.1.5", + "is-plain-object": "^5.0.0", + "postcss-selector-parser": "^6.0.13", + "postcss-value-parser": "^4.2.0", + "style-search": "^0.1.0", + "stylelint": "^16.0.2" + }, + "engines": { + "node": "^18.12 || >=20.9" + }, + "peerDependencies": { + "stylelint": "^16.0.2" + } + }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", @@ -12598,15 +12620,15 @@ "dev": true }, "node_modules/stylelint": { - "version": "16.0.2", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.0.2.tgz", - "integrity": "sha512-SxA/rg3VWxdoHZlW0nmVueWO1E7TAKW4W6mmA3iTxxEF9bIeQdFZu2oiBlQYyNe1pGnOamOqo2XYnI7cs5Bgow==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.1.0.tgz", + "integrity": "sha512-Sh1rRV0lN1qxz/QsuuooLWsIZ/ona7NKw/fRZd6y6PyXYdD2W0EAzJ8yJcwSx4Iw/muz0CF09VZ+z4EiTAcKmg==", "dev": true, "dependencies": { - "@csstools/css-parser-algorithms": "^2.3.2", - "@csstools/css-tokenizer": "^2.2.1", - "@csstools/media-query-list-parser": "^2.1.5", - "@csstools/selector-specificity": "^3.0.0", + "@csstools/css-parser-algorithms": "^2.4.0", + "@csstools/css-tokenizer": "^2.2.2", + "@csstools/media-query-list-parser": "^2.1.6", + "@csstools/selector-specificity": "^3.0.1", "balanced-match": "^2.0.0", "colord": "^2.9.3", "cosmiconfig": "^9.0.0", @@ -12615,7 +12637,7 @@ "debug": "^4.3.4", "fast-glob": "^3.3.2", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^7.0.2", + "file-entry-cache": "^8.0.0", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", @@ -12625,7 +12647,7 @@ "is-plain-object": "^5.0.0", "known-css-properties": "^0.29.0", "mathml-tag-names": "^2.1.3", - "meow": "^12.1.1", + "meow": "^13.0.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", @@ -12653,43 +12675,21 @@ "url": "https://opencollective.com/stylelint" } }, - "node_modules/stylelint-codeguide": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stylelint-codeguide/-/stylelint-codeguide-1.0.2.tgz", - "integrity": "sha512-5JmVR4hgo9JkzK0KsLZd/UVr0kHhgwYVdF1bE09/KvLoAWl6h1SX24SIQ/o0rChV+TNsHCDCqOikVjNcVWbwCQ==", - "dev": true, - "dependencies": { - "@csstools/css-parser-algorithms": "^2.3.2", - "@csstools/css-tokenizer": "^2.2.1", - "@csstools/media-query-list-parser": "^2.1.5", - "is-plain-object": "^5.0.0", - "postcss-selector-parser": "^6.0.13", - "postcss-value-parser": "^4.2.0", - "style-search": "^0.1.0", - "stylelint": "^16.0.2" - }, - "engines": { - "node": "^18.12 || >=20.9" - }, - "peerDependencies": { - "stylelint": "^16.0.2" - } - }, "node_modules/stylelint-config-htmlacademy": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-3.0.2.tgz", - "integrity": "sha512-WULLZKKJ+Ydi/td9NPky9Ugv4zFpn5C2/ydrjX4sYYT3m2bh3DwGN77cmi1G7aAN1OpZUvlrJHNxaKUujov8ug==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.0.0.tgz", + "integrity": "sha512-puiVmqxu6t63qZiMldDPSOZBUe6kykjIeEA58hxtOxVMTg19tsUXjQe20Vf3SVMQs2o4zl3m+GsiulLy0p80SA==", "dev": true, "dependencies": { + "@stylistic/stylelint-plugin": "2.0.0", "postcss-less": "6.0.0", - "postcss-scss": "4.0.9", - "stylelint-codeguide": "1.0.2" + "postcss-scss": "4.0.9" }, "engines": { "node": ">=18.12.0" }, "peerDependencies": { - "stylelint": "^16.0.0" + "stylelint": "^16.1.0" } }, "node_modules/stylelint/node_modules/ansi-regex": { @@ -12716,6 +12716,21 @@ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "dev": true }, + "node_modules/stylelint/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/stylelint/node_modules/brace-expansion/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/stylelint/node_modules/cosmiconfig": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", @@ -12773,15 +12788,51 @@ } }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz", - "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "dependencies": { - "flat-cache": "^3.2.0" + "flat-cache": "^4.0.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=16.0.0" + } + }, + "node_modules/stylelint/node_modules/flat-cache": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.0.tgz", + "integrity": "sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4", + "rimraf": "^5.0.5" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/stylelint/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/stylelint/node_modules/globby": { @@ -12823,23 +12874,56 @@ "dev": true }, "node_modules/stylelint/node_modules/meow": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", - "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.0.0.tgz", + "integrity": "sha512-4Hu+75Vo7EOR+8C9RmkabfLijuwd9SrzQ8f0SyC4qZZwU6BlxeOt5ulF3PGCpcMJX4hI+ktpJhea0P6PN1RiWw==", "dev": true, "engines": { - "node": ">=16.10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/stylelint/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/stylelint/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/stylelint/node_modules/rimraf": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", + "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", + "dev": true, + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/stylelint/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -14054,9 +14138,9 @@ "dev": true }, "node_modules/w3c-html-validator": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/w3c-html-validator/-/w3c-html-validator-1.6.1.tgz", - "integrity": "sha512-GOnlZmXYqL2xJKxPg8KaNmUargvpqVyJ3EdS2c56aDolzk8xWAPT1vw2QCv/is/2BW4DHcFOyoeUERa78NbmkQ==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/w3c-html-validator/-/w3c-html-validator-1.6.2.tgz", + "integrity": "sha512-eXa8clnLjCn3niLcaF/NKl2OUR3D3PBatfvYzbDnq2wjYG53bzOf7EcvzRSvEwTd2SPtNBuUwUoGeUJLvjp1Ug==", "dev": true, "dependencies": { "chalk": "~5.3", diff --git a/package.json b/package.json index 0956afb75..a0e798166 100644 --- a/package.json +++ b/package.json @@ -54,8 +54,8 @@ "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.69.5", - "stylelint": "16.0.2", - "stylelint-config-htmlacademy": "3.0.2", - "w3c-html-validator": "1.6.1" + "stylelint": "^16.1.0", + "stylelint-config-htmlacademy": "4.0.0", + "w3c-html-validator": "1.6.2" } } From a87e2462fcebc82c72f7069fa4a288148d3dfd34 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Mon, 25 Dec 2023 19:58:59 +0300 Subject: [PATCH 063/116] Remove codeguide/indentation --- .stylelintrc | 12 +----------- package-lock.json | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/.stylelintrc b/.stylelintrc index a78262c08..ef6663d03 100644 --- a/.stylelintrc +++ b/.stylelintrc @@ -1,13 +1,3 @@ { - "extends": "stylelint-config-htmlacademy", - "rules": { - "codeguide/indentation": [ - 2, - { - "ignore": [ - "inside-parens" - ] - } - ] - } + "extends": "stylelint-config-htmlacademy" } diff --git a/package-lock.json b/package-lock.json index 35782cc84..df06becae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,7 +32,7 @@ "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.69.5", - "stylelint": "^16.1.0", + "stylelint": "16.1.0", "stylelint-config-htmlacademy": "4.0.0", "w3c-html-validator": "1.6.2" }, diff --git a/package.json b/package.json index a0e798166..2e36d1d51 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.69.5", - "stylelint": "^16.1.0", + "stylelint": "16.1.0", "stylelint-config-htmlacademy": "4.0.0", "w3c-html-validator": "1.6.2" } From efb2fb4101af5e19fcbdb075e17c1610564f58fe Mon Sep 17 00:00:00 2001 From: Georgij Tsabiev Date: Thu, 28 Dec 2023 22:21:49 +0300 Subject: [PATCH 064/116] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D1=8F=D0=B5=D1=82=20=D0=BE=D0=BF=D0=B5=D1=87=D0=B0=D1=82?= =?UTF-8?q?=D0=BA=D1=83=20=D0=B2=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B5=20'=D0=A0=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20=D1=81=20?= =?UTF-8?q?=D0=B3=D1=80=D0=B0=D1=84=D0=B8=D0=BA=D0=BE=D0=B9'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 97c3f297c..e22d4564c 100644 --- a/README.md +++ b/README.md @@ -183,7 +183,7 @@ После того как добавите графику сразу запускайте команду `npm run optimize:raster` (или просто `npm run optimize`) для оптимизации графики и создания `.webp`-версии. Команду нужно запускать один раз при появлении новой графики в проекте. -Новая оптимизированная графика разной плотностью и суффиксами плотности в именах файлов появится в `source/images`. Эту, уже оптимизированную графику нужно коммитить. +Новая оптимизированная графика с разной плотностью и суффиксами плотности в именах файлов появится в `source/images`. Эту, уже оптимизированную графику нужно коммитить. ### Вектор From d8b31be0923543d4957d865cd37f3eef3ef89b13 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Fri, 29 Dec 2023 17:20:15 +0300 Subject: [PATCH 065/116] Fix static file paths for dev server --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index 35fd37d3b..abc6c41bf 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -127,7 +127,7 @@ export function startServer () { const serveStatic = PATHS_TO_STATIC .filter((path) => path.startsWith('!') === false) .map((path) => { - const dir = path.replace(/\*\*(.*)/, ''); + const dir = path.replace(/(\/\*\*\/.*$)|\/$/, ''); const route = dir.replace(PATH_TO_SOURCE, '/'); return { route, dir }; From ff31e56e648fb0b2835547123de010a0ec31f6a5 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Tue, 9 Jan 2024 14:01:47 +0300 Subject: [PATCH 066/116] Update all dependencies --- package-lock.json | 195 +++++++++++++--------------------------------- package.json | 12 +-- 2 files changed, 61 insertions(+), 146 deletions(-) diff --git a/package-lock.json b/package-lock.json index df06becae..52ddbd8d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,8 +11,8 @@ "@htmlacademy/editorconfig-cli": "2.0.8", "@linthtml/linthtml": "0.9.5", "autoprefixer": "10.4.16", - "browser-sync": "2.29.3", - "browserslist-to-esbuild": "1.2.0", + "browser-sync": "3.0.2", + "browserslist-to-esbuild": "2.1.1", "eslint": "8.56.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", @@ -28,13 +28,13 @@ "gulp-svgmin": "4.1.0", "linthtml-config-htmlacademy": "1.0.14", "npm-run-all": "4.1.5", - "postcss": "8.4.32", + "postcss": "8.4.33", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", - "sass": "1.69.5", + "sass": "1.69.7", "stylelint": "16.1.0", - "stylelint-config-htmlacademy": "4.0.0", - "w3c-html-validator": "1.6.2" + "stylelint-config-htmlacademy": "4.0.1", + "w3c-html-validator": "1.6.4" }, "engines": { "node": "^18.18 || ^20.9" @@ -1878,15 +1878,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, "node_modules/babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", @@ -2073,13 +2064,13 @@ "dev": true }, "node_modules/browser-sync": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.29.3.tgz", - "integrity": "sha512-NiM38O6XU84+MN+gzspVmXV2fTOoe+jBqIBx3IBdhZrdeURr6ZgznJr/p+hQ+KzkKEiGH/GcC4SQFSL0jV49bg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-3.0.2.tgz", + "integrity": "sha512-PC9c7aWJFVR4IFySrJxOqLwB9ENn3/TaXCXtAa0SzLwocLN3qMjN+IatbjvtCX92BjNXsY6YWg9Eb7F3Wy255g==", "dev": true, "dependencies": { - "browser-sync-client": "^2.29.3", - "browser-sync-ui": "^2.29.3", + "browser-sync-client": "^3.0.2", + "browser-sync-ui": "^3.0.2", "bs-recipes": "1.3.4", "chalk": "4.1.2", "chokidar": "^3.5.1", @@ -2093,7 +2084,6 @@ "fs-extra": "3.0.1", "http-proxy": "^1.18.1", "immutable": "^3", - "localtunnel": "^2.0.1", "micromatch": "^4.0.2", "opn": "5.3.0", "portscanner": "2.2.0", @@ -2116,9 +2106,9 @@ } }, "node_modules/browser-sync-client": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.29.3.tgz", - "integrity": "sha512-4tK5JKCl7v/3aLbmCBMzpufiYLsB1+UI+7tUXCCp5qF0AllHy/jAqYu6k7hUF3hYtlClKpxExWaR+rH+ny07wQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-3.0.2.tgz", + "integrity": "sha512-tBWdfn9L0wd2Pjuz/NWHtNEKthVb1Y67vg8/qyGNtCqetNz5lkDkFnrsx5UhPNPYUO8vci50IWC/BhYaQskDiQ==", "dev": true, "dependencies": { "etag": "1.8.1", @@ -2130,9 +2120,9 @@ } }, "node_modules/browser-sync-ui": { - "version": "2.29.3", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz", - "integrity": "sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-3.0.2.tgz", + "integrity": "sha512-V3FwWAI+abVbFLTyJjXJlCMBwjc3GXf/BPGfwO2fMFACWbIGW9/4SrBOFYEOOtqzCjQE0Di+U3VIb7eES4omNA==", "dev": true, "dependencies": { "async-each-series": "0.1.1", @@ -2319,15 +2309,33 @@ } }, "node_modules/browserslist-to-esbuild": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserslist-to-esbuild/-/browserslist-to-esbuild-1.2.0.tgz", - "integrity": "sha512-ftrrbI/VHBgEnmnSyhkqvQVMp6jAKybfs0qMIlm7SLBrQTGMsdCIP4q3BoKeLsZTBQllIQtY9kbxgRYV2WU47g==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/browserslist-to-esbuild/-/browserslist-to-esbuild-2.1.1.tgz", + "integrity": "sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==", "dev": true, "dependencies": { - "browserslist": "^4.17.3" + "meow": "^13.0.0" + }, + "bin": { + "browserslist-to-esbuild": "cli/index.js" }, "engines": { - "node": ">=12" + "node": ">=18" + }, + "peerDependencies": { + "browserslist": "*" + } + }, + "node_modules/browserslist-to-esbuild/node_modules/meow": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.1.0.tgz", + "integrity": "sha512-o5R/R3Tzxq0PJ3v3qcQJtSvSE9nKOLSAaDuuoMzDVuGTwHdccMWcYomh9Xolng2tjT6O/Y83d+0coVGof6tqmA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bs-recipes": { @@ -8325,93 +8333,6 @@ "node": ">=4" } }, - "node_modules/localtunnel": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", - "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", - "dev": true, - "dependencies": { - "axios": "0.21.4", - "debug": "4.3.2", - "openurl": "1.1.1", - "yargs": "17.1.1" - }, - "bin": { - "lt": "bin/lt.js" - }, - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/localtunnel/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/localtunnel/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/localtunnel/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/localtunnel/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/localtunnel/node_modules/yargs": { - "version": "17.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", - "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -9786,12 +9707,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/openurl": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", - "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==", - "dev": true - }, "node_modules/opn": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", @@ -10248,9 +10163,9 @@ } }, "node_modules/postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "version": "8.4.33", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", "dev": true, "funding": [ { @@ -11483,9 +11398,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.69.5", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz", - "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==", + "version": "1.69.7", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz", + "integrity": "sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -12111,9 +12026,9 @@ } }, "node_modules/socket.io-client": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz", - "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==", + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.3.tgz", + "integrity": "sha512-nU+ywttCyBitXIl9Xe0RSEfek4LneYkJxCeNnKCuhwoH4jGXO1ipIUw/VA/+Vvv2G1MTym11fzFC0SxkrcfXDw==", "dev": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -12676,9 +12591,9 @@ } }, "node_modules/stylelint-config-htmlacademy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.0.0.tgz", - "integrity": "sha512-puiVmqxu6t63qZiMldDPSOZBUe6kykjIeEA58hxtOxVMTg19tsUXjQe20Vf3SVMQs2o4zl3m+GsiulLy0p80SA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.0.1.tgz", + "integrity": "sha512-l9qoETNFyPrwcB1Rm/6hvYgfCmYFULsuh0dmZbFbhhbTGGN2stuWDjbL1S322HZeugzq69RjQbVoGHhshnAggA==", "dev": true, "dependencies": { "@stylistic/stylelint-plugin": "2.0.0", @@ -14138,9 +14053,9 @@ "dev": true }, "node_modules/w3c-html-validator": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/w3c-html-validator/-/w3c-html-validator-1.6.2.tgz", - "integrity": "sha512-eXa8clnLjCn3niLcaF/NKl2OUR3D3PBatfvYzbDnq2wjYG53bzOf7EcvzRSvEwTd2SPtNBuUwUoGeUJLvjp1Ug==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/w3c-html-validator/-/w3c-html-validator-1.6.4.tgz", + "integrity": "sha512-IzvnWP5Nzgzt0/pH35heWAM8bk8yTIe8HrXUxDedHtTmAt61A3kUyWvqpM5MgMnclqs6QON4ea7GyOIn0dtrng==", "dev": true, "dependencies": { "chalk": "~5.3", diff --git a/package.json b/package.json index 2e36d1d51..9c217942e 100644 --- a/package.json +++ b/package.json @@ -33,8 +33,8 @@ "@htmlacademy/editorconfig-cli": "2.0.8", "@linthtml/linthtml": "0.9.5", "autoprefixer": "10.4.16", - "browser-sync": "2.29.3", - "browserslist-to-esbuild": "1.2.0", + "browser-sync": "3.0.2", + "browserslist-to-esbuild": "2.1.1", "eslint": "8.56.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", @@ -50,12 +50,12 @@ "gulp-svgmin": "4.1.0", "linthtml-config-htmlacademy": "1.0.14", "npm-run-all": "4.1.5", - "postcss": "8.4.32", + "postcss": "8.4.33", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", - "sass": "1.69.5", + "sass": "1.69.7", "stylelint": "16.1.0", - "stylelint-config-htmlacademy": "4.0.0", - "w3c-html-validator": "1.6.2" + "stylelint-config-htmlacademy": "4.0.1", + "w3c-html-validator": "1.6.4" } } From 64a3dacb927f629c1c8cabe40e19d9839a94a1e9 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Fri, 12 Jan 2024 10:13:23 +0300 Subject: [PATCH 067/116] Update linthtml-config-htmlacademy --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 52ddbd8d3..5bda1d9fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.14", + "linthtml-config-htmlacademy": "1.0.15", "npm-run-all": "4.1.5", "postcss": "8.4.33", "postcss-csso": "6.0.1", @@ -8275,19 +8275,19 @@ "dev": true }, "node_modules/linthtml-config-htmlacademy": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.14.tgz", - "integrity": "sha512-gopMjniGu5R60O0Od4B2KV+YFvKNCEZ76fqrFBWek/3mFVmXxp/X0hsCXDeulBxg/AR3D3ZAfRpSHaTv2RQU5g==", + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.15.tgz", + "integrity": "sha512-yQPRCA1TlvOuhTsiLTVsyV3G87BUF5QFtanOykinFuqGNorvC59YaNv6T0gWUTHQNfb8LScvdVng3+fX1SWuBQ==", "dev": true, "dependencies": { "@linthtml/linthtml": "0.9.5", - "linthtml-rules-htmlacademy": "1.0.10" + "linthtml-rules-htmlacademy": "1.0.11" } }, "node_modules/linthtml-rules-htmlacademy": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.10.tgz", - "integrity": "sha512-v2bUszCQZNu/wXNvYbOtA6X2CVsrSX+eVntC2o4W0SXyKRi1vjXQhOc2T5yBgU7SCkKS9OEkQ+YSs68vbZFntg==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.11.tgz", + "integrity": "sha512-tN49+hr0I7m0yHC3WAhNs+U2VEXZF5zhMOGSS7oHce50wsi5n0itUP08K82HUhSDbKqofR6rdXPx6XQBOaRLIA==", "dev": true }, "node_modules/lintspaces": { diff --git a/package.json b/package.json index 9c217942e..019fca834 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.14", + "linthtml-config-htmlacademy": "1.0.15", "npm-run-all": "4.1.5", "postcss": "8.4.33", "postcss-csso": "6.0.1", From a007c6bdadad1c5d8191d2eb5a23ec614f7e4cae Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Tue, 16 Jan 2024 11:57:26 +0300 Subject: [PATCH 068/116] Update dependencies --- package-lock.json | 98 ++++++++++++++++++++++++++--------------------- package.json | 4 +- 2 files changed, 57 insertions(+), 45 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5bda1d9fa..a0c86b31e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,12 +21,12 @@ "gulp-htmlmin": "5.0.1", "gulp-nunjucks": "6.0.0", "gulp-plumber": "1.2.1", - "gulp-postcss": "9.0.1", + "gulp-postcss": "9.1.0", "gulp-sass": "5.1.0", "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.15", + "linthtml-config-htmlacademy": "1.0.16", "npm-run-all": "4.1.5", "postcss": "8.4.33", "postcss-csso": "6.0.1", @@ -6684,36 +6684,33 @@ } }, "node_modules/gulp-postcss": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-9.0.1.tgz", - "integrity": "sha512-9QUHam5JyXwGUxaaMvoFQVT44tohpEFpM8xBdPfdwTYGM0AItS1iTQz0MpsF8Jroh7GF5Jt2GVPaYgvy8qD2Fw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-9.1.0.tgz", + "integrity": "sha512-a843mcKPApfeI987uqQbc8l50xXeWIXBsiVvYxtCI5XtVAMzTi/HnU2qzQpGwkB/PAOfsLV8OsqDv2iJZ9qvdw==", "dev": true, "dependencies": { - "fancy-log": "^1.3.3", - "plugin-error": "^1.0.1", - "postcss-load-config": "^3.0.0", + "fancy-log": "^2.0.0", + "plugin-error": "^2.0.1", + "postcss-load-config": "^5.0.0", "vinyl-sourcemaps-apply": "^0.2.1" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=18" }, "peerDependencies": { "postcss": "^8.0.0" } }, - "node_modules/gulp-postcss/node_modules/plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "node_modules/gulp-postcss/node_modules/fancy-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-2.0.0.tgz", + "integrity": "sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA==", "dev": true, "dependencies": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" + "color-support": "^1.1.3" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/gulp-sass": { @@ -8254,12 +8251,12 @@ } }, "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", "dev": true, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/limiter": { @@ -8275,19 +8272,19 @@ "dev": true }, "node_modules/linthtml-config-htmlacademy": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.15.tgz", - "integrity": "sha512-yQPRCA1TlvOuhTsiLTVsyV3G87BUF5QFtanOykinFuqGNorvC59YaNv6T0gWUTHQNfb8LScvdVng3+fX1SWuBQ==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.16.tgz", + "integrity": "sha512-ECt3Vg2sb9412eqWHrxYjIC/NzQM3pCsbQ18yPdqHHjvMe1Wq/rLg5IyfnN2RSgOawEp2mXt33rILHsPPvX0VA==", "dev": true, "dependencies": { "@linthtml/linthtml": "0.9.5", - "linthtml-rules-htmlacademy": "1.0.11" + "linthtml-rules-htmlacademy": "1.0.12" } }, "node_modules/linthtml-rules-htmlacademy": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.11.tgz", - "integrity": "sha512-tN49+hr0I7m0yHC3WAhNs+U2VEXZF5zhMOGSS7oHce50wsi5n0itUP08K82HUhSDbKqofR6rdXPx6XQBOaRLIA==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.12.tgz", + "integrity": "sha512-qRmW7GeRQDeBGyh7yWonRYhQDc6xvChj1HIPKz8yVqNN/o2gHiJiygHYH5p23W1Mta5LGX7vm9QcmfKjZbCJkg==", "dev": true }, "node_modules/lintspaces": { @@ -10219,34 +10216,49 @@ } }, "node_modules/postcss-load-config": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.0.2.tgz", + "integrity": "sha512-Q8QR3FYbqOKa0bnC1UQ2bFq9/ulHX5Bi34muzitMr8aDtUelO5xKeJEYC/5smE0jNE9zdB/NBnOwXKexELbRlw==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^1.10.2" + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" }, "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "node": ">= 18" }, "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" + "jiti": ">=1.21.0", + "postcss": ">=8.0.9" }, "peerDependenciesMeta": { - "postcss": { + "jiti": { "optional": true }, - "ts-node": { + "postcss": { "optional": true } } }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, "node_modules/postcss-resolve-nested-selector": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", diff --git a/package.json b/package.json index 019fca834..ef15bdcec 100644 --- a/package.json +++ b/package.json @@ -43,12 +43,12 @@ "gulp-htmlmin": "5.0.1", "gulp-nunjucks": "6.0.0", "gulp-plumber": "1.2.1", - "gulp-postcss": "9.0.1", + "gulp-postcss": "9.1.0", "gulp-sass": "5.1.0", "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.15", + "linthtml-config-htmlacademy": "1.0.16", "npm-run-all": "4.1.5", "postcss": "8.4.33", "postcss-csso": "6.0.1", From 8d82b9aef49ae9c1486423719cf4177a9fdae306 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Wed, 17 Jan 2024 13:51:03 +0300 Subject: [PATCH 069/116] Update dependencies --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index a0c86b31e..c6a4b740b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,7 +33,7 @@ "postcss-url": "10.1.3", "sass": "1.69.7", "stylelint": "16.1.0", - "stylelint-config-htmlacademy": "4.0.1", + "stylelint-config-htmlacademy": "4.0.2", "w3c-html-validator": "1.6.4" }, "engines": { @@ -12603,9 +12603,9 @@ } }, "node_modules/stylelint-config-htmlacademy": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.0.1.tgz", - "integrity": "sha512-l9qoETNFyPrwcB1Rm/6hvYgfCmYFULsuh0dmZbFbhhbTGGN2stuWDjbL1S322HZeugzq69RjQbVoGHhshnAggA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.0.2.tgz", + "integrity": "sha512-bZE9FZ+1GBoq+rH/BlWfoBuMU2gu8aqpK7MxFSmFAYA2eSA8UERKVKyHLE85ori6wnIoGyAF0OPWmhhfwuqxSQ==", "dev": true, "dependencies": { "@stylistic/stylelint-plugin": "2.0.0", diff --git a/package.json b/package.json index ef15bdcec..d33e56b0d 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "postcss-url": "10.1.3", "sass": "1.69.7", "stylelint": "16.1.0", - "stylelint-config-htmlacademy": "4.0.1", + "stylelint-config-htmlacademy": "4.0.2", "w3c-html-validator": "1.6.4" } } From 919e04ee921a8df09a24d2893489b8e3870cb22f Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Thu, 18 Jan 2024 13:29:38 +0300 Subject: [PATCH 070/116] Update dependencies --- package-lock.json | 28 ++++++++++++++-------------- package.json | 4 ++-- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index c6a4b740b..e94a78a3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "devDependencies": { "@htmlacademy/editorconfig-cli": "2.0.8", "@linthtml/linthtml": "0.9.5", - "autoprefixer": "10.4.16", + "autoprefixer": "10.4.17", "browser-sync": "3.0.2", "browserslist-to-esbuild": "2.1.1", "eslint": "8.56.0", @@ -31,7 +31,7 @@ "postcss": "8.4.33", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", - "sass": "1.69.7", + "sass": "1.70.0", "stylelint": "16.1.0", "stylelint-config-htmlacademy": "4.0.2", "w3c-html-validator": "1.6.4" @@ -1830,9 +1830,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "version": "10.4.17", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", + "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", "dev": true, "funding": [ { @@ -1849,9 +1849,9 @@ } ], "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", + "browserslist": "^4.22.2", + "caniuse-lite": "^1.0.30001578", + "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -2508,9 +2508,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001570", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz", - "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==", + "version": "1.0.30001579", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz", + "integrity": "sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==", "dev": true, "funding": [ { @@ -11410,9 +11410,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.69.7", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz", - "integrity": "sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==", + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz", + "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index d33e56b0d..a0dabb151 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "devDependencies": { "@htmlacademy/editorconfig-cli": "2.0.8", "@linthtml/linthtml": "0.9.5", - "autoprefixer": "10.4.16", + "autoprefixer": "10.4.17", "browser-sync": "3.0.2", "browserslist-to-esbuild": "2.1.1", "eslint": "8.56.0", @@ -53,7 +53,7 @@ "postcss": "8.4.33", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", - "sass": "1.69.7", + "sass": "1.70.0", "stylelint": "16.1.0", "stylelint-config-htmlacademy": "4.0.2", "w3c-html-validator": "1.6.4" From 7daa6e42317ee952f01291f6f4b7dc357b982298 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Thu, 25 Jan 2024 19:00:40 +0300 Subject: [PATCH 071/116] Update dependencies --- package-lock.json | 64 ++++++++++++++++---------------- package.json | 4 +- source/styles/global/fonts.scss | 2 +- source/styles/global/global.scss | 2 +- 4 files changed, 36 insertions(+), 36 deletions(-) diff --git a/package-lock.json b/package-lock.json index e94a78a3a..789ea0dd7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,8 +32,8 @@ "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.70.0", - "stylelint": "16.1.0", - "stylelint-config-htmlacademy": "4.0.2", + "stylelint": "16.2.0", + "stylelint-config-htmlacademy": "4.0.3", "w3c-html-validator": "1.6.4" }, "engines": { @@ -228,9 +228,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.4.0.tgz", - "integrity": "sha512-/PPLr2g5PAUCKAPEbfyk6/baZA+WJHQtUhPkoCQMpyRE8I0lXrG1QFRN8e5s3ZYxM8d/g5BZc6lH3s8Op7/VEg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz", + "integrity": "sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==", "dev": true, "funding": [ { @@ -246,13 +246,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.2.2" + "@csstools/css-tokenizer": "^2.2.3" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.2.tgz", - "integrity": "sha512-wCDUe/MAw7npAHFLyW3QjSyLA66S5QFaV1jIXlNQvdJ8RzXDSgALa49eWcUO6P55ARQaz0TsDdAgdRgkXFYY8g==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz", + "integrity": "sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==", "dev": true, "funding": [ { @@ -269,9 +269,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.6.tgz", - "integrity": "sha512-R6AKl9vaU0It7D7TR2lQn0pre5aQfdeqHRePlaRCY8rHL3l9eVlNRpsEVDKFi/zAjzv68CxH2M5kqbhPFPKjvw==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz", + "integrity": "sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ==", "dev": true, "funding": [ { @@ -287,8 +287,8 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.4.0", - "@csstools/css-tokenizer": "^2.2.2" + "@csstools/css-parser-algorithms": "^2.5.0", + "@csstools/css-tokenizer": "^2.2.3" } }, "node_modules/@csstools/selector-specificity": { @@ -10318,9 +10318,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -12547,14 +12547,14 @@ "dev": true }, "node_modules/stylelint": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.1.0.tgz", - "integrity": "sha512-Sh1rRV0lN1qxz/QsuuooLWsIZ/ona7NKw/fRZd6y6PyXYdD2W0EAzJ8yJcwSx4Iw/muz0CF09VZ+z4EiTAcKmg==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.2.0.tgz", + "integrity": "sha512-gwqU5AkIb52wrAzzn+359S3NIJDMl02TXLUaV2tzA/L6jUdpTwNt+MCxHlc8+Hb2bUHlYVo92YeSIryF2gJthA==", "dev": true, "dependencies": { - "@csstools/css-parser-algorithms": "^2.4.0", - "@csstools/css-tokenizer": "^2.2.2", - "@csstools/media-query-list-parser": "^2.1.6", + "@csstools/css-parser-algorithms": "^2.5.0", + "@csstools/css-tokenizer": "^2.2.3", + "@csstools/media-query-list-parser": "^2.1.7", "@csstools/selector-specificity": "^3.0.1", "balanced-match": "^2.0.0", "colord": "^2.9.3", @@ -12574,14 +12574,14 @@ "is-plain-object": "^5.0.0", "known-css-properties": "^0.29.0", "mathml-tag-names": "^2.1.3", - "meow": "^13.0.0", + "meow": "^13.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.32", + "postcss": "^8.4.33", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^7.0.0", - "postcss-selector-parser": "^6.0.13", + "postcss-selector-parser": "^6.0.15", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", @@ -12603,9 +12603,9 @@ } }, "node_modules/stylelint-config-htmlacademy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.0.2.tgz", - "integrity": "sha512-bZE9FZ+1GBoq+rH/BlWfoBuMU2gu8aqpK7MxFSmFAYA2eSA8UERKVKyHLE85ori6wnIoGyAF0OPWmhhfwuqxSQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.0.3.tgz", + "integrity": "sha512-pWjTXTs5mbMpaT/SvxLC4xrX/ii4gSoqxcl/aMb1JmdwFXOnG/t2SKtBoeR3mAVt1rHsJQexFSXW0JHT7UxqYA==", "dev": true, "dependencies": { "@stylistic/stylelint-plugin": "2.0.0", @@ -12801,9 +12801,9 @@ "dev": true }, "node_modules/stylelint/node_modules/meow": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.0.0.tgz", - "integrity": "sha512-4Hu+75Vo7EOR+8C9RmkabfLijuwd9SrzQ8f0SyC4qZZwU6BlxeOt5ulF3PGCpcMJX4hI+ktpJhea0P6PN1RiWw==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.1.0.tgz", + "integrity": "sha512-o5R/R3Tzxq0PJ3v3qcQJtSvSE9nKOLSAaDuuoMzDVuGTwHdccMWcYomh9Xolng2tjT6O/Y83d+0coVGof6tqmA==", "dev": true, "engines": { "node": ">=18" diff --git a/package.json b/package.json index a0dabb151..9dd60bb81 100644 --- a/package.json +++ b/package.json @@ -54,8 +54,8 @@ "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.70.0", - "stylelint": "16.1.0", - "stylelint-config-htmlacademy": "4.0.2", + "stylelint": "16.2.0", + "stylelint-config-htmlacademy": "4.0.3", "w3c-html-validator": "1.6.4" } } diff --git a/source/styles/global/fonts.scss b/source/styles/global/fonts.scss index a6025c9a3..6bb897da1 100644 --- a/source/styles/global/fonts.scss +++ b/source/styles/global/fonts.scss @@ -1 +1 @@ -/* здесь подключите шрифты*/ +/* здесь подключите шрифты */ diff --git a/source/styles/global/global.scss b/source/styles/global/global.scss index 8775546ea..ac721bd7a 100644 --- a/source/styles/global/global.scss +++ b/source/styles/global/global.scss @@ -1 +1 @@ -/* здесь используйте глобальные селекторы img, body, html и так далее*/ +/* здесь используйте глобальные селекторы img, body, html и так далее */ From d4e8373db75b030e2cafbf7e214510ebf2efcaff Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Sun, 28 Jan 2024 13:09:20 +0300 Subject: [PATCH 072/116] Update dependencies --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 789ea0dd7..89c3d77ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,7 +33,7 @@ "postcss-url": "10.1.3", "sass": "1.70.0", "stylelint": "16.2.0", - "stylelint-config-htmlacademy": "4.0.3", + "stylelint-config-htmlacademy": "4.0.4", "w3c-html-validator": "1.6.4" }, "engines": { @@ -12603,9 +12603,9 @@ } }, "node_modules/stylelint-config-htmlacademy": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.0.3.tgz", - "integrity": "sha512-pWjTXTs5mbMpaT/SvxLC4xrX/ii4gSoqxcl/aMb1JmdwFXOnG/t2SKtBoeR3mAVt1rHsJQexFSXW0JHT7UxqYA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.0.4.tgz", + "integrity": "sha512-Md6uMY3j9g1JRoo87Je6I18u1os147mmelQ9naWMfCNVZZnqQxl7YWW16LdJcnrA+yATWmUq28L2QkOVfdtAyQ==", "dev": true, "dependencies": { "@stylistic/stylelint-plugin": "2.0.0", diff --git a/package.json b/package.json index 9dd60bb81..863c16f7f 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "postcss-url": "10.1.3", "sass": "1.70.0", "stylelint": "16.2.0", - "stylelint-config-htmlacademy": "4.0.3", + "stylelint-config-htmlacademy": "4.0.4", "w3c-html-validator": "1.6.4" } } From da572f19431cf2c466529b4b85cba6ddffbdfe3c Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Thu, 1 Feb 2024 23:01:16 +0300 Subject: [PATCH 073/116] Update dependencies --- package-lock.json | 16 ++++++++-------- package.json | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 89c3d77ef..550844ebc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,8 +32,8 @@ "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.70.0", - "stylelint": "16.2.0", - "stylelint-config-htmlacademy": "4.0.4", + "stylelint": "16.2.1", + "stylelint-config-htmlacademy": "4.0.5", "w3c-html-validator": "1.6.4" }, "engines": { @@ -12547,9 +12547,9 @@ "dev": true }, "node_modules/stylelint": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.2.0.tgz", - "integrity": "sha512-gwqU5AkIb52wrAzzn+359S3NIJDMl02TXLUaV2tzA/L6jUdpTwNt+MCxHlc8+Hb2bUHlYVo92YeSIryF2gJthA==", + "version": "16.2.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.2.1.tgz", + "integrity": "sha512-SfIMGFK+4n7XVAyv50CpVfcGYWG4v41y6xG7PqOgQSY8M/PgdK0SQbjWFblxjJZlN9jNq879mB4BCZHJRIJ1hA==", "dev": true, "dependencies": { "@csstools/css-parser-algorithms": "^2.5.0", @@ -12603,9 +12603,9 @@ } }, "node_modules/stylelint-config-htmlacademy": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.0.4.tgz", - "integrity": "sha512-Md6uMY3j9g1JRoo87Je6I18u1os147mmelQ9naWMfCNVZZnqQxl7YWW16LdJcnrA+yATWmUq28L2QkOVfdtAyQ==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.0.5.tgz", + "integrity": "sha512-SjSoKhmE2GrFPSRe+Rh3aCAwkQPLOV/Xo2CMbSDp75YMpoW0JuI3A2TX8i7Q5vXm2BDZLcVJB7B7EP+xV44/xQ==", "dev": true, "dependencies": { "@stylistic/stylelint-plugin": "2.0.0", diff --git a/package.json b/package.json index 863c16f7f..38f213fb4 100644 --- a/package.json +++ b/package.json @@ -54,8 +54,8 @@ "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.70.0", - "stylelint": "16.2.0", - "stylelint-config-htmlacademy": "4.0.4", + "stylelint": "16.2.1", + "stylelint-config-htmlacademy": "4.0.5", "w3c-html-validator": "1.6.4" } } From 9b9a29140e4c2b42fb69b3a42772e5540fc6a919 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Thu, 8 Feb 2024 14:21:03 +0300 Subject: [PATCH 074/116] Update dependencies --- package-lock.json | 16 ++++++++-------- package.json | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 550844ebc..ba739c2c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,14 +21,14 @@ "gulp-htmlmin": "5.0.1", "gulp-nunjucks": "6.0.0", "gulp-plumber": "1.2.1", - "gulp-postcss": "9.1.0", + "gulp-postcss": "10.0.0", "gulp-sass": "5.1.0", "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", "linthtml-config-htmlacademy": "1.0.16", "npm-run-all": "4.1.5", - "postcss": "8.4.33", + "postcss": "8.4.35", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.70.0", @@ -6684,9 +6684,9 @@ } }, "node_modules/gulp-postcss": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-9.1.0.tgz", - "integrity": "sha512-a843mcKPApfeI987uqQbc8l50xXeWIXBsiVvYxtCI5XtVAMzTi/HnU2qzQpGwkB/PAOfsLV8OsqDv2iJZ9qvdw==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/gulp-postcss/-/gulp-postcss-10.0.0.tgz", + "integrity": "sha512-z1RF2RJEX/BvFsKN11PXai8lRmihZTiHnlJf7Zu8uHaA/Q7Om4IeN8z1NtMAW5OiLwUY02H0DIFl9tHl0CNSgA==", "dev": true, "dependencies": { "fancy-log": "^2.0.0", @@ -10160,9 +10160,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { diff --git a/package.json b/package.json index 38f213fb4..dfa29b10d 100644 --- a/package.json +++ b/package.json @@ -43,14 +43,14 @@ "gulp-htmlmin": "5.0.1", "gulp-nunjucks": "6.0.0", "gulp-plumber": "1.2.1", - "gulp-postcss": "9.1.0", + "gulp-postcss": "10.0.0", "gulp-sass": "5.1.0", "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", "linthtml-config-htmlacademy": "1.0.16", "npm-run-all": "4.1.5", - "postcss": "8.4.33", + "postcss": "8.4.35", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.70.0", From 0e53539e2d65c7490ff94442ff1e0460499aa411 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Fri, 16 Feb 2024 09:28:57 +0300 Subject: [PATCH 075/116] Update dependencies --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index ba739c2c2..f0b1f6691 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "postcss": "8.4.35", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", - "sass": "1.70.0", + "sass": "1.71.0", "stylelint": "16.2.1", "stylelint-config-htmlacademy": "4.0.5", "w3c-html-validator": "1.6.4" @@ -11410,9 +11410,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz", - "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==", + "version": "1.71.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.0.tgz", + "integrity": "sha512-HKKIKf49Vkxlrav3F/w6qRuPcmImGVbIXJ2I3Kg0VMA+3Bav+8yE9G5XmP5lMj6nl4OlqbPftGAscNaNu28b8w==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index dfa29b10d..2c73bcdb2 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "postcss": "8.4.35", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", - "sass": "1.70.0", + "sass": "1.71.0", "stylelint": "16.2.1", "stylelint-config-htmlacademy": "4.0.5", "w3c-html-validator": "1.6.4" From c86e82083a38124f520ac2974cdaedf5f4c78325 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Sat, 17 Feb 2024 21:05:09 +0300 Subject: [PATCH 076/116] Update dependencies --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index f0b1f6691..a0b4d45a0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "htmlacademy-gulp-template", "version": "2.0.6", "devDependencies": { - "@htmlacademy/editorconfig-cli": "2.0.8", + "@htmlacademy/editorconfig-cli": "2.0.9", "@linthtml/linthtml": "0.9.5", "autoprefixer": "10.4.17", "browser-sync": "3.0.2", @@ -763,9 +763,9 @@ } }, "node_modules/@htmlacademy/editorconfig-cli": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@htmlacademy/editorconfig-cli/-/editorconfig-cli-2.0.8.tgz", - "integrity": "sha512-ffyN0+oXFMp2RXfmQMrNBV2Yovwnxcl/xojRpkmRASciMJ42cMORrNbm3Y2Z7SkGtBaWYxW7nVC65GJxPf538A==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@htmlacademy/editorconfig-cli/-/editorconfig-cli-2.0.9.tgz", + "integrity": "sha512-gq1XLZ1EGWPc4iN6hstvRfotsqk3sjcpjHi4TU/1e3BlXMCIjZWPDjU8UR1bZUikLoGq/XmNn3kLteCQqAMj4A==", "dev": true, "dependencies": { "commander": "11.1.0", diff --git a/package.json b/package.json index 2c73bcdb2..ee4993202 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "optimize:vector": "gulp optimizeVector" }, "devDependencies": { - "@htmlacademy/editorconfig-cli": "2.0.8", + "@htmlacademy/editorconfig-cli": "2.0.9", "@linthtml/linthtml": "0.9.5", "autoprefixer": "10.4.17", "browser-sync": "3.0.2", From 5352561f3f10a10a8eef1446d6bec16c2150e418 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Mon, 19 Feb 2024 20:37:07 +0300 Subject: [PATCH 077/116] Update dependencies --- package-lock.json | 26 +++++++++++++------------- package.json | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index a0b4d45a0..d4e84ca4c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,7 +33,7 @@ "postcss-url": "10.1.3", "sass": "1.71.0", "stylelint": "16.2.1", - "stylelint-config-htmlacademy": "4.0.5", + "stylelint-config-htmlacademy": "4.1.0", "w3c-html-validator": "1.6.4" }, "engines": { @@ -1091,19 +1091,19 @@ "dev": true }, "node_modules/@stylistic/stylelint-plugin": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-2.0.0.tgz", - "integrity": "sha512-dHKuT6PGd1WGZLOTuozAM7GdQzdmlmnFXYzvV1jYJXXpcCpV/OJ3+n8TXpMkoOeKHpJydY43EOoZTO1W/FOA4Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-2.1.0.tgz", + "integrity": "sha512-mUZEW9uImHSbXeyzbFmHb8WPBv56UTaEnWL/3dGdAiJ54C+8GTfDwDVdI6gbqT9wV7zynkPu7tCXc5746H9mZQ==", "dev": true, "dependencies": { - "@csstools/css-parser-algorithms": "^2.3.2", - "@csstools/css-tokenizer": "^2.2.1", - "@csstools/media-query-list-parser": "^2.1.5", + "@csstools/css-parser-algorithms": "^2.5.0", + "@csstools/css-tokenizer": "^2.2.3", + "@csstools/media-query-list-parser": "^2.1.7", "is-plain-object": "^5.0.0", - "postcss-selector-parser": "^6.0.13", + "postcss-selector-parser": "^6.0.15", "postcss-value-parser": "^4.2.0", "style-search": "^0.1.0", - "stylelint": "^16.0.2" + "stylelint": "^16.2.1" }, "engines": { "node": "^18.12 || >=20.9" @@ -12603,12 +12603,12 @@ } }, "node_modules/stylelint-config-htmlacademy": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.0.5.tgz", - "integrity": "sha512-SjSoKhmE2GrFPSRe+Rh3aCAwkQPLOV/Xo2CMbSDp75YMpoW0JuI3A2TX8i7Q5vXm2BDZLcVJB7B7EP+xV44/xQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.1.0.tgz", + "integrity": "sha512-yDmKz9IpdnQfM205/cGmpz0OsvZEc4yk7dQbwRyrsSPdH2TxY3gOFJBLefo4Ct6Zcrj/lTbzx7nupHlzZfDoMg==", "dev": true, "dependencies": { - "@stylistic/stylelint-plugin": "2.0.0", + "@stylistic/stylelint-plugin": "2.1.0", "postcss-less": "6.0.0", "postcss-scss": "4.0.9" }, diff --git a/package.json b/package.json index ee4993202..2d9bca524 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "postcss-url": "10.1.3", "sass": "1.71.0", "stylelint": "16.2.1", - "stylelint-config-htmlacademy": "4.0.5", + "stylelint-config-htmlacademy": "4.1.0", "w3c-html-validator": "1.6.4" } } From e27ab1f956de461c14903bf4a66a1566277eed2c Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Wed, 21 Feb 2024 22:01:22 +0300 Subject: [PATCH 078/116] Update dependencies --- package-lock.json | 24 ++++++++++++------------ package.json | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index d4e84ca4c..1a8130e4a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,12 +26,12 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.16", + "linthtml-config-htmlacademy": "1.0.17", "npm-run-all": "4.1.5", "postcss": "8.4.35", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", - "sass": "1.71.0", + "sass": "1.71.1", "stylelint": "16.2.1", "stylelint-config-htmlacademy": "4.1.0", "w3c-html-validator": "1.6.4" @@ -8272,19 +8272,19 @@ "dev": true }, "node_modules/linthtml-config-htmlacademy": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.16.tgz", - "integrity": "sha512-ECt3Vg2sb9412eqWHrxYjIC/NzQM3pCsbQ18yPdqHHjvMe1Wq/rLg5IyfnN2RSgOawEp2mXt33rILHsPPvX0VA==", + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.17.tgz", + "integrity": "sha512-P7sDbXzaMEB7bkeCFbYGivkKjuR6dPrf6nXNBAWl+CAU//+Ambsl/jfW66TIC3dycy680wpt+JlqY0bv68aRSg==", "dev": true, "dependencies": { "@linthtml/linthtml": "0.9.5", - "linthtml-rules-htmlacademy": "1.0.12" + "linthtml-rules-htmlacademy": "1.0.13" } }, "node_modules/linthtml-rules-htmlacademy": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.12.tgz", - "integrity": "sha512-qRmW7GeRQDeBGyh7yWonRYhQDc6xvChj1HIPKz8yVqNN/o2gHiJiygHYH5p23W1Mta5LGX7vm9QcmfKjZbCJkg==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.13.tgz", + "integrity": "sha512-4jUr+R2CgEwMHvVvdvkfuHXHXfIiGwYF9rRpLnmXX/X35rIuBdq6QvquLlQzhLStOWbB0oF9egOtUv6bjsUDPg==", "dev": true }, "node_modules/lintspaces": { @@ -11410,9 +11410,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.71.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.0.tgz", - "integrity": "sha512-HKKIKf49Vkxlrav3F/w6qRuPcmImGVbIXJ2I3Kg0VMA+3Bav+8yE9G5XmP5lMj6nl4OlqbPftGAscNaNu28b8w==", + "version": "1.71.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", + "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index 2d9bca524..578c45577 100644 --- a/package.json +++ b/package.json @@ -48,12 +48,12 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.16", + "linthtml-config-htmlacademy": "1.0.17", "npm-run-all": "4.1.5", "postcss": "8.4.35", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", - "sass": "1.71.0", + "sass": "1.71.1", "stylelint": "16.2.1", "stylelint-config-htmlacademy": "4.1.0", "w3c-html-validator": "1.6.4" From f336c51ab64c8a03eb642780b10166da243ced81 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Thu, 22 Feb 2024 20:31:49 +0300 Subject: [PATCH 079/116] Update dependencies --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1a8130e4a..8ae93e644 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.17", + "linthtml-config-htmlacademy": "1.0.18", "npm-run-all": "4.1.5", "postcss": "8.4.35", "postcss-csso": "6.0.1", @@ -8272,19 +8272,19 @@ "dev": true }, "node_modules/linthtml-config-htmlacademy": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.17.tgz", - "integrity": "sha512-P7sDbXzaMEB7bkeCFbYGivkKjuR6dPrf6nXNBAWl+CAU//+Ambsl/jfW66TIC3dycy680wpt+JlqY0bv68aRSg==", + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.18.tgz", + "integrity": "sha512-VbUrcHSj+xDMu/CEQ4rGdkeo2h0xqQSvr5eH1QTHmhBCpaHKfefa+Nmw1kEeczkdDOzDnZGXtf2MyPW1GPAtMw==", "dev": true, "dependencies": { "@linthtml/linthtml": "0.9.5", - "linthtml-rules-htmlacademy": "1.0.13" + "linthtml-rules-htmlacademy": "1.0.14" } }, "node_modules/linthtml-rules-htmlacademy": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.13.tgz", - "integrity": "sha512-4jUr+R2CgEwMHvVvdvkfuHXHXfIiGwYF9rRpLnmXX/X35rIuBdq6QvquLlQzhLStOWbB0oF9egOtUv6bjsUDPg==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.14.tgz", + "integrity": "sha512-gGv/GpW+yCp3amEfExba0PP4pMAzcCLo9ap1WoWeasLPWmafjg22VnYw9KOBHtv/JX0YKxnJp4tXf2R2UVJqTw==", "dev": true }, "node_modules/lintspaces": { diff --git a/package.json b/package.json index 578c45577..dcd722168 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.17", + "linthtml-config-htmlacademy": "1.0.18", "npm-run-all": "4.1.5", "postcss": "8.4.35", "postcss-csso": "6.0.1", From f53a7968b38a84f73539aed3dec3bec245046ccb Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Fri, 23 Feb 2024 13:36:18 +0300 Subject: [PATCH 080/116] Update dependencies --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8ae93e644..6a82cd2fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.18", + "linthtml-config-htmlacademy": "1.0.19", "npm-run-all": "4.1.5", "postcss": "8.4.35", "postcss-csso": "6.0.1", @@ -8272,19 +8272,19 @@ "dev": true }, "node_modules/linthtml-config-htmlacademy": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.18.tgz", - "integrity": "sha512-VbUrcHSj+xDMu/CEQ4rGdkeo2h0xqQSvr5eH1QTHmhBCpaHKfefa+Nmw1kEeczkdDOzDnZGXtf2MyPW1GPAtMw==", + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.19.tgz", + "integrity": "sha512-Govj68YYgS55Gww+/VOKVufhWqTqTk1DGivaH2Jjfh/79FFvual1VWya8wwStsnRqEqX4Dbvi2RdbaCieUAfHw==", "dev": true, "dependencies": { "@linthtml/linthtml": "0.9.5", - "linthtml-rules-htmlacademy": "1.0.14" + "linthtml-rules-htmlacademy": "1.0.15" } }, "node_modules/linthtml-rules-htmlacademy": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.14.tgz", - "integrity": "sha512-gGv/GpW+yCp3amEfExba0PP4pMAzcCLo9ap1WoWeasLPWmafjg22VnYw9KOBHtv/JX0YKxnJp4tXf2R2UVJqTw==", + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.15.tgz", + "integrity": "sha512-B/XVIyZ6yiNn/2Xl0kAf38XVREIZArJRx3811l7t21ZwV9EZjEER9yPvU+jWwt1HPqa39UaA3+1c5+R3h85YXA==", "dev": true }, "node_modules/lintspaces": { diff --git a/package.json b/package.json index dcd722168..2d14ffe13 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.18", + "linthtml-config-htmlacademy": "1.0.19", "npm-run-all": "4.1.5", "postcss": "8.4.35", "postcss-csso": "6.0.1", From a3c49e684d4e6007701e9efe6447159330966897 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Sat, 24 Feb 2024 11:56:05 +0300 Subject: [PATCH 081/116] Update dependencies --- package-lock.json | 71 ++++++++++++++++++++++++++--------------------- package.json | 4 +-- 2 files changed, 42 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6a82cd2fb..9adebc793 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,12 +8,12 @@ "name": "htmlacademy-gulp-template", "version": "2.0.6", "devDependencies": { - "@htmlacademy/editorconfig-cli": "2.0.9", + "@htmlacademy/editorconfig-cli": "3.0.0", "@linthtml/linthtml": "0.9.5", "autoprefixer": "10.4.17", "browser-sync": "3.0.2", "browserslist-to-esbuild": "2.1.1", - "eslint": "8.56.0", + "eslint": "8.57.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-esbuild": "0.12.0", @@ -754,22 +754,22 @@ "dev": true }, "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@htmlacademy/editorconfig-cli": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/@htmlacademy/editorconfig-cli/-/editorconfig-cli-2.0.9.tgz", - "integrity": "sha512-gq1XLZ1EGWPc4iN6hstvRfotsqk3sjcpjHi4TU/1e3BlXMCIjZWPDjU8UR1bZUikLoGq/XmNn3kLteCQqAMj4A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@htmlacademy/editorconfig-cli/-/editorconfig-cli-3.0.0.tgz", + "integrity": "sha512-0JH4ZYdyTQCFG1PCJI5T/5m71k58RDsrYmt8UPNTwmbK/Gk8lPOot+36fF2YdfgfXvXOCeeLdvRJr9YBCBZkoA==", "dev": true, "dependencies": { - "commander": "11.1.0", - "globby": "14.0.0", + "commander": "12.0.0", + "globby": "14.0.1", "lintspaces": "0.11.0", "picocolors": "1.0.0" }, @@ -778,17 +778,26 @@ "editorconfig-cli": "index.js" }, "engines": { - "node": ">=16" + "node": ">=18" + } + }, + "node_modules/@htmlacademy/editorconfig-cli/node_modules/commander": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", + "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", + "dev": true, + "engines": { + "node": ">=18" } }, "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==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.1", - "debug": "^4.1.1", + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", "minimatch": "^3.0.5" }, "engines": { @@ -832,9 +841,9 @@ } }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, "node_modules/@isaacs/cliui": { @@ -1073,9 +1082,9 @@ } }, "node_modules/@sindresorhus/merge-streams": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz", - "integrity": "sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, "engines": { "node": ">=18" @@ -4225,16 +4234,16 @@ } }, "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -6004,12 +6013,12 @@ } }, "node_modules/globby": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.0.tgz", - "integrity": "sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", + "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", "dev": true, "dependencies": { - "@sindresorhus/merge-streams": "^1.0.0", + "@sindresorhus/merge-streams": "^2.1.0", "fast-glob": "^3.3.2", "ignore": "^5.2.4", "path-type": "^5.0.0", diff --git a/package.json b/package.json index 2d14ffe13..1206ef675 100644 --- a/package.json +++ b/package.json @@ -30,12 +30,12 @@ "optimize:vector": "gulp optimizeVector" }, "devDependencies": { - "@htmlacademy/editorconfig-cli": "2.0.9", + "@htmlacademy/editorconfig-cli": "3.0.0", "@linthtml/linthtml": "0.9.5", "autoprefixer": "10.4.17", "browser-sync": "3.0.2", "browserslist-to-esbuild": "2.1.1", - "eslint": "8.56.0", + "eslint": "8.57.0", "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-esbuild": "0.12.0", From b7aabb9d8a633fd8ee3b33e40e0f67ca9dfc19f2 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Sat, 24 Feb 2024 14:18:36 +0300 Subject: [PATCH 082/116] =?UTF-8?q?=D0=A7=D0=B8=D0=BD=D0=B8=D1=82=20=D0=B8?= =?UTF-8?q?=D0=B3=D0=BD=D0=BE=D1=80=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BF=D0=B0=D0=BF=D0=BA=D0=B8=20vendor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 1206ef675..b3eac3441 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,8 @@ "lint:html": "linthtml build/**/*.html --config .linthtmlrc", "lint:bem": "gulp lintBem --silent", "lint:styles": "stylelint \"source/styles/**/*.scss\"", - "lint:scripts": "eslint . --ignore-path .gitignore --ignore-pattern 'vendor/**'", + + "lint:scripts": "eslint . --ignore-path .gitignore --ignore-pattern vendor/", "optimize": "npm-run-all -p optimize:**", "optimize:raster": "gulp optimizeRaster", "optimize:vector": "gulp optimizeVector" From 50a3b48d0fcdc2b298b9c909431ef0c9bab0e67c Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Sat, 2 Mar 2024 21:56:00 +0300 Subject: [PATCH 083/116] Update dependencies --- package-lock.json | 34 +++++++++++++++++----------------- package.json | 3 +-- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9adebc793..883b64a40 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "devDependencies": { "@htmlacademy/editorconfig-cli": "3.0.0", "@linthtml/linthtml": "0.9.5", - "autoprefixer": "10.4.17", + "autoprefixer": "10.4.18", "browser-sync": "3.0.2", "browserslist-to-esbuild": "2.1.1", "eslint": "8.57.0", @@ -1839,9 +1839,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.17", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", - "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "version": "10.4.18", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", + "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", "dev": true, "funding": [ { @@ -1858,8 +1858,8 @@ } ], "dependencies": { - "browserslist": "^4.22.2", - "caniuse-lite": "^1.0.30001578", + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001591", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -2286,9 +2286,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -2305,8 +2305,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -2517,9 +2517,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001579", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz", - "integrity": "sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==", + "version": "1.0.30001591", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz", + "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==", "dev": true, "funding": [ { @@ -3837,9 +3837,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.612", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.612.tgz", - "integrity": "sha512-dM8BMtXtlH237ecSMnYdYuCkib2QHq0kpWfUnavjdYsyr/6OsAwg5ZGUfnQ9KD1Ga4QgB2sqXlB2NT8zy2GnVg==", + "version": "1.4.690", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.690.tgz", + "integrity": "sha512-+2OAGjUx68xElQhydpcbqH50hE8Vs2K6TkAeLhICYfndb67CVH0UsZaijmRUE3rHlIxU1u0jxwhgVe6fK3YANA==", "dev": true }, "node_modules/elliptic": { diff --git a/package.json b/package.json index b3eac3441..1014ce46b 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,6 @@ "lint:html": "linthtml build/**/*.html --config .linthtmlrc", "lint:bem": "gulp lintBem --silent", "lint:styles": "stylelint \"source/styles/**/*.scss\"", - "lint:scripts": "eslint . --ignore-path .gitignore --ignore-pattern vendor/", "optimize": "npm-run-all -p optimize:**", "optimize:raster": "gulp optimizeRaster", @@ -33,7 +32,7 @@ "devDependencies": { "@htmlacademy/editorconfig-cli": "3.0.0", "@linthtml/linthtml": "0.9.5", - "autoprefixer": "10.4.17", + "autoprefixer": "10.4.18", "browser-sync": "3.0.2", "browserslist-to-esbuild": "2.1.1", "eslint": "8.57.0", From 75995d6dadf3f663b0950aa5ebb01a717629a75a Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Thu, 14 Mar 2024 12:28:43 +0300 Subject: [PATCH 084/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 883b64a40..bfb0d31cf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,7 +31,7 @@ "postcss": "8.4.35", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", - "sass": "1.71.1", + "sass": "1.72.0", "stylelint": "16.2.1", "stylelint-config-htmlacademy": "4.1.0", "w3c-html-validator": "1.6.4" @@ -11419,9 +11419,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.71.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", - "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", + "version": "1.72.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.72.0.tgz", + "integrity": "sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index 1014ce46b..dba49bba1 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "postcss": "8.4.35", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", - "sass": "1.71.1", + "sass": "1.72.0", "stylelint": "16.2.1", "stylelint-config-htmlacademy": "4.1.0", "w3c-html-validator": "1.6.4" From fcad6926552291e3c2bdf7e61fd1bff2d4276943 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Tue, 19 Mar 2024 09:11:38 +0300 Subject: [PATCH 085/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 1565 +++++++++++++++++++++++++-------------------- package.json | 2 +- 2 files changed, 879 insertions(+), 688 deletions(-) diff --git a/package-lock.json b/package-lock.json index bfb0d31cf..0466e0b37 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "gulp-svgmin": "4.1.0", "linthtml-config-htmlacademy": "1.0.19", "npm-run-all": "4.1.5", - "postcss": "8.4.35", + "postcss": "8.4.36", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.72.0", @@ -228,9 +228,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz", - "integrity": "sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.1.tgz", + "integrity": "sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA==", "dev": true, "funding": [ { @@ -246,13 +246,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.2.3" + "@csstools/css-tokenizer": "^2.2.4" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz", - "integrity": "sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.4.tgz", + "integrity": "sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw==", "dev": true, "funding": [ { @@ -269,9 +269,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz", - "integrity": "sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ==", + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.9.tgz", + "integrity": "sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA==", "dev": true, "funding": [ { @@ -287,14 +287,14 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.5.0", - "@csstools/css-tokenizer": "^2.2.3" + "@csstools/css-parser-algorithms": "^2.6.1", + "@csstools/css-tokenizer": "^2.2.4" } }, "node_modules/@csstools/selector-specificity": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz", - "integrity": "sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.2.tgz", + "integrity": "sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg==", "dev": true, "funding": [ { @@ -313,10 +313,26 @@ "postcss-selector-parser": "^6.0.13" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.9.tgz", - "integrity": "sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", "cpu": [ "arm" ], @@ -330,9 +346,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz", - "integrity": "sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", "cpu": [ "arm64" ], @@ -346,9 +362,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.9.tgz", - "integrity": "sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", "cpu": [ "x64" ], @@ -362,9 +378,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz", - "integrity": "sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", "cpu": [ "arm64" ], @@ -378,9 +394,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz", - "integrity": "sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", "cpu": [ "x64" ], @@ -394,9 +410,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz", - "integrity": "sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", "cpu": [ "arm64" ], @@ -410,9 +426,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz", - "integrity": "sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", "cpu": [ "x64" ], @@ -426,9 +442,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz", - "integrity": "sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", "cpu": [ "arm" ], @@ -442,9 +458,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz", - "integrity": "sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", "cpu": [ "arm64" ], @@ -458,9 +474,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz", - "integrity": "sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", "cpu": [ "ia32" ], @@ -474,9 +490,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz", - "integrity": "sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", "cpu": [ "loong64" ], @@ -490,9 +506,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz", - "integrity": "sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", "cpu": [ "mips64el" ], @@ -506,9 +522,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz", - "integrity": "sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", "cpu": [ "ppc64" ], @@ -522,9 +538,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz", - "integrity": "sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", "cpu": [ "riscv64" ], @@ -538,9 +554,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz", - "integrity": "sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", "cpu": [ "s390x" ], @@ -554,9 +570,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz", - "integrity": "sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", "cpu": [ "x64" ], @@ -570,9 +586,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz", - "integrity": "sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", "cpu": [ "x64" ], @@ -586,9 +602,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz", - "integrity": "sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", "cpu": [ "x64" ], @@ -602,9 +618,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz", - "integrity": "sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", "cpu": [ "x64" ], @@ -618,9 +634,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz", - "integrity": "sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", "cpu": [ "arm64" ], @@ -634,9 +650,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz", - "integrity": "sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", "cpu": [ "ia32" ], @@ -650,9 +666,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz", - "integrity": "sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", "cpu": [ "x64" ], @@ -781,15 +797,6 @@ "node": ">=18" } }, - "node_modules/@htmlacademy/editorconfig-cli/node_modules/commander": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", - "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", - "dev": true, - "engines": { - "node": ">=18" - } - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -1158,9 +1165,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.10.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz", - "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==", + "version": "20.11.29", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.29.tgz", + "integrity": "sha512-P99thMkD/1YkCvAtOd6/zGedKNA0p2fj4ZpjCzcNiSCBWgm3cNRTBfa/qjFnsKkkojxu4vVLtWpesnZ9+ap+gA==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1214,9 +1221,9 @@ } }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1475,13 +1482,16 @@ } }, "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==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1608,6 +1618,25 @@ "node": ">=0.10.0" } }, + "node_modules/array.prototype.findlast": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.4.tgz", + "integrity": "sha512-BMtLxpV+8BD+6ZPFIWmnUBpQoy+A+ujcg4rhp2iwCRJYA7PEh2MS4NL3lz8EiDlLrJPp2hg9qWihr5pd//jcGw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "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", @@ -1644,31 +1673,44 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.tosorted": { + "node_modules/array.prototype.toreversed": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", - "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", "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" + "es-shim-unscopables": "^1.0.0" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", + "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.1.0", + "es-shim-unscopables": "^1.0.2" } }, "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "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", + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", "is-shared-array-buffer": "^1.0.2" }, "engines": { @@ -1694,15 +1736,14 @@ "dev": true }, "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" + "minimalistic-assert": "^1.0.0" } }, "node_modules/asn1.js/node_modules/bn.js": { @@ -1811,15 +1852,6 @@ "node": ">= 0.10" } }, - "node_modules/asynciterator.prototype": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", - "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -1876,10 +1908,13 @@ } }, "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==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -1923,6 +1958,13 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/bare-events": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.1.tgz", + "integrity": "sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==", + "dev": true, + "optional": true + }, "node_modules/base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", @@ -1989,12 +2031,15 @@ "dev": true }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bindings": { @@ -2223,37 +2268,24 @@ } }, "node_modules/browserify-sign": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", - "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", "dev": true, "dependencies": { "bn.js": "^5.2.1", "browserify-rsa": "^4.1.0", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.4", + "elliptic": "^6.5.5", + "hash-base": "~3.0", "inherits": "^2.0.4", - "parse-asn1": "^5.1.6", - "readable-stream": "^3.6.2", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", "safe-buffer": "^5.2.1" }, "engines": { - "node": ">= 4" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "node": ">= 0.12" } }, "node_modules/browserify-sign/node_modules/safe-buffer": { @@ -2336,9 +2368,9 @@ } }, "node_modules/browserslist-to-esbuild/node_modules/meow": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.1.0.tgz", - "integrity": "sha512-o5R/R3Tzxq0PJ3v3qcQJtSvSE9nKOLSAaDuuoMzDVuGTwHdccMWcYomh9Xolng2tjT6O/Y83d+0coVGof6tqmA==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "dev": true, "engines": { "node": ">=18" @@ -2458,14 +2490,19 @@ } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2517,9 +2554,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001591", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz", - "integrity": "sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==", + "version": "1.0.30001599", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz", + "integrity": "sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==", "dev": true, "funding": [ { @@ -2559,16 +2596,10 @@ "dev": true }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -2581,6 +2612,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -2690,9 +2724,9 @@ } }, "node_modules/cli-argv-util": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/cli-argv-util/-/cli-argv-util-1.2.4.tgz", - "integrity": "sha512-T+n6gAvnnp4HIygAJ+O7RO6hzrtG4yxpplMp6on93Fo4nBYh7sMjM4aatGb+RbC5PIkZa0g4k4F4kFxxynKHyQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/cli-argv-util/-/cli-argv-util-1.2.5.tgz", + "integrity": "sha512-UlMz4vhYsf0mdC1MwNJcmOL0YbgEF/Jkgyg114FwKK3LMh0J2PmTWdweQx509UKpPZOTg08qovDIsaeeqcgMpg==", "dev": true, "dependencies": { "slash": "~5.1" @@ -2914,12 +2948,12 @@ } }, "node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", + "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", "dev": true, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/compare-module-exports": { @@ -3300,13 +3334,67 @@ "dev": true }, "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/data-view-buffer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", "dev": true, "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/debug": { @@ -3440,17 +3528,20 @@ } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-properties": { @@ -3800,6 +3891,15 @@ "balanced-match": "^1.0.0" } }, + "node_modules/editorconfig/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, "node_modules/editorconfig/node_modules/minimatch": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.2.tgz", @@ -3816,9 +3916,9 @@ } }, "node_modules/editorconfig/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3837,15 +3937,15 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.690", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.690.tgz", - "integrity": "sha512-+2OAGjUx68xElQhydpcbqH50hE8Vs2K6TkAeLhICYfndb67CVH0UsZaijmRUE3rHlIxU1u0jxwhgVe6fK3YANA==", + "version": "1.4.710", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.710.tgz", + "integrity": "sha512-w+9yAVHoHhysCa+gln7AzbO9CdjFcL/wN/5dd+XW/Msl2d/4+WisEaCF1nty0xbAKaxdaJfgLB2296U7zZB7BA==", "dev": true }, "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz", + "integrity": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==", "dev": true, "dependencies": { "bn.js": "^4.11.9", @@ -3945,9 +4045,9 @@ "dev": true }, "node_modules/engine.io-parser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", - "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", + "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", "dev": true, "engines": { "node": ">=10.0.0" @@ -4007,50 +4107,57 @@ } }, "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "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.5", - "es-set-tostringtag": "^2.0.1", + "version": "1.23.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.2.tgz", + "integrity": "sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", "object-inspect": "^1.13.1", "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", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", "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", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.5", "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -4059,37 +4166,73 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-iterator-helpers": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", - "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz", + "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==", "dev": true, "dependencies": { - "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.1", - "es-set-tostringtag": "^2.0.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.2.1", + "es-abstract": "^1.23.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", + "internal-slot": "^1.0.7", "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.0.1" + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -4122,14 +4265,15 @@ } }, "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", "dev": true, "hasInstallScript": true, "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", "next-tick": "^1.1.0" }, "engines": { @@ -4148,13 +4292,16 @@ } }, "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", "dev": true, "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" } }, "node_modules/es6-weak-map": { @@ -4170,9 +4317,9 @@ } }, "node_modules/esbuild": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.9.tgz", - "integrity": "sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", "dev": true, "hasInstallScript": true, "bin": { @@ -4182,34 +4329,35 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.9", - "@esbuild/android-arm64": "0.19.9", - "@esbuild/android-x64": "0.19.9", - "@esbuild/darwin-arm64": "0.19.9", - "@esbuild/darwin-x64": "0.19.9", - "@esbuild/freebsd-arm64": "0.19.9", - "@esbuild/freebsd-x64": "0.19.9", - "@esbuild/linux-arm": "0.19.9", - "@esbuild/linux-arm64": "0.19.9", - "@esbuild/linux-ia32": "0.19.9", - "@esbuild/linux-loong64": "0.19.9", - "@esbuild/linux-mips64el": "0.19.9", - "@esbuild/linux-ppc64": "0.19.9", - "@esbuild/linux-riscv64": "0.19.9", - "@esbuild/linux-s390x": "0.19.9", - "@esbuild/linux-x64": "0.19.9", - "@esbuild/netbsd-x64": "0.19.9", - "@esbuild/openbsd-x64": "0.19.9", - "@esbuild/sunos-x64": "0.19.9", - "@esbuild/win32-arm64": "0.19.9", - "@esbuild/win32-ia32": "0.19.9", - "@esbuild/win32-x64": "0.19.9" + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -4363,27 +4511,29 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "version": "7.34.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", + "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", "dev": true, "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", + "array-includes": "^3.1.7", + "array.prototype.findlast": "^1.2.4", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.3", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", + "es-iterator-helpers": "^1.0.17", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7", + "object.hasown": "^1.1.3", + "object.values": "^1.1.7", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", + "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" + "string.prototype.matchall": "^4.0.10" }, "engines": { "node": ">=4" @@ -4455,9 +4605,9 @@ } }, "node_modules/eslint-plugin-unicorn/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -4574,6 +4724,21 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -4655,6 +4820,16 @@ "node": ">= 0.6" } }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -4774,12 +4949,6 @@ "type": "^2.7.2" } }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -4936,9 +5105,9 @@ } }, "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==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -5230,9 +5399,9 @@ } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "node_modules/flush-write-stream": { @@ -5246,9 +5415,9 @@ } }, "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==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "dev": true, "funding": [ { @@ -5555,28 +5724,33 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, + "engines": { + "node": ">= 0.4" + }, "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==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -6910,21 +7084,21 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "dev": true, "engines": { "node": ">= 0.4" @@ -6946,12 +7120,12 @@ } }, "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==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -7030,53 +7204,18 @@ } }, "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", "dev": true, "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" }, "engines": { "node": ">=4" } }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash-base/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/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", @@ -7088,9 +7227,9 @@ } }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -7288,18 +7427,18 @@ ] }, "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==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/image-size": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", - "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", + "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", "dev": true, "dependencies": { "queue": "6.0.2" @@ -7308,7 +7447,7 @@ "image-size": "bin/image-size.js" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.x" } }, "node_modules/immutable": { @@ -7412,12 +7551,12 @@ } }, "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.2", + "es-errors": "^1.3.0", "hasown": "^2.0.0", "side-channel": "^1.0.4" }, @@ -7469,14 +7608,16 @@ } }, "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==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7600,6 +7741,21 @@ "node": ">= 0.4" } }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "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", @@ -7719,10 +7875,13 @@ } }, "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7737,9 +7896,9 @@ } }, "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==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "engines": { "node": ">= 0.4" @@ -7837,21 +7996,27 @@ } }, "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, + "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7888,12 +8053,12 @@ } }, "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==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -7942,10 +8107,13 @@ } }, "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7963,13 +8131,16 @@ } }, "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8260,12 +8431,15 @@ } }, "node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", "dev": true, "engines": { "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/limiter": { @@ -8995,9 +9169,9 @@ "dev": true }, "node_modules/nan": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", + "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==", "dev": true, "optional": true }, @@ -9108,9 +9282,9 @@ "dev": true }, "node_modules/node-html-parser": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.11.tgz", - "integrity": "sha512-FAgwwZ6h0DSDWxfD0Iq1tsDcBCxdJB1nXpLPPxX8YyVWzbfCjKWEzaynF4gZZ/8hziUmp7ZSaKylcn0iKhufUQ==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.12.tgz", + "integrity": "sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==", "dev": true, "dependencies": { "css-select": "^5.1.0", @@ -9181,9 +9355,9 @@ } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -9579,28 +9753,29 @@ } }, "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==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "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==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -9661,14 +9836,14 @@ } }, "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==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -9868,18 +10043,42 @@ } }, "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", "dev": true, "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, + "node_modules/parse-asn1/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/parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", @@ -10031,9 +10230,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", "dev": true, "engines": { "node": "14 || >=16.14" @@ -10168,10 +10367,19 @@ "node": ">=0.10.0" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "version": "8.4.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.36.tgz", + "integrity": "sha512-/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw==", "dev": true, "funding": [ { @@ -10190,7 +10398,7 @@ "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "source-map-js": "^1.1.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -10225,9 +10433,9 @@ } }, "node_modules/postcss-load-config": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.0.2.tgz", - "integrity": "sha512-Q8QR3FYbqOKa0bnC1UQ2bFq9/ulHX5Bi34muzitMr8aDtUelO5xKeJEYC/5smE0jNE9zdB/NBnOwXKexELbRlw==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.0.3.tgz", + "integrity": "sha512-90pBBI5apUVruIEdCxZic93Wm+i9fTrp7TXbgdUCH+/L+2WnfpITSpq5dFU/IPvbv7aNiMlQISpUkAm3fEcvgQ==", "dev": true, "funding": [ { @@ -10260,10 +10468,13 @@ } }, "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", "dev": true, + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } @@ -10327,9 +10538,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -10504,12 +10715,12 @@ "dev": true }, "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz", + "integrity": "sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==", "dev": true, "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -10888,15 +11099,16 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", - "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", "globalthis": "^1.0.3", "which-builtin-type": "^1.1.3" }, @@ -10945,14 +11157,15 @@ } }, "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==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -11360,13 +11573,13 @@ } }, "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==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", "has-symbols": "^1.0.3", "isarray": "^2.0.5" }, @@ -11399,15 +11612,18 @@ } }, "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==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11436,9 +11652,9 @@ } }, "node_modules/sass/node_modules/immutable": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", - "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", "dev": true }, "node_modules/semver": { @@ -11631,29 +11847,32 @@ "dev": true }, "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "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==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -11756,9 +11975,9 @@ } }, "node_modules/sharp/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -11801,14 +12020,18 @@ } }, "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==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12020,9 +12243,9 @@ } }, "node_modules/socket.io": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz", - "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==", + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", + "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", "dev": true, "dependencies": { "accepts": "~1.3.4", @@ -12038,18 +12261,42 @@ } }, "node_modules/socket.io-adapter": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", - "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", + "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", "dev": true, "dependencies": { + "debug": "~4.3.4", "ws": "~8.11.0" } }, + "node_modules/socket.io-adapter/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/socket.io-adapter/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/socket.io-client": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.3.tgz", - "integrity": "sha512-nU+ywttCyBitXIl9Xe0RSEfek4LneYkJxCeNnKCuhwoH4jGXO1ipIUw/VA/+Vvv2G1MTym11fzFC0SxkrcfXDw==", + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz", + "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==", "dev": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -12153,9 +12400,9 @@ } }, "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==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.1.0.tgz", + "integrity": "sha512-9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -12202,9 +12449,9 @@ } }, "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==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true }, "node_modules/spdx-expression-parse": { @@ -12218,9 +12465,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", "dev": true }, "node_modules/split-string": { @@ -12334,9 +12581,9 @@ } }, "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", "dev": true }, "node_modules/stream-throttle": { @@ -12362,13 +12609,16 @@ "dev": true }, "node_modules/streamx": { - "version": "2.15.6", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", - "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", + "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", "dev": true, "dependencies": { "fast-fifo": "^1.1.0", "queue-tick": "^1.0.1" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" } }, "node_modules/string_decoder": { @@ -12447,14 +12697,15 @@ } }, "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==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -12464,14 +12715,14 @@ } }, "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==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12652,21 +12903,6 @@ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "dev": true }, - "node_modules/stylelint/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/stylelint/node_modules/brace-expansion/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/stylelint/node_modules/cosmiconfig": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", @@ -12736,41 +12972,18 @@ } }, "node_modules/stylelint/node_modules/flat-cache": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.0.tgz", - "integrity": "sha512-EryKbCE/wxpxKniQlyas6PY1I9vwtF3uCBweX+N8KYTCn3Y12RTGtQAJ/bd5pl7kxUAc8v/R3Ake/N17OZiFqA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.4", - "rimraf": "^5.0.5" + "keyv": "^4.5.4" }, "engines": { "node": ">=16" } }, - "node_modules/stylelint/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/stylelint/node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -12810,9 +13023,9 @@ "dev": true }, "node_modules/stylelint/node_modules/meow": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.1.0.tgz", - "integrity": "sha512-o5R/R3Tzxq0PJ3v3qcQJtSvSE9nKOLSAaDuuoMzDVuGTwHdccMWcYomh9Xolng2tjT6O/Y83d+0coVGof6tqmA==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "dev": true, "engines": { "node": ">=18" @@ -12821,45 +13034,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stylelint/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/stylelint/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/stylelint/node_modules/rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", - "dev": true, - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/stylelint/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -12941,9 +13121,9 @@ "dev": true }, "node_modules/superagent/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -13421,9 +13601,9 @@ } }, "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", "dev": true }, "node_modules/type-check": { @@ -13451,29 +13631,30 @@ } }, "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==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "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==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -13483,16 +13664,17 @@ } }, "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==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { "node": ">= 0.4" @@ -13502,14 +13684,20 @@ } }, "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==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", + "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14234,15 +14422,18 @@ "dev": true }, "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14255,16 +14446,16 @@ "dev": true }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" diff --git a/package.json b/package.json index dba49bba1..69a0838b1 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "gulp-svgmin": "4.1.0", "linthtml-config-htmlacademy": "1.0.19", "npm-run-all": "4.1.5", - "postcss": "8.4.35", + "postcss": "8.4.36", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.72.0", From a04046451c404fbf0bf24c078cdc07021581c84d Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 30 Mar 2024 14:53:17 +0300 Subject: [PATCH 086/116] Update dependencies --- gulpfile.js | 3 +- package-lock.json | 4146 +++++++++++---------------------------------- package.json | 12 +- 3 files changed, 972 insertions(+), 3189 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index abc6c41bf..f6ef2b867 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,6 +1,6 @@ import { readFileSync, rmSync } from 'node:fs'; -import gulp from 'gulp'; +import { src, dest, watch, series, parallel } from 'gulp'; import plumber from 'gulp-plumber'; import { nunjucksCompile } from 'gulp-nunjucks'; import htmlmin from 'gulp-htmlmin'; @@ -18,7 +18,6 @@ import { stacksvg } from 'gulp-stacksvg'; import server from 'browser-sync'; import bemlinter from 'gulp-html-bemlinter'; -const { src, dest, watch, series, parallel } = gulp; const sass = gulpSass(dartSass); const PATH_TO_SOURCE = './source/'; const PATH_TO_DIST = './build/'; diff --git a/package-lock.json b/package-lock.json index 0466e0b37..f79589bc0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,13 +9,13 @@ "version": "2.0.6", "devDependencies": { "@htmlacademy/editorconfig-cli": "3.0.0", - "@linthtml/linthtml": "0.9.5", - "autoprefixer": "10.4.18", + "@linthtml/linthtml": "0.9.6", + "autoprefixer": "10.4.19", "browser-sync": "3.0.2", "browserslist-to-esbuild": "2.1.1", "eslint": "8.57.0", "eslint-config-htmlacademy": "10.0.1", - "gulp": "4.0.2", + "gulp": "5.0.0", "gulp-esbuild": "0.12.0", "gulp-html-bemlinter": "3.0.1", "gulp-htmlmin": "5.0.1", @@ -28,13 +28,13 @@ "gulp-svgmin": "4.1.0", "linthtml-config-htmlacademy": "1.0.19", "npm-run-all": "4.1.5", - "postcss": "8.4.36", + "postcss": "8.4.38", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.72.0", - "stylelint": "16.2.1", + "stylelint": "16.3.1", "stylelint-config-htmlacademy": "4.1.0", - "w3c-html-validator": "1.6.4" + "w3c-html-validator": "1.7.0" }, "engines": { "node": "^18.18 || ^20.9" @@ -50,89 +50,18 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", "dev": true, "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/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/@babel/code-frame/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/@babel/code-frame/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/@babel/code-frame/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/@babel/code-frame/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/@babel/code-frame/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/@babel/code-frame/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/@babel/helper-validator-identifier": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", @@ -143,14 +72,15 @@ } }, "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -313,6 +243,16 @@ "postcss-selector-parser": "^6.0.13" } }, + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", + "integrity": "sha512-ZKXyJeFAzcpKM2kk8ipoGIPUqx9BX52omTGnfwjJvxOCaZTM2wtDK7zN0aIgPRbT9XYAlha0HtmZ+XKteuh0Gw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", @@ -778,6 +718,27 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@gulpjs/messages": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@gulpjs/messages/-/messages-1.1.0.tgz", + "integrity": "sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@gulpjs/to-absolute-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz", + "integrity": "sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==", + "dev": true, + "dependencies": { + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/@htmlacademy/editorconfig-cli": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@htmlacademy/editorconfig-cli/-/editorconfig-cli-3.0.0.tgz", @@ -987,22 +948,21 @@ } }, "node_modules/@linthtml/linthtml": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@linthtml/linthtml/-/linthtml-0.9.5.tgz", - "integrity": "sha512-8McouW2gCt3bg3GnK1k98KL5LiDVtY+wEyDjgfC6MdqbGrmVId0B6AKC1eR2wQ5fRvadFxNx5We/QW3K7Vim2w==", + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/@linthtml/linthtml/-/linthtml-0.9.6.tgz", + "integrity": "sha512-balMwDpl0GKq0x35aFSsEuPKUyn2qoz793SprRZvFu30kfdXldH5TBXsud1ltf/N2RIEQctK3xkdtBKbb/ZLYA==", "dev": true, "dependencies": { - "@linthtml/cli": "^0.9.5", - "@linthtml/dom-utils": "^0.9.5", - "@linthtml/html-parser": "^0.9.5", + "@linthtml/cli": "^0.9.3", + "@linthtml/dom-utils": "^0.9.0", + "@linthtml/html-parser": "^0.9.0", "bulk-require": "1.0.1", "cosmiconfig": "7.0.0", "global-modules": "^2.0.0", "globby": "^11.0.2", "ignore": "^5.1.4", "lodash.pull": "4.1.0", - "resolve-from": "^5.0.0", - "rewiremock": "^3.14.3" + "resolve-from": "^5.0.0" }, "bin": { "linthtml": "bin/linthtml.js" @@ -1165,9 +1125,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.29.tgz", - "integrity": "sha512-P99thMkD/1YkCvAtOd6/zGedKNA0p2fj4ZpjCzcNiSCBWgm3cNRTBfa/qjFnsKkkojxu4vVLtWpesnZ9+ap+gA==", + "version": "20.12.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz", + "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1378,30 +1338,12 @@ "node": ">= 8" } }, - "node_modules/append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", - "dev": true, - "dependencies": { - "buffer-equal": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true - }, "node_modules/are-we-there-yet": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", @@ -1412,6 +1354,42 @@ "readable-stream": "^2.0.6" } }, + "node_modules/are-we-there-yet/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/are-we-there-yet/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/are-we-there-yet/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -1430,18 +1408,6 @@ "node": ">=0.10.0" } }, - "node_modules/arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", - "dev": true, - "dependencies": { - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", @@ -1451,18 +1417,6 @@ "node": ">=0.10.0" } }, - "node_modules/arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", - "dev": true, - "dependencies": { - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", @@ -1507,15 +1461,16 @@ } }, "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==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { @@ -1525,49 +1480,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", - "dev": true, - "dependencies": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-initial/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "dependencies": { - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-slice": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", @@ -1577,29 +1489,6 @@ "node": ">=0.10.0" } }, - "node_modules/array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "dependencies": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-sort/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -1609,25 +1498,17 @@ "node": ">=8" } }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array.prototype.findlast": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.4.tgz", - "integrity": "sha512-BMtLxpV+8BD+6ZPFIWmnUBpQoy+A+ujcg4rhp2iwCRJYA7PEh2MS4NL3lz8EiDlLrJPp2hg9qWihr5pd//jcGw==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", + "es-abstract": "^1.23.2", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "es-shim-unscopables": "^1.0.2" }, "engines": { @@ -1805,32 +1686,19 @@ } }, "node_modules/async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-2.0.0.tgz", + "integrity": "sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==", "dev": true, "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" + "end-of-stream": "^1.4.4", + "once": "^1.4.0", + "stream-exhaust": "^1.0.2" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, - "node_modules/async-each": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", - "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, "node_modules/async-each-series": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", @@ -1841,15 +1709,15 @@ } }, "node_modules/async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-2.0.0.tgz", + "integrity": "sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg==", "dev": true, "dependencies": { - "async-done": "^1.2.2" + "async-done": "^2.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/asynckit": { @@ -1858,22 +1726,10 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, "node_modules/autoprefixer": { - "version": "10.4.18", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", - "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", "dev": true, "funding": [ { @@ -1891,7 +1747,7 @@ ], "dependencies": { "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001591", + "caniuse-lite": "^1.0.30001599", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -1933,23 +1789,17 @@ } }, "node_modules/bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bach/-/bach-2.0.1.tgz", + "integrity": "sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg==", "dev": true, "dependencies": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" + "async-done": "^2.0.0", + "async-settle": "^2.0.0", + "now-and-later": "^3.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/balanced-match": { @@ -1959,46 +1809,16 @@ "dev": true }, "node_modules/bare-events": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.1.tgz", - "integrity": "sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz", + "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==", "dev": true, "optional": true }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true, "funding": [ { @@ -2042,16 +1862,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -2063,20 +1873,6 @@ "readable-stream": "^3.4.0" } }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", @@ -2288,25 +2084,47 @@ "node": ">= 0.12" } }, - "node_modules/browserify-sign/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==", + "node_modules/browserify-sign/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "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": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream/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/browserify-sign/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/browserify-sign/node_modules/string_decoder/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/browserify-zlib": { "version": "0.2.0", @@ -2409,24 +2227,6 @@ "ieee754": "^1.1.13" } }, - "node_modules/buffer-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", - "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", - "dev": true, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -2469,26 +2269,6 @@ "node": ">= 0.8" } }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -2554,9 +2334,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001599", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz", - "integrity": "sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==", + "version": "1.0.30001600", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", + "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", "dev": true, "funding": [ { @@ -2650,46 +2430,6 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/clean-css": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", @@ -2831,38 +2571,47 @@ "readable-stream": "^2.3.5" } }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "node_modules/cloneable-readable/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/cloneable-readable/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", + "node_modules/cloneable-readable/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/cloneable-readable/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" + "safe-buffer": "~5.1.0" } }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, "engines": { "node": ">=0.10.0" } @@ -2977,21 +2726,6 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, "node_modules/connect": { "version": "3.6.6", "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", @@ -3035,9 +2769,9 @@ "dev": true }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, "node_modules/cookie": { @@ -3055,23 +2789,17 @@ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", "dev": true }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/copy-props": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", - "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-4.0.0.tgz", + "integrity": "sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==", "dev": true, "dependencies": { - "each-props": "^1.3.2", + "each-props": "^3.0.0", "is-plain-object": "^5.0.0" + }, + "engines": { + "node": ">= 10.13.0" } }, "node_modules/core-js": { @@ -3333,19 +3061,6 @@ "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==", "dev": true }, - "node_modules/d": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", - "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.64", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/data-view-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", @@ -3440,15 +3155,6 @@ "node": ">=0.10.0" } }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, "node_modules/decompress-response": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", @@ -3476,36 +3182,6 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "dependencies": { - "kind-of": "^5.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-compare/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -3561,19 +3237,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -3772,38 +3435,17 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, "node_modules/each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-3.0.0.tgz", + "integrity": "sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==", "dev": true, "dependencies": { - "is-plain-object": "^2.0.1", + "is-plain-object": "^5.0.0", "object.defaults": "^1.1.0" - } - }, - "node_modules/each-props/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, "node_modules/eastasianwidth": { @@ -3937,9 +3579,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.710", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.710.tgz", - "integrity": "sha512-w+9yAVHoHhysCa+gln7AzbO9CdjFcL/wN/5dd+XW/Msl2d/4+WisEaCF1nty0xbAKaxdaJfgLB2296U7zZB7BA==", + "version": "1.4.722", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.722.tgz", + "integrity": "sha512-5nLE0TWFFpZ80Crhtp4pIp8LXCztjYX41yUcV6b+bKR2PqzjskTMOOlBi1VjBHlvHwS+4gar7kNKOrsbsewEZQ==", "dev": true }, "node_modules/elliptic": { @@ -4107,9 +3749,9 @@ } }, "node_modules/es-abstract": { - "version": "1.23.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.2.tgz", - "integrity": "sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", @@ -4151,11 +3793,11 @@ "safe-regex-test": "^1.0.3", "string.prototype.trim": "^1.2.9", "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.7", + "string.prototype.trimstart": "^1.0.8", "typed-array-buffer": "^1.0.2", "typed-array-byte-length": "^1.0.1", "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.5", + "typed-array-length": "^1.0.6", "unbox-primitive": "^1.0.2", "which-typed-array": "^1.1.15" }, @@ -4264,62 +3906,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es5-ext": { - "version": "0.10.64", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", - "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "esniff": "^2.0.1", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", - "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", - "dev": true, - "dependencies": { - "d": "^1.0.2", - "ext": "^1.7.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", "dev": true, "hasInstallScript": true, "bin": { @@ -4724,21 +4314,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/esniff": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", - "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -4820,16 +4395,6 @@ "node": ">= 0.6" } }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -4855,70 +4420,6 @@ "safe-buffer": "^5.1.1" } }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -4940,15 +4441,6 @@ "node": ">=0.10.0" } }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dev": true, - "dependencies": { - "type": "^2.7.2" - } - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -4982,58 +4474,6 @@ "node": ">=4" } }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/fancy-log": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", @@ -5149,13 +4589,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -5203,185 +4636,43 @@ } }, "node_modules/findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", + "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", "dev": true, "dependencies": { "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", "resolve-dir": "^1.0.1" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/findup-sync/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/findup-sync/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, "node_modules/fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", + "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", "dev": true, "dependencies": { "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", + "is-plain-object": "^5.0.0", "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fined/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" + "object.pick": "^1.3.0", + "parse-filepath": "^1.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, "node_modules/flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", + "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/flat-cache": { @@ -5404,16 +4695,6 @@ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, "node_modules/follow-redirects": { "version": "1.15.6", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", @@ -5534,18 +4815,6 @@ "url": "https://github.com/sponsors/rawify" } }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -5573,26 +4842,16 @@ } }, "node_modules/fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz", + "integrity": "sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" + "graceful-fs": "^4.2.8", + "streamx": "^2.12.0" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fs-mkdirp-stream/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "node": ">=10.13.0" } }, "node_modules/fs.realpath": { @@ -5759,15 +5018,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -5807,315 +5057,48 @@ } }, "node_modules/glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-8.0.1.tgz", + "integrity": "sha512-gkw+JQajGXmzky/Lil3/tQ+p96YKkqJwxiakKgfDGpNBNFHxklnK2nPmYukEW6n8/HmcAfeSvT6xCdRafidwZQ==", "dev": true, "dependencies": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", + "@gulpjs/to-absolute-glob": "^4.0.0", + "anymatch": "^3.1.3", + "fastq": "^1.13.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" + "normalize-path": "^3.0.0", + "now-and-later": "^3.0.0", + "streamx": "^2.12.5" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/glob-stream/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-stream/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "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-extglob": "^2.1.0" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=0.10.0" + "node": ">=10.13.0" } }, "node_modules/glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", - "dev": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/glob-watcher/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/glob-watcher/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", - "dev": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/glob-watcher/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/glob-watcher/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-watcher/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", - "dev": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-watcher/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/glob-watcher/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-6.0.0.tgz", + "integrity": "sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==", "dev": true, "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "async-done": "^2.0.0", + "chokidar": "^3.5.3" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, "node_modules/global-modules": { @@ -6225,15 +5208,15 @@ "dev": true }, "node_modules/glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-2.2.0.tgz", + "integrity": "sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==", "dev": true, "dependencies": { - "sparkles": "^1.0.0" + "sparkles": "^2.1.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/gopd": { @@ -6261,318 +5244,109 @@ "dev": true }, "node_modules/gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-5.0.0.tgz", + "integrity": "sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg==", "dev": true, "dependencies": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" + "glob-watcher": "^6.0.0", + "gulp-cli": "^3.0.0", + "undertaker": "^2.0.0", + "vinyl-fs": "^4.0.0" }, "bin": { "gulp": "bin/gulp.js" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", - "dev": true, - "dependencies": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-3.0.0.tgz", + "integrity": "sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA==", + "dev": true, + "dependencies": { + "@gulpjs/messages": "^1.1.0", + "chalk": "^4.1.2", + "copy-props": "^4.0.0", + "gulplog": "^2.2.0", + "interpret": "^3.1.1", + "liftoff": "^5.0.0", + "mute-stdout": "^2.0.0", + "replace-homedir": "^2.0.0", + "semver-greatest-satisfied-range": "^2.0.0", + "string-width": "^4.2.3", + "v8flags": "^4.0.0", + "yargs": "^16.2.0" }, "bin": { "gulp": "bin/gulp.js" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulp-cli/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/gulp-cli/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "node_modules/gulp-cli/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/gulp-cli/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/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/gulp-cli/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", - "dev": true, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", - "dev": true, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", - "dev": true, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/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": ">=10.13.0" } }, - "node_modules/gulp-cli/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "node_modules/gulp-cli/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": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" + "node": ">=10" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/gulp-cli/node_modules/strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "node_modules/gulp-cli/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, "node_modules/gulp-cli/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "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": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/gulp-cli/node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, "node_modules/gulp-cli/node_modules/yargs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", - "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.1" - } - }, - "node_modules/gulp-cli/node_modules/yargs-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", - "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, "node_modules/gulp-esbuild": { @@ -6630,6 +5404,12 @@ "node": ">= 6.0" } }, + "node_modules/gulp-htmlmin/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, "node_modules/gulp-htmlmin/node_modules/plugin-error": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", @@ -6645,6 +5425,36 @@ "node": ">= 0.10" } }, + "node_modules/gulp-htmlmin/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/gulp-htmlmin/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/gulp-htmlmin/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/gulp-htmlmin/node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -6810,6 +5620,12 @@ "node": ">=0.10.0" } }, + "node_modules/gulp-plumber/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, "node_modules/gulp-plumber/node_modules/kind-of": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", @@ -6835,6 +5651,36 @@ "node": ">=0.10.0" } }, + "node_modules/gulp-plumber/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/gulp-plumber/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/gulp-plumber/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/gulp-plumber/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -7024,15 +5870,15 @@ } }, "node_modules/gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-2.2.0.tgz", + "integrity": "sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==", "dev": true, "dependencies": { - "glogg": "^1.0.0" + "glogg": "^2.2.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/hard-rejection": { @@ -7140,69 +5986,6 @@ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/hash-base": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", @@ -7565,21 +6348,12 @@ } }, "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10.13.0" } }, "node_modules/is-absolute": { @@ -7595,18 +6369,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/is-array-buffer": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", @@ -7684,12 +6446,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, "node_modules/is-builtin-module": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", @@ -7729,18 +6485,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-descriptor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/is-data-view": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", @@ -7771,19 +6515,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", @@ -8091,12 +6822,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", - "dev": true - }, "node_modules/is-valid-glob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", @@ -8165,9 +6890,9 @@ } }, "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "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": { @@ -8301,12 +7026,6 @@ "node": ">=4.0" } }, - "node_modules/just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", - "dev": true - }, "node_modules/kebabcase": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/kebabcase/-/kebabcase-1.0.1.tgz", @@ -8332,58 +7051,27 @@ } }, "node_modules/known-css-properties": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz", - "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.30.0.tgz", + "integrity": "sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==", "dev": true }, "node_modules/last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", - "dev": true, - "dependencies": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-2.0.0.tgz", + "integrity": "sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==", "dev": true, - "dependencies": { - "invert-kv": "^1.0.0" - }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, "node_modules/lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-4.0.0.tgz", + "integrity": "sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==", "dev": true, - "dependencies": { - "flush-write-stream": "^1.0.2" - }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/levn": { @@ -8400,34 +7088,21 @@ } }, "node_modules/liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "dev": true, - "dependencies": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/liftoff/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-5.0.0.tgz", + "integrity": "sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==", "dev": true, "dependencies": { - "isobject": "^3.0.1" + "extend": "^3.0.2", + "findup-sync": "^5.0.0", + "fined": "^2.0.0", + "flagged-respawn": "^2.0.0", + "is-plain-object": "^5.0.0", + "rechoir": "^0.8.0", + "resolve": "^1.20.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10.13.0" } }, "node_modules/lilconfig": { @@ -8464,6 +7139,57 @@ "linthtml-rules-htmlacademy": "1.0.15" } }, + "node_modules/linthtml-config-htmlacademy/node_modules/@linthtml/linthtml": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@linthtml/linthtml/-/linthtml-0.9.5.tgz", + "integrity": "sha512-8McouW2gCt3bg3GnK1k98KL5LiDVtY+wEyDjgfC6MdqbGrmVId0B6AKC1eR2wQ5fRvadFxNx5We/QW3K7Vim2w==", + "dev": true, + "dependencies": { + "@linthtml/cli": "^0.9.5", + "@linthtml/dom-utils": "^0.9.5", + "@linthtml/html-parser": "^0.9.5", + "bulk-require": "1.0.1", + "cosmiconfig": "7.0.0", + "global-modules": "^2.0.0", + "globby": "^11.0.2", + "ignore": "^5.1.4", + "lodash.pull": "4.1.0", + "resolve-from": "^5.0.0", + "rewiremock": "^3.14.3" + }, + "bin": { + "linthtml": "bin/linthtml.js" + } + }, + "node_modules/linthtml-config-htmlacademy/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/linthtml-config-htmlacademy/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/linthtml-rules-htmlacademy": { "version": "1.0.15", "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.15.tgz", @@ -8647,236 +7373,40 @@ "node": ">=10" } }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==", - "dev": true, - "dependencies": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/matchdep/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/matchdep/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "dependencies": { - "is-buffer": "^1.1.5" + "semver": "^6.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/matchdep/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, "engines": { "node": ">=0.10.0" } }, - "node_modules/matchdep/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mathml-tag-names": { @@ -9128,19 +7658,6 @@ "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", "dev": true }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", @@ -9154,12 +7671,12 @@ "dev": true }, "node_modules/mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-2.0.0.tgz", + "integrity": "sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/mute-stream": { @@ -9168,13 +7685,6 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "node_modules/nan": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", - "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==", - "dev": true, - "optional": true - }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -9193,28 +7703,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/napi-build-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", @@ -9236,12 +7724,6 @@ "node": ">= 0.6" } }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -9282,9 +7764,9 @@ "dev": true }, "node_modules/node-html-parser": { - "version": "6.1.12", - "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.12.tgz", - "integrity": "sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==", + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.13.tgz", + "integrity": "sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==", "dev": true, "dependencies": { "css-select": "^5.1.0", @@ -9333,6 +7815,48 @@ "isarray": "^1.0.0" } }, + "node_modules/node-libs-browser/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/node-libs-browser/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/node-libs-browser/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/node-libs-browser/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", @@ -9388,15 +7912,15 @@ } }, "node_modules/now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz", + "integrity": "sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==", "dev": true, "dependencies": { - "once": "^1.3.2" + "once": "^1.4.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/npm-run-all": { @@ -9638,57 +8162,6 @@ "node": ">=0.10.0" } }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", @@ -9707,18 +8180,6 @@ "node": ">= 0.4" } }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object.assign": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", @@ -9785,31 +8246,22 @@ } }, "node_modules/object.hasown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", - "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", + "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", "dev": true, "dependencies": { - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -9822,19 +8274,6 @@ "node": ">=0.10.0" } }, - "node_modules/object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object.values": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", @@ -9940,33 +8379,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.1" - } - }, "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true }, - "node_modules/os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", - "dev": true, - "dependencies": { - "lcid": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -10059,26 +8477,6 @@ "node": ">= 0.10" } }, - "node_modules/parse-asn1/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/parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", @@ -10138,27 +8536,12 @@ "node": ">= 0.8" } }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", - "dev": true - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -10214,12 +8597,12 @@ } }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", "dev": true, "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { @@ -10302,27 +8685,6 @@ "node": ">=4" } }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/plugin-error": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-2.0.1.tgz", @@ -10358,15 +8720,6 @@ "npm": ">=1.0.0" } }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", @@ -10377,9 +8730,9 @@ } }, "node_modules/postcss": { - "version": "8.4.36", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.36.tgz", - "integrity": "sha512-/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw==", + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "dev": true, "funding": [ { @@ -10398,7 +8751,7 @@ "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", - "source-map-js": "^1.1.0" + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -10622,15 +8975,6 @@ "node": ">= 0.8.0" } }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -10687,32 +9031,14 @@ "once": "^1.3.1" } }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true + "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.12.0", @@ -11038,18 +9364,17 @@ } }, "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/readdirp": { @@ -11065,15 +9390,15 @@ } }, "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, "dependencies": { - "resolve": "^1.1.6" + "resolve": "^1.20.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/redent": { @@ -11125,28 +9450,6 @@ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, "node_modules/regexp-tree": { "version": "0.1.27", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", @@ -11216,43 +9519,6 @@ "node": ">= 0.10" } }, - "node_modules/remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", - "dev": true, - "dependencies": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remove-bom-stream/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -11268,24 +9534,6 @@ "debug": "^2.5.2" } }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, "node_modules/replace-ext": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", @@ -11296,17 +9544,12 @@ } }, "node_modules/replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-2.0.0.tgz", + "integrity": "sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==", "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/require-directory": { @@ -11327,12 +9570,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", - "dev": true - }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -11421,24 +9658,17 @@ } }, "node_modules/resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-2.0.0.tgz", + "integrity": "sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==", "dev": true, "dependencies": { - "value-or-function": "^3.0.0" + "value-or-function": "^4.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, "node_modules/resp-modifier": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", @@ -11465,15 +9695,6 @@ "node": ">=8" } }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -11590,17 +9811,25 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-array-concat/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/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 + "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/safe-regex": { "version": "2.1.1", @@ -11667,15 +9896,15 @@ } }, "node_modules/semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz", + "integrity": "sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==", "dev": true, "dependencies": { - "sver-compat": "^1.5.0" + "sver": "^1.8.3" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/send": { @@ -11878,54 +10107,6 @@ "node": ">= 0.4" } }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -12065,181 +10246,57 @@ }, "node_modules/simple-get": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "dev": true, - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - }, - "node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", "dev": true, "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" } }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" + "is-arrayish": "^0.3.1" } }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/socket.io": { @@ -12400,42 +10457,21 @@ } }, "node_modules/source-map-js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.1.0.tgz", - "integrity": "sha512-9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true - }, "node_modules/sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-2.1.0.tgz", + "integrity": "sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/spdx-correct": { @@ -12470,18 +10506,6 @@ "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", "dev": true }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -12495,70 +10519,68 @@ "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", "dev": true }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "node_modules/statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg==", "dev": true, "engines": { - "node": "*" + "node": ">= 0.6" } }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "dev": true, "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/stream-browserify/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg==", + "node_modules/stream-browserify/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/stream-browserify/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "engines": { - "node": ">= 0.6" + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "node_modules/stream-composer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-composer/-/stream-composer-1.0.2.tgz", + "integrity": "sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==", "dev": true, "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" + "streamx": "^2.13.2" } }, "node_modules/stream-exhaust": { @@ -12580,12 +10602,42 @@ "xtend": "^4.0.0" } }, - "node_modules/stream-shift": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "node_modules/stream-http/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/stream-http/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/stream-http/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/stream-throttle": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", @@ -12622,12 +10674,12 @@ } }, "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "dependencies": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, "node_modules/string-width": { @@ -12660,34 +10712,41 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", - "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "regexp.prototype.flags": "^1.5.0", - "set-function-name": "^2.0.0", - "side-channel": "^1.0.4" + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "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==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -12729,14 +10788,17 @@ } }, "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==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12807,15 +10869,16 @@ "dev": true }, "node_modules/stylelint": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.2.1.tgz", - "integrity": "sha512-SfIMGFK+4n7XVAyv50CpVfcGYWG4v41y6xG7PqOgQSY8M/PgdK0SQbjWFblxjJZlN9jNq879mB4BCZHJRIJ1hA==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.3.1.tgz", + "integrity": "sha512-/JOwQnBvxEKOT2RtNgGpBVXnCSMBgKOL2k7w0K52htwCyJls4+cHvc4YZgXlVoAZS9QJd2DgYAiRnja96pTgxw==", "dev": true, "dependencies": { - "@csstools/css-parser-algorithms": "^2.5.0", - "@csstools/css-tokenizer": "^2.2.3", - "@csstools/media-query-list-parser": "^2.1.7", - "@csstools/selector-specificity": "^3.0.1", + "@csstools/css-parser-algorithms": "^2.6.1", + "@csstools/css-tokenizer": "^2.2.4", + "@csstools/media-query-list-parser": "^2.1.9", + "@csstools/selector-specificity": "^3.0.2", + "@dual-bundle/import-meta-resolve": "^4.0.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", "cosmiconfig": "^9.0.0", @@ -12829,19 +10892,19 @@ "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^5.3.0", + "ignore": "^5.3.1", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.29.0", + "known-css-properties": "^0.30.0", "mathml-tag-names": "^2.1.3", - "meow": "^13.1.0", + "meow": "^13.2.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "picocolors": "^1.0.0", - "postcss": "^8.4.33", + "postcss": "^8.4.38", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^7.0.0", - "postcss-selector-parser": "^6.0.15", + "postcss-selector-parser": "^6.0.16", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", @@ -13172,14 +11235,13 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==", + "node_modules/sver": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/sver/-/sver-1.8.4.tgz", + "integrity": "sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==", "dev": true, - "dependencies": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" + "optionalDependencies": { + "semver": "^6.3.0" } }, "node_modules/svg-tags": { @@ -13266,9 +11328,9 @@ "dev": true }, "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "dev": true, "dependencies": { "ajv": "^8.0.1", @@ -13346,20 +11408,6 @@ "node": ">=6" } }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/teex": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", @@ -13382,46 +11430,12 @@ "dev": true }, "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "dependencies": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "node_modules/through2-filter/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" } }, "node_modules/time-stamp": { @@ -13457,64 +11471,12 @@ "node": ">=0.6.0" } }, - "node_modules/to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", - "dev": true, - "dependencies": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", "dev": true }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -13527,35 +11489,16 @@ "node": ">=8.0" } }, - "node_modules/to-regex/node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, "node_modules/to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-3.0.0.tgz", + "integrity": "sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==", "dev": true, "dependencies": { - "through2": "^2.0.3" + "streamx": "^2.12.5" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/to-through/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "node": ">=10.13.0" } }, "node_modules/toidentifier": { @@ -13600,12 +11543,6 @@ "node": "*" } }, - "node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -13684,9 +11621,9 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", - "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, "dependencies": { "call-bind": "^1.0.7", @@ -13703,12 +11640,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, "node_modules/typical": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", @@ -13788,40 +11719,37 @@ } }, "node_modules/undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-2.0.0.tgz", + "integrity": "sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ==", "dev": true, "dependencies": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" + "bach": "^2.0.1", + "fast-levenshtein": "^3.0.0", + "last-run": "^2.0.0", + "undertaker-registry": "^2.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-2.0.0.tgz", + "integrity": "sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/undertaker/node_modules/fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", + "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", + "dev": true, + "dependencies": { + "fastest-levenshtein": "^1.0.7" + } }, "node_modules/undici-types": { "version": "5.26.5", @@ -13841,40 +11769,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "dependencies": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -13893,64 +11787,6 @@ "node": ">= 0.8" } }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, "node_modules/update-browserslist-db": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", @@ -13996,22 +11832,6 @@ "punycode": "^2.1.0" } }, - "node_modules/uri-js/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/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, "node_modules/url": { "version": "0.11.3", "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", @@ -14022,14 +11842,11 @@ "qs": "^6.11.2" } }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true }, "node_modules/util": { "version": "0.11.1", @@ -14062,15 +11879,12 @@ } }, "node_modules/v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", + "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/validate-npm-package-license": { @@ -14084,12 +11898,12 @@ } }, "node_modules/value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-4.0.0.tgz", + "integrity": "sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/vary": { @@ -14117,124 +11931,106 @@ "node": ">=10.13.0" } }, - "node_modules/vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "node_modules/vinyl-contents": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-contents/-/vinyl-contents-2.0.0.tgz", + "integrity": "sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==", "dev": true, "dependencies": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" + "bl": "^5.0.0", + "vinyl": "^3.0.0" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-fs/node_modules/replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true, - "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, - "node_modules/vinyl-fs/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "node_modules/vinyl-contents/node_modules/bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", "dev": true, "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "node_modules/vinyl-fs/node_modules/vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "node_modules/vinyl-contents/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "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": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", + "node_modules/vinyl-fs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-4.0.0.tgz", + "integrity": "sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==", "dev": true, "dependencies": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" + "fs-mkdirp-stream": "^2.0.1", + "glob-stream": "^8.0.0", + "graceful-fs": "^4.2.11", + "iconv-lite": "^0.6.3", + "is-valid-glob": "^1.0.0", + "lead": "^4.0.0", + "normalize-path": "3.0.0", + "resolve-options": "^2.0.0", + "stream-composer": "^1.0.2", + "streamx": "^2.14.0", + "to-through": "^3.0.0", + "value-or-function": "^4.0.0", + "vinyl": "^3.0.0", + "vinyl-sourcemap": "^2.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, - "node_modules/vinyl-sourcemap/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "node_modules/vinyl-fs/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": { - "remove-trailing-separator": "^1.0.1" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/vinyl-sourcemap/node_modules/replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-sourcemap/node_modules/vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "node_modules/vinyl-sourcemap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz", + "integrity": "sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==", "dev": true, "dependencies": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" + "convert-source-map": "^2.0.0", + "graceful-fs": "^4.2.10", + "now-and-later": "^3.0.0", + "streamx": "^2.12.5", + "vinyl": "^3.0.0", + "vinyl-contents": "^2.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/vinyl-sourcemaps-apply": { @@ -14262,9 +12058,9 @@ "dev": true }, "node_modules/w3c-html-validator": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/w3c-html-validator/-/w3c-html-validator-1.6.4.tgz", - "integrity": "sha512-IzvnWP5Nzgzt0/pH35heWAM8bk8yTIe8HrXUxDedHtTmAt61A3kUyWvqpM5MgMnclqs6QON4ea7GyOIn0dtrng==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/w3c-html-validator/-/w3c-html-validator-1.7.0.tgz", + "integrity": "sha512-C183Z91s8ej5c2ceZTR0rov+nCSqFwGC1F8oe9ShbjqLuwONdtgkJ1MLLYlXOLR2yldKzIGRmyKiPRUiv6OvCg==", "dev": true, "dependencies": { "chalk": "~5.3", @@ -14313,16 +12109,16 @@ } }, "node_modules/w3c-html-validator/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", + "jackspeak": "^2.3.6", "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" }, "bin": { "glob": "dist/esm/bin.mjs" @@ -14335,9 +12131,9 @@ } }, "node_modules/w3c-html-validator/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -14415,12 +12211,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-builtin-type/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/which-collection": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", @@ -14439,12 +12229,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", - "dev": true - }, "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", diff --git a/package.json b/package.json index 69a0838b1..2675b04c1 100644 --- a/package.json +++ b/package.json @@ -31,13 +31,13 @@ }, "devDependencies": { "@htmlacademy/editorconfig-cli": "3.0.0", - "@linthtml/linthtml": "0.9.5", - "autoprefixer": "10.4.18", + "@linthtml/linthtml": "0.9.6", + "autoprefixer": "10.4.19", "browser-sync": "3.0.2", "browserslist-to-esbuild": "2.1.1", "eslint": "8.57.0", "eslint-config-htmlacademy": "10.0.1", - "gulp": "4.0.2", + "gulp": "5.0.0", "gulp-esbuild": "0.12.0", "gulp-html-bemlinter": "3.0.1", "gulp-htmlmin": "5.0.1", @@ -50,12 +50,12 @@ "gulp-svgmin": "4.1.0", "linthtml-config-htmlacademy": "1.0.19", "npm-run-all": "4.1.5", - "postcss": "8.4.36", + "postcss": "8.4.38", "postcss-csso": "6.0.1", "postcss-url": "10.1.3", "sass": "1.72.0", - "stylelint": "16.2.1", + "stylelint": "16.3.1", "stylelint-config-htmlacademy": "4.1.0", - "w3c-html-validator": "1.6.4" + "w3c-html-validator": "1.7.0" } } From a64abed6d89208b9ec4324864a85591c665636e9 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 30 Mar 2024 17:54:12 +0300 Subject: [PATCH 087/116] Fix wrong path for lintBem --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index f6ef2b867..b93fe1d17 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -43,7 +43,7 @@ export function processMarkup () { } export function lintBem () { - return src(`${PATH_TO_SOURCE}*.html`) + return src(`${PATH_TO_DIST}**/*.html`) .pipe(bemlinter()); } From efdc6d16f81a851931041276f3618f5dc04aa7f4 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 30 Mar 2024 18:59:17 +0300 Subject: [PATCH 088/116] Move `icons/` to `source/` Resolves #68 --- README.md | 99 ++++++++++++++++---------------- gulpfile.js | 7 +-- raw/{images => }/icons/README.md | 2 +- source/icons/README.md | 17 ++++++ source/images/icons/README.md | 19 ------ 5 files changed, 72 insertions(+), 72 deletions(-) rename raw/{images => }/icons/README.md (77%) create mode 100644 source/icons/README.md delete mode 100644 source/images/icons/README.md diff --git a/README.md b/README.md index e22d4564c..a80a04bcd 100644 --- a/README.md +++ b/README.md @@ -63,39 +63,39 @@ В каждой папке есть `README.md` файл, который имеет более полное описание по работе с папкой ```shell -├── .github/ # Специальная папка для github -│ └── workflows/ # Автоматизация для github actions -│ ├── check.yml # Запускает линтеры на Гитхабе -│ └── gh-pages.yml # Публикует проект и создаёт ссылку на проект -├── raw/ # Папка для «сырых» файлов (игнорируются гитом) -│ └── images/ # Папка для оригиналов картинок -│ └── icons/ # Папка для оригиналов svg-иконок -├── source/ # Исходники проекта -│ ├── favicons/ # Папка для фавиконок (кроме favicon.ico) -│ ├── fonts/ # Папка для шрифтов -│ ├── images/ # Папка для оптимизированных картинок -│ │ └── icons/ # Папка для оптимизированных svg-иконок для преобразования их в спрайт (stack) -│ ├── scripts/ # Скрипты -│ │ └── index.js # Главный скрипт -│ ├── styles/ # Папка для препроцессорных файлов sass -│ │ ├── blocks/ # Стили БЭМ-блоков -│ │ │ └── header.scss # Стили для конкретного БЭМ-блока -│ │ ├── global # Файл для подключения стилей библиотек из папки -│ │ │ ├── fonts.scss # Подключение шрифтов к проекту -│ │ │ ├── global.scss # Глобальные стили, которые касаются всего проекта -│ │ │ └── variables.scss # Переменные для всего проекта -│ │ └── styles.scss # Основной стилевой файл с импортами всех остальных -│ ├── vendor # Папка для сторонних бибилотек -│ └── index.html # HTML-файл для главной страницы -├── .editorconfig # Настройки форматирования текстовых файлов -├── .eslintrc # Правила для eslint -├── .gitignore # Настройки игнорирования файлов для git -├── .linthtmlrc # Правила для linthtml -├── .stylelintrc # Правила для stylelint -├── gulpfile.js # Автоматизация для Gulp -├── package.json # Зависимости проекта, скрипты, настройки проекта -├── package-lock.json # Зависимости проекта -└── README.md # Документация +├── .github/ # Специальная папка для github +│ └── workflows/ # Автоматизация для github actions +│ ├── check.yml # Запускает линтеры на Гитхабе +│ └── gh-pages.yml # Публикует проект и создаёт ссылку на проект +├── raw/ # Папка для «сырых» файлов (игнорируются гитом) +│ ├── icons/ # Папка для оригиналов svg-иконок +│ └── images/ # Папка для оригиналов картинок +├── source/ # Исходники проекта +│ ├── favicons/ # Папка для фавиконок (кроме favicon.ico) +│ ├── fonts/ # Папка для шрифтов +│ ├── icons/ # Папка для оптимизированных svg-иконок для преобразования их в спрайт (stack) +│ ├── images/ # Папка для оптимизированных картинок +│ ├── scripts/ # Скрипты +│ │ └── index.js # Главный скрипт +│ ├── styles/ # Папка для препроцессорных файлов sass +│ │ ├── blocks/ # Стили БЭМ-блоков +│ │ │ └── header.scss # Стили для конкретного БЭМ-блока +│ │ ├── global # Файл для подключения стилей библиотек из папки +│ │ │ ├── fonts.scss # Подключение шрифтов к проекту +│ │ │ ├── global.scss # Глобальные стили, которые касаются всего проекта +│ │ │ └── variables.scss # Переменные для всего проекта +│ │ └── styles.scss # Основной стилевой файл с импортами всех остальных +│ ├── vendor # Папка для сторонних бибилотек +│ └── index.html # HTML-файл для главной страницы +├── .editorconfig # Настройки форматирования текстовых файлов +├── .eslintrc # Правила для eslint +├── .gitignore # Настройки игнорирования файлов для git +├── .linthtmlrc # Правила для linthtml +├── .stylelintrc # Правила для stylelint +├── gulpfile.js # Автоматизация для Gulp +├── package.json # Зависимости проекта, скрипты, настройки проекта +├── package-lock.json # Зависимости проекта +└── README.md # Документация ``` ## Основные команды @@ -179,7 +179,7 @@ ### Растр -Абсолютно всю растровую графику с двухкратной плотностью из макета складывайте в `raw/images/`. Здесь графика игнорируется гитом. +Абсолютно всю растровую графику с **двухкратной плотностью** из макета складывайте в `raw/images/`. Здесь графика игнорируется гитом. После того как добавите графику сразу запускайте команду `npm run optimize:raster` (или просто `npm run optimize`) для оптимизации графики и создания `.webp`-версии. Команду нужно запускать один раз при появлении новой графики в проекте. @@ -187,40 +187,43 @@ ### Вектор -Контентную векторную графику (логотип, графики, иллюстрации) также складывайте в `raw/images/`. Запуск команды `npm run optimize:vector` (или просто `npm run optimize`) поместит оптимизированные копии этих svg-файлов в `source/images/` +Векторную графику для спрайта (иконки) складывайте в: ```shell └── raw/ - └── images/ + └── icons/ ``` -Векторную графику для спрайта (иконки) складывайте в `raw/images/icons/`. +Контентную векторную графику (логотип, графики, иллюстрации) складывайте в: ```shell └── raw/ └── images/ - └── icons/ ``` -Запуск команды `npm run optimize:vector` поместит оптимизированные копии этих svg-файлов в `source/images/icons/`. +Запуск команды `npm run optimize:vector` поместит оптимизированные копии этих svg-файлов в соответствующие папки в исходниках: ```shell └── source/ + ├── icons/ └── images/ - └── icons/ ``` -При сборке автоматизация перенесёт всю графику из `source/images/` в `build/images/`, а из иконок в `source/images/icons/` создаст спрайт `build/images/icons/stack.svg`. +### Сборка + +При продакшен-сборке автоматизация перенесёт всю графику из `source/images/` в `build/images/`, а из иконок в `source/icons/` создаст спрайт `build/icons/stack.svg`. + +**НО!** При сборке для разработки автоматизация собирает только спрайт в `build/icons/`. Папки `images/` в `build/` не будет совсем — это нормально, дев-сервер знает, что при запросе этих изображений ему надо смотреть в `source/images/`. Это также относится к фавиконкам и шрифтам. ```shell └── build/ - └── images/ - ├── icons/ # папка для спрайта - │ └── stack.svg # спрайт - ├── bg.jpg - ├── bg.webp - ├── hero.png - ├── hero.webp + ├── icons/ # при любой сборке + │ └── stack.svg + └── images/ # только при продакшен-сборке + ├── hero@1x.png + ├── hero@1x.webp + ├── hero@2x.png + ├── hero@2x.webp └── logo.svg ``` diff --git a/gulpfile.js b/gulpfile.js index b93fe1d17..04a8238cc 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -29,7 +29,6 @@ const PATHS_TO_STATIC = [ `${PATH_TO_SOURCE}favicons/**/*.{png,svg}`, `${PATH_TO_SOURCE}vendor/**/*`, `${PATH_TO_SOURCE}images/**/*`, - `!${PATH_TO_SOURCE}images/icons/**/*`, `!${PATH_TO_SOURCE}**/README.md`, ]; let isDevelopment = true; @@ -112,9 +111,9 @@ export function optimizeVector () { } export function createStack () { - return src(`${PATH_TO_SOURCE}images/icons/**/*.svg`) + return src(`${PATH_TO_SOURCE}icons/**/*.svg`) .pipe(stacksvg()) - .pipe(dest(`${PATH_TO_DIST}images/icons`)); + .pipe(dest(`${PATH_TO_DIST}icons`)); } export function copyStatic () { @@ -150,7 +149,7 @@ export function startServer () { watch(`${PATH_TO_SOURCE}**/*.{html,njk}`, series(processMarkup)); watch(`${PATH_TO_SOURCE}styles/**/*.scss`, series(processStyles)); watch(`${PATH_TO_SOURCE}scripts/**/*.js`, series(processScripts)); - watch(`${PATH_TO_SOURCE}images/icons/**/*.svg`, series(createStack, reloadServer)); + watch(`${PATH_TO_SOURCE}icons/**/*.svg`, series(createStack, reloadServer)); watch(PATHS_TO_STATIC, series(reloadServer)); } diff --git a/raw/images/icons/README.md b/raw/icons/README.md similarity index 77% rename from raw/images/icons/README.md rename to raw/icons/README.md index 9c5eb8e6b..ea705861f 100644 --- a/raw/images/icons/README.md +++ b/raw/icons/README.md @@ -1,3 +1,3 @@ # Папка для оригиналов иконок -Сюда нужно скидывать неоптимизированные svg-иконки. Для каждой из них запуск команды `npm run optimize:vector` создат в `source/images/icons` оптимизированную копию. +Сюда нужно скидывать неоптимизированные svg-иконки. Для каждой из них запуск команды `npm run optimize:vector` создат в `source/icons` оптимизированную копию. diff --git a/source/icons/README.md b/source/icons/README.md new file mode 100644 index 000000000..2ca443865 --- /dev/null +++ b/source/icons/README.md @@ -0,0 +1,17 @@ +# Папка для оптимизированных векторных иконок + +```shell +└── source/ + └── icons/ + ├── tg.svg + ├── vk.svg + └── yt.svg +``` + +Находящиеся здесь иконки станут одним спрайтом: + +```shell +└── build/ + └── icons/ # папка для спрайта + └── stack.svg # спрайт +``` diff --git a/source/images/icons/README.md b/source/images/icons/README.md deleted file mode 100644 index a6b85f725..000000000 --- a/source/images/icons/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# Папка для оптимизированных векторных иконок - -```shell -└── source/ - └── images/ - └── icons/ - ├── tg.svg - ├── vk.svg - └── yt.svg -``` - -Находящиеся здесь иконки станут одним спрайтом: - -```shell -└── build/ - └── images/ - └── icons/ # папка для спрайта - └── stack.svg # спрайт -``` From f548296a906d305a07517eef59fb07376d4a1948 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sat, 30 Mar 2024 21:39:58 +0300 Subject: [PATCH 089/116] Rename `global` folder to `common` Resolves #73 --- README.md | 16 ++++++++-------- source/styles/{global => common}/README.md | 7 ++++--- source/styles/{global => common}/fonts.scss | 0 source/styles/{global => common}/global.scss | 0 source/styles/{global => common}/variables.scss | 0 source/styles/styles.scss | 6 +++--- 6 files changed, 15 insertions(+), 14 deletions(-) rename source/styles/{global => common}/README.md (74%) rename source/styles/{global => common}/fonts.scss (100%) rename source/styles/{global => common}/global.scss (100%) rename source/styles/{global => common}/variables.scss (100%) diff --git a/README.md b/README.md index a80a04bcd..bd98f3635 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ │ ├── styles/ # Папка для препроцессорных файлов sass │ │ ├── blocks/ # Стили БЭМ-блоков │ │ │ └── header.scss # Стили для конкретного БЭМ-блока -│ │ ├── global # Файл для подключения стилей библиотек из папки +│ │ ├── common/ # Папка для общих стилей (не БЭМ-блоки) │ │ │ ├── fonts.scss # Подключение шрифтов к проекту │ │ │ ├── global.scss # Глобальные стили, которые касаются всего проекта │ │ │ └── variables.scss # Переменные для всего проекта @@ -146,20 +146,20 @@ └── styles/ ├── blocks/ │ └── header.scss - ├── global + ├── common/ │ ├── fonts.scss │ ├── global.scss │ └── variables.scss └── styles.scss ``` -Все БЭМ-блоки и остальные препроцессорные файлы подключайте в `source/styles/styles.scss`. +Все БЭМ-блоки и остальные препроцессорные файлы подключайте в `source/styles/styles.scss`: ```scss -/* GLOBAL */ -@import "./global/variables.scss"; -@import "./global/global.scss"; -@import "./global/fonts.scss"; +/* COMMON */ +@import "./common/variables.scss"; +@import "./common/global.scss"; +@import "./common/fonts.scss"; /* BLOCKS */ @import "./blocks/header.scss"; @@ -167,7 +167,7 @@ БЭМ-блоки импортируйте в секцию `/* BLOCKS */`. -Все препроцессорные файлы сборка обработает и превратит в `styles.css`. Файл `styles.css` сборка перенесёт в +Все препроцессорные файлы сборка обработает и превратит в `styles.css`. Файл `styles.css` сборка перенесёт в: ```shell └── build/ diff --git a/source/styles/global/README.md b/source/styles/common/README.md similarity index 74% rename from source/styles/global/README.md rename to source/styles/common/README.md index 6bbdb27ad..05303f13f 100644 --- a/source/styles/global/README.md +++ b/source/styles/common/README.md @@ -1,4 +1,4 @@ -# Папка для глобальных стилей +# Папка для общих стилей (не БЭМ-блоки) _fonts.scss_ ```scss @@ -27,6 +27,7 @@ img { object-fit: contain; } -html {} -body {} +body { + margin: 0; +} ``` diff --git a/source/styles/global/fonts.scss b/source/styles/common/fonts.scss similarity index 100% rename from source/styles/global/fonts.scss rename to source/styles/common/fonts.scss diff --git a/source/styles/global/global.scss b/source/styles/common/global.scss similarity index 100% rename from source/styles/global/global.scss rename to source/styles/common/global.scss diff --git a/source/styles/global/variables.scss b/source/styles/common/variables.scss similarity index 100% rename from source/styles/global/variables.scss rename to source/styles/common/variables.scss diff --git a/source/styles/styles.scss b/source/styles/styles.scss index 118c79c4b..76101881a 100644 --- a/source/styles/styles.scss +++ b/source/styles/styles.scss @@ -1,7 +1,7 @@ /* GLOBAL */ -@import "./global/variables.scss"; -@import "./global/global.scss"; -@import "./global/fonts.scss"; +@import "./common/variables.scss"; +@import "./common/global.scss"; +@import "./common/fonts.scss"; /* BLOCKS */ @import "./blocks/header.scss"; From a019541cb770d012c1a9a00f5f3176197e339f1f Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sun, 31 Mar 2024 12:54:00 +0300 Subject: [PATCH 090/116] Replace `autoprefixer` and `postcss-csso` with `postcss-lightningcss` --- gulpfile.js | 10 +- package-lock.json | 386 +++++++++++++++++++++++++++++++--------------- package.json | 3 +- 3 files changed, 267 insertions(+), 132 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 04a8238cc..08d319a50 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -8,8 +8,7 @@ import * as dartSass from 'sass'; import gulpSass from 'gulp-sass'; import postcss from 'gulp-postcss'; import postUrl from 'postcss-url'; -import autoprefixer from 'autoprefixer'; -import csso from 'postcss-csso'; +import lightningcss from 'postcss-lightningcss'; import { createGulpEsbuild } from 'gulp-esbuild'; import browserslistToEsbuild from 'browserslist-to-esbuild'; import sharp from 'gulp-sharp-responsive'; @@ -52,8 +51,11 @@ export function processStyles () { .pipe(sass().on('error', sass.logError)) .pipe(postcss([ postUrl({ assetsPath: '../' }), - autoprefixer(), - csso() + lightningcss({ + lightningcssOptions: { + minify: !isDevelopment, + }, + }) ])) .pipe(dest(`${PATH_TO_DIST}styles`, { sourcemaps: isDevelopment })) .pipe(server.stream()); diff --git a/package-lock.json b/package-lock.json index f79589bc0..b52f7735f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,6 @@ "devDependencies": { "@htmlacademy/editorconfig-cli": "3.0.0", "@linthtml/linthtml": "0.9.6", - "autoprefixer": "10.4.19", "browser-sync": "3.0.2", "browserslist-to-esbuild": "2.1.1", "eslint": "8.57.0", @@ -29,7 +28,7 @@ "linthtml-config-htmlacademy": "1.0.19", "npm-run-all": "4.1.5", "postcss": "8.4.38", - "postcss-csso": "6.0.1", + "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", "sass": "1.72.0", "stylelint": "16.3.1", @@ -1726,43 +1725,6 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, - "node_modules/autoprefixer": { - "version": "10.4.19", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", - "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001599", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", @@ -2334,9 +2296,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", + "version": "1.0.30001603", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001603.tgz", + "integrity": "sha512-iL2iSS0eDILMb9n5yKQoTBim9jMZ0Yrk8g0N9K7UzYyWnfIKzXBZD5ngpM37ZcL/cv0Mli8XtVMRYMQAfFpi5Q==", "dev": true, "funding": [ { @@ -3005,17 +2967,16 @@ } }, "node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, "dependencies": { - "mdn-data": "2.0.28", + "mdn-data": "2.0.30", "source-map-js": "^1.0.1" }, "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, "node_modules/css-what": { @@ -3043,18 +3004,36 @@ } }, "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "dev": true, "dependencies": { - "css-tree": "~2.2.0" + "css-tree": "^1.1.2" }, "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" } }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, "node_modules/cuint": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", @@ -4802,19 +4781,6 @@ "url": "https://ko-fi.com/tunnckoCore/commissions" } }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -7105,6 +7071,213 @@ "node": ">=10.13.0" } }, + "node_modules/lightningcss": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.24.1.tgz", + "integrity": "sha512-kUpHOLiH5GB0ERSv4pxqlL0RYKnOXtgGtVe7shDGfhS0AZ4D1ouKFYAcLcZhql8aMspDNzaUCumGHZ78tb2fTg==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.24.1", + "lightningcss-darwin-x64": "1.24.1", + "lightningcss-freebsd-x64": "1.24.1", + "lightningcss-linux-arm-gnueabihf": "1.24.1", + "lightningcss-linux-arm64-gnu": "1.24.1", + "lightningcss-linux-arm64-musl": "1.24.1", + "lightningcss-linux-x64-gnu": "1.24.1", + "lightningcss-linux-x64-musl": "1.24.1", + "lightningcss-win32-x64-msvc": "1.24.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.24.1.tgz", + "integrity": "sha512-1jQ12jBy+AE/73uGQWGSafK5GoWgmSiIQOGhSEXiFJSZxzV+OXIx+a9h2EYHxdJfX864M+2TAxWPWb0Vv+8y4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.24.1.tgz", + "integrity": "sha512-R4R1d7VVdq2mG4igMU+Di8GPf0b64ZLnYVkubYnGG0Qxq1KaXQtAzcLI43EkpnoWvB/kUg8JKCWH4S13NfiLcQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.24.1.tgz", + "integrity": "sha512-z6NberUUw5ALES6Ixn2shmjRRrM1cmEn1ZQPiM5IrZ6xHHL5a1lPin9pRv+w6eWfcrEo+qGG6R9XfJrpuY3e4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.24.1.tgz", + "integrity": "sha512-NLQLnBQW/0sSg74qLNI8F8QKQXkNg4/ukSTa+XhtkO7v3BnK19TS1MfCbDHt+TTdSgNEBv0tubRuapcKho2EWw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.24.1.tgz", + "integrity": "sha512-AQxWU8c9E9JAjAi4Qw9CvX2tDIPjgzCTrZCSXKELfs4mCwzxRkHh2RCxX8sFK19RyJoJAjA/Kw8+LMNRHS5qEg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.24.1.tgz", + "integrity": "sha512-JCgH/SrNrhqsguUA0uJUM1PvN5+dVuzPIlXcoWDHSv2OU/BWlj2dUYr3XNzEw748SmNZPfl2NjQrAdzaPOn1lA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.24.1.tgz", + "integrity": "sha512-TYdEsC63bHV0h47aNRGN3RiK7aIeco3/keN4NkoSQ5T8xk09KHuBdySltWAvKLgT8JvR+ayzq8ZHnL1wKWY0rw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.24.1.tgz", + "integrity": "sha512-HLfzVik3RToot6pQ2Rgc3JhfZkGi01hFetHt40HrUMoeKitLoqUUT5owM6yTZPTytTUW9ukLBJ1pc3XNMSvlLw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.24.1.tgz", + "integrity": "sha512-joEupPjYJ7PjZtDsS5lzALtlAudAbgIBMGJPNeFe5HfdmJXFd13ECmEM+5rXNxYVMRHua2w8132R6ab5Z6K9Ow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/lilconfig": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", @@ -7431,9 +7604,9 @@ } }, "node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true }, "node_modules/memorystream": { @@ -7902,15 +8075,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/now-and-later": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz", @@ -8757,22 +8921,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-csso": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-csso/-/postcss-csso-6.0.1.tgz", - "integrity": "sha512-ZV4yEziMrx6CEiqabGLrDva0pMD7Fbw7yP+LzJvaynM4OJgTssGN6dHiMsJMJdpmNaLJltXVLsrb/5sxbFa8sA==", - "dev": true, - "dependencies": { - "csso": "^5.0.5" - }, - "engines": { - "node": "^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, "node_modules/postcss-less": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-6.0.0.tgz", @@ -8785,6 +8933,23 @@ "postcss": "^8.3.5" } }, + "node_modules/postcss-lightningcss": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-lightningcss/-/postcss-lightningcss-1.0.0.tgz", + "integrity": "sha512-sLNRVh+DINZHf5b31KUZnv3w4sf/CEdmvYP5JWzyyB8++E6WdaE7yxsrhfXiUFqISNBXcSrKfAF/MtTZrYAlbg==", + "dev": true, + "dependencies": { + "browserslist": "^4.19.1", + "lightningcss": "^1.22.0" + }, + "engines": { + "node": "^16.0.0 || ^18.0.0 || >= 20", + "npm": ">=7.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, "node_modules/postcss-load-config": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.0.3.tgz", @@ -10992,19 +11157,6 @@ } } }, - "node_modules/stylelint/node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, "node_modules/stylelint/node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -11079,12 +11231,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/stylelint/node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true - }, "node_modules/stylelint/node_modules/meow": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", @@ -11309,18 +11455,6 @@ "node": ">=8.0.0" } }, - "node_modules/svgo/node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/svgo/node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", diff --git a/package.json b/package.json index 2675b04c1..54cdaf998 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,6 @@ "devDependencies": { "@htmlacademy/editorconfig-cli": "3.0.0", "@linthtml/linthtml": "0.9.6", - "autoprefixer": "10.4.19", "browser-sync": "3.0.2", "browserslist-to-esbuild": "2.1.1", "eslint": "8.57.0", @@ -51,7 +50,7 @@ "linthtml-config-htmlacademy": "1.0.19", "npm-run-all": "4.1.5", "postcss": "8.4.38", - "postcss-csso": "6.0.1", + "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", "sass": "1.72.0", "stylelint": "16.3.1", From cf0cc013740ac11972ac442e91b615d811e66f5e Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sun, 31 Mar 2024 14:46:44 +0300 Subject: [PATCH 091/116] Improve paths processing --- gulpfile.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index 08d319a50..9294aa19d 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -50,7 +50,20 @@ export function processStyles () { .pipe(plumber()) .pipe(sass().on('error', sass.logError)) .pipe(postcss([ - postUrl({ assetsPath: '../' }), + postUrl([ + { + filter: '**/*', + assetsPath: '../', + }, + { + filter: '**/icons/**/*.svg', + url: (asset) => asset.url.replace( + /icons\/(.+?)\.svg$/, + (match, p1) => `icons/stack.svg#${p1.replace(/\//g, '_')}` + ), + multi: true, + }, + ]), lightningcss({ lightningcssOptions: { minify: !isDevelopment, From 5b5963738b74c6286ed97a8710c7e1909f5bf807 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Sun, 31 Mar 2024 15:42:12 +0300 Subject: [PATCH 092/116] Add examples of connecting media resources --- source/fonts/README.md | 26 +++++++++++++++++++++ source/icons/README.md | 30 +++++++++++++++++++++++++ source/images/README.md | 50 +++++++++++++++++++++++++++++++++-------- 3 files changed, 97 insertions(+), 9 deletions(-) diff --git a/source/fonts/README.md b/source/fonts/README.md index 813edcb7e..fb1d069ee 100644 --- a/source/fonts/README.md +++ b/source/fonts/README.md @@ -19,3 +19,29 @@ ├── tt-norms-regular.woff2 └── tt-norms-regular.woff ``` + +## Пример подключения шрифтов + +В стилевом файле подключения шрифтов пути должны быть валидными для исходников (как подсказывает редактор): + +```scss +@font-face { + font-family: "Raleway"; + font-weight: 400; + font-style: normal; + font-display: swap; + src: url("../../fonts/raleway-400.woff2") format("woff2"), +} +``` + +Сборка сама исправит эти пути на валидные для билда: + +```css +@font-face { + font-family: "Raleway"; + font-weight: 400; + font-style: normal; + font-display: swap; + src: url("../fonts/raleway-400.woff2") format("woff2"), +} +``` diff --git a/source/icons/README.md b/source/icons/README.md index 2ca443865..15b112633 100644 --- a/source/icons/README.md +++ b/source/icons/README.md @@ -15,3 +15,33 @@ └── icons/ # папка для спрайта └── stack.svg # спрайт ``` + +## Пример подключения иконки + +В файле БЭМ-блока путь должен быть валидным для исходников (как подсказывает редактор): + +```scss +.search { + &::before { + content: ""; + width: 44px; + height: 44px; + display: block; + background: #444444; + mask-image: url("../../icons/search.svg"); + } +} +``` + +Сборка сама исправит этот путь на валидный для билда путь до фрагмента стек-спрайта: + +```css +.search::before { + content: ""; + width: 44px; + height: 44px; + display: block; + background: #444444; + mask-image: url("../icons/stack.svg#search"); +} +``` diff --git a/source/images/README.md b/source/images/README.md index e31d70777..62add79d4 100644 --- a/source/images/README.md +++ b/source/images/README.md @@ -3,21 +3,53 @@ ```shell └── source/ └── images/ - ├── bg.jpg - ├── bg.webp - ├── hero.png - ├── hero.webp + ├── hero@1x.jpg + ├── hero@1x.webp + ├── hero@2x.jpg + ├── hero@2x.webp └── logo.svg ``` -Отсюда файлы изображений при сборке без изменений попадают в `build/images/`: +Отсюда файлы изображений при продакшен-сборке без изменений попадают в `build/images/`: ```shell └── build/ └── images/ - ├── bg.jpg - ├── bg.webp - ├── hero.png - ├── hero.webp + ├── hero@1x.jpg + ├── hero@1x.webp + ├── hero@2x.jpg + ├── hero@2x.webp └── logo.svg ``` + +При дев-сборке изображения не копируются в `build/images/`, сервер их забирает из `source/images/` + +## Пример подключения изображения + +В стилевом файле БЭМ-блока пути должны быть валидными для исходников (как подсказывает редактор): + +```scss +.hero { + background-image: + image-set( + url("../../images/hero@1x.webp") 1x type("image/webp"), + url("../../images/hero@2x.webp") 2x type("image/webp"), + url("../../images/hero@1x.jpg") 1x type("image/jpeg"), + url("../../images/hero@2x.jpg") 2x type("image/jpeg") + ); +} +``` + +Сборка сама исправит эти пути на валидные для билда: + +```css +.hero { + background-image: + image-set( + url("../images/hero@1x.webp") 1x type("image/webp"), + url("../images/hero@2x.webp") 2x type("image/webp"), + url("../images/hero@1x.jpg") 1x type("image/jpeg"), + url("../images/hero@2x.jpg") 2x type("image/jpeg") + ); +} +``` From 6a994c1fdee3ab45b7dd84c469503fc3bb3b5a8e Mon Sep 17 00:00:00 2001 From: firefoxic Date: Tue, 2 Apr 2024 14:18:06 +0300 Subject: [PATCH 093/116] Remove nunjucks --- gulpfile.js | 4 +- package-lock.json | 122 ---------------------------------------------- package.json | 6 +-- 3 files changed, 3 insertions(+), 129 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 9294aa19d..0328f0f61 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -2,7 +2,6 @@ import { readFileSync, rmSync } from 'node:fs'; import { src, dest, watch, series, parallel } from 'gulp'; import plumber from 'gulp-plumber'; -import { nunjucksCompile } from 'gulp-nunjucks'; import htmlmin from 'gulp-htmlmin'; import * as dartSass from 'sass'; import gulpSass from 'gulp-sass'; @@ -34,14 +33,13 @@ let isDevelopment = true; export function processMarkup () { return src(`${PATH_TO_SOURCE}**/*.html`) - .pipe(nunjucksCompile()) .pipe(htmlmin({ collapseWhitespace: !isDevelopment })) .pipe(dest(PATH_TO_DIST)) .pipe(server.stream()); } export function lintBem () { - return src(`${PATH_TO_DIST}**/*.html`) + return src(`${PATH_TO_SOURCE}**/*.html`) .pipe(bemlinter()); } diff --git a/package-lock.json b/package-lock.json index b52f7735f..6a6133ab1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,6 @@ "gulp-esbuild": "0.12.0", "gulp-html-bemlinter": "3.0.1", "gulp-htmlmin": "5.0.1", - "gulp-nunjucks": "6.0.0", "gulp-plumber": "1.2.1", "gulp-postcss": "10.0.0", "gulp-sass": "5.1.0", @@ -1111,12 +1110,6 @@ "@types/node": "*" } }, - "node_modules/@types/expect": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", - "integrity": "sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==", - "dev": true - }, "node_modules/@types/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", @@ -1144,28 +1137,12 @@ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "dev": true }, - "node_modules/@types/vinyl": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.11.tgz", - "integrity": "sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==", - "dev": true, - "dependencies": { - "@types/expect": "^1.20.4", - "@types/node": "*" - } - }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, - "node_modules/a-sync-waterfall": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", - "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", - "dev": true - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -3445,18 +3422,6 @@ "node": ">= 4.0.0" } }, - "node_modules/easy-transform-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/easy-transform-stream/-/easy-transform-stream-1.0.1.tgz", - "integrity": "sha512-ktkaa6XR7COAR3oj02CF3IOgz2m1hCaY3SfzvKT4Svt2MhHw9XCt+ncJNWfe2TGz31iqzNGZ8spdKQflj+Rlog==", - "dev": true, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eazy-logger": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", @@ -5431,59 +5396,6 @@ "xtend": "~4.0.1" } }, - "node_modules/gulp-nunjucks": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gulp-nunjucks/-/gulp-nunjucks-6.0.0.tgz", - "integrity": "sha512-AGeHXnRsXNre6yD3SM8dhOXhrfxsCEBb3SZ7JKXK8bTrIw1jG2BTBKCAr4e4K1ReFTtsHGIZQX93tVoceZ4UrQ==", - "dev": true, - "dependencies": { - "gulp-plugin-extras": "^0.2.2", - "nunjucks": "^3.2.4" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - }, - "peerDependencies": { - "gulp": ">=4" - }, - "peerDependenciesMeta": { - "gulp": { - "optional": true - } - } - }, - "node_modules/gulp-plugin-extras": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/gulp-plugin-extras/-/gulp-plugin-extras-0.2.2.tgz", - "integrity": "sha512-0gssXzTNrrOocYBWN4qOZqd03cz3bxhjxVUPZV9iJdBR0ZZbwMQO/OT8hZChYoc9GjKaA5meaqDr6CjkmKA7BA==", - "dev": true, - "dependencies": { - "@types/vinyl": "^2.0.9", - "chalk": "^5.3.0", - "easy-transform-stream": "^1.0.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gulp-plugin-extras/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/gulp-plumber": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/gulp-plumber/-/gulp-plumber-1.2.1.tgz", @@ -8283,40 +8195,6 @@ "node": ">=0.10.0" } }, - "node_modules/nunjucks": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", - "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", - "dev": true, - "dependencies": { - "a-sync-waterfall": "^1.0.0", - "asap": "^2.0.3", - "commander": "^5.1.0" - }, - "bin": { - "nunjucks-precompile": "bin/precompile" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "chokidar": "^3.3.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, - "node_modules/nunjucks/node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", diff --git a/package.json b/package.json index 54cdaf998..577385910 100644 --- a/package.json +++ b/package.json @@ -17,11 +17,10 @@ "start": "gulp runDev", "build": "gulp buildProd", "preview": "npm run build && browser-sync start -s build/ --cors --no-notify --no-ui", - "prelint": "gulp processMarkup --silent", "lint": "npm-run-all -pc lint:**", "lint:spaces": "ec --exclude vendor/*", - "lint:markup": "cd build && html-validator --quiet", - "lint:html": "linthtml build/**/*.html --config .linthtmlrc", + "lint:markup": "cd source && html-validator --quiet", + "lint:html": "linthtml source/**/*.html --config .linthtmlrc", "lint:bem": "gulp lintBem --silent", "lint:styles": "stylelint \"source/styles/**/*.scss\"", "lint:scripts": "eslint . --ignore-path .gitignore --ignore-pattern vendor/", @@ -40,7 +39,6 @@ "gulp-esbuild": "0.12.0", "gulp-html-bemlinter": "3.0.1", "gulp-htmlmin": "5.0.1", - "gulp-nunjucks": "6.0.0", "gulp-plumber": "1.2.1", "gulp-postcss": "10.0.0", "gulp-sass": "5.1.0", From ae45e99e4e980ce58e0b5a2475a1377340549d30 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Tue, 2 Apr 2024 16:46:19 +0300 Subject: [PATCH 094/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 1041 ++------------------------------------------- package.json | 4 +- 2 files changed, 47 insertions(+), 998 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6a6133ab1..6b4f9ce89 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,14 +24,14 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.19", + "linthtml-config-htmlacademy": "1.0.20", "npm-run-all": "4.1.5", "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", "sass": "1.72.0", "stylelint": "16.3.1", - "stylelint-config-htmlacademy": "4.1.0", + "stylelint-config-htmlacademy": "4.2.0", "w3c-html-validator": "1.7.0" }, "engines": { @@ -220,9 +220,9 @@ } }, "node_modules/@csstools/selector-specificity": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.2.tgz", - "integrity": "sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.3.tgz", + "integrity": "sha512-KEPNw4+WW5AVEIyzC80rTbWEUatTW2lXpN8+8ILC8PiPeWPjwUzrPZDIOZ2wwqDmeqOYTdSGyL3+vE5GC3FB3Q==", "dev": true, "funding": [ { @@ -807,9 +807,9 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", "dev": true }, "node_modules/@isaacs/cliui": { @@ -1065,9 +1065,9 @@ "dev": true }, "node_modules/@stylistic/stylelint-plugin": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-2.1.0.tgz", - "integrity": "sha512-mUZEW9uImHSbXeyzbFmHb8WPBv56UTaEnWL/3dGdAiJ54C+8GTfDwDVdI6gbqT9wV7zynkPu7tCXc5746H9mZQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-2.1.1.tgz", + "integrity": "sha512-xqHTmQZN7EbnFDW7jw0rAsdFNO4IRqvXhrh3qhUlIwF/x09Zm7kgs/ADktHxsTJYcw346PpGihsB0t4pZhpeHw==", "dev": true, "dependencies": { "@csstools/css-parser-algorithms": "^2.5.0", @@ -1592,48 +1592,6 @@ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true }, - "node_modules/asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/assert": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", - "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.4", - "util": "^0.10.4" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, "node_modules/assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", @@ -1717,16 +1675,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "dev": true, - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, "node_modules/bach": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/bach/-/bach-2.0.1.tgz", @@ -1812,12 +1760,6 @@ "readable-stream": "^3.4.0" } }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -1846,12 +1788,6 @@ "node": ">=8" } }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, "node_modules/browser-sync": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-3.0.2.tgz", @@ -1955,125 +1891,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", - "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.5", - "hash-base": "~3.0", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.7", - "readable-stream": "^2.3.8", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/browserify-sign/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream/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/browserify-sign/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/browserify-sign/node_modules/string_decoder/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/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, "node_modules/browserslist": { "version": "4.23.0", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", @@ -2166,12 +1983,6 @@ "ieee754": "^1.1.13" } }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", @@ -2184,12 +1995,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", - "dev": true - }, "node_modules/bulk-require": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/bulk-require/-/bulk-require-1.0.1.tgz", @@ -2273,9 +2078,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001603", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001603.tgz", - "integrity": "sha512-iL2iSS0eDILMb9n5yKQoTBim9jMZ0Yrk8g0N9K7UzYyWnfIKzXBZD5ngpM37ZcL/cv0Mli8XtVMRYMQAfFpi5Q==", + "version": "1.0.30001605", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001605.tgz", + "integrity": "sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==", "dev": true, "funding": [ { @@ -2359,16 +2164,6 @@ "node": ">=8" } }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, "node_modules/clean-css": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", @@ -2644,12 +2439,6 @@ "node": ">=18" } }, - "node_modules/compare-module-exports": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/compare-module-exports/-/compare-module-exports-2.1.0.tgz", - "integrity": "sha512-3Lc0sTIuX1jmY2K2RrXRJOND6KsRTX2D4v3+eu1PDptsuJZVK4LZc852eZa9I+avj0NrUKlTNgqvccNOH6mbGg==", - "dev": true - }, "node_modules/component-emitter": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", @@ -2689,24 +2478,12 @@ "node": ">=0.8" } }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", - "dev": true - }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -2741,14 +2518,6 @@ "node": ">= 10.13.0" } }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true - }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -2784,49 +2553,6 @@ "node": ">=10" } }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -2841,28 +2567,6 @@ "node": ">= 8" } }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, "node_modules/css-functions-list": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz", @@ -3217,16 +2921,6 @@ "node": ">= 0.8" } }, - "node_modules/des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, "node_modules/destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", @@ -3276,23 +2970,6 @@ "wrappy": "1" } }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -3340,16 +3017,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", @@ -3523,30 +3190,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.722", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.722.tgz", - "integrity": "sha512-5nLE0TWFFpZ80Crhtp4pIp8LXCztjYX41yUcV6b+bKR2PqzjskTMOOlBi1VjBHlvHwS+4gar7kNKOrsbsewEZQ==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz", - "integrity": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "1.4.723", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.723.tgz", + "integrity": "sha512-rxFVtrMGMFROr4qqU6n95rUi9IlfIm+lIAt+hOToy/9r6CDv0XiEcQdC3VP71y1pE5CFTzKV0RvxOGYCPWWHPw==", "dev": true }, "node_modules/emoji-regex": { @@ -4345,25 +3991,6 @@ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "node_modules/expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -5864,29 +5491,6 @@ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true }, - "node_modules/hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -5917,17 +5521,6 @@ "node": ">=8" } }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, "node_modules/homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -6049,12 +5642,6 @@ "node": ">=8.0.0" } }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", - "dev": true - }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -7215,91 +6802,40 @@ "dev": true }, "node_modules/linthtml-config-htmlacademy": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.19.tgz", - "integrity": "sha512-Govj68YYgS55Gww+/VOKVufhWqTqTk1DGivaH2Jjfh/79FFvual1VWya8wwStsnRqEqX4Dbvi2RdbaCieUAfHw==", + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.20.tgz", + "integrity": "sha512-etgDuq7CYZTWV0JhhmjkjzZ1WFyMkYaLS6LvvtLrMJGqKUuAOE3R96LbFg5iOJDAuwymJh9v3ZARskgIqEpaVg==", "dev": true, "dependencies": { - "@linthtml/linthtml": "0.9.5", + "@linthtml/linthtml": "0.9.6", "linthtml-rules-htmlacademy": "1.0.15" } }, - "node_modules/linthtml-config-htmlacademy/node_modules/@linthtml/linthtml": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@linthtml/linthtml/-/linthtml-0.9.5.tgz", - "integrity": "sha512-8McouW2gCt3bg3GnK1k98KL5LiDVtY+wEyDjgfC6MdqbGrmVId0B6AKC1eR2wQ5fRvadFxNx5We/QW3K7Vim2w==", + "node_modules/linthtml-rules-htmlacademy": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.15.tgz", + "integrity": "sha512-B/XVIyZ6yiNn/2Xl0kAf38XVREIZArJRx3811l7t21ZwV9EZjEER9yPvU+jWwt1HPqa39UaA3+1c5+R3h85YXA==", + "dev": true + }, + "node_modules/lintspaces": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/lintspaces/-/lintspaces-0.11.0.tgz", + "integrity": "sha512-Zi4UWrpPYcIECWVBRDA4UQA4wiFkEQoD0DYroBIO0jtDAAatdm3vs7MOcps0nSpukf3DiyfHeFhJNL5sLegaLA==", "dev": true, "dependencies": { - "@linthtml/cli": "^0.9.5", - "@linthtml/dom-utils": "^0.9.5", - "@linthtml/html-parser": "^0.9.5", - "bulk-require": "1.0.1", - "cosmiconfig": "7.0.0", - "global-modules": "^2.0.0", - "globby": "^11.0.2", - "ignore": "^5.1.4", - "lodash.pull": "4.1.0", - "resolve-from": "^5.0.0", - "rewiremock": "^3.14.3" + "deep-extend": "^0.6.0", + "editorconfig": "^2.0.0", + "minimist": "^1.2.6", + "rc": "^1.2.8" }, - "bin": { - "linthtml": "bin/linthtml.js" + "engines": { + "node": ">=16" } }, - "node_modules/linthtml-config-htmlacademy/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/linthtml-config-htmlacademy/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/linthtml-rules-htmlacademy": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.15.tgz", - "integrity": "sha512-B/XVIyZ6yiNn/2Xl0kAf38XVREIZArJRx3811l7t21ZwV9EZjEER9yPvU+jWwt1HPqa39UaA3+1c5+R3h85YXA==", - "dev": true - }, - "node_modules/lintspaces": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/lintspaces/-/lintspaces-0.11.0.tgz", - "integrity": "sha512-Zi4UWrpPYcIECWVBRDA4UQA4wiFkEQoD0DYroBIO0jtDAAatdm3vs7MOcps0nSpukf3DiyfHeFhJNL5sLegaLA==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "editorconfig": "^2.0.0", - "minimist": "^1.2.6", - "rc": "^1.2.8" - }, - "engines": { - "node": ">=16" - } - }, - "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==", + "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", @@ -7345,12 +6881,6 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "node_modules/lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", - "dev": true - }, "node_modules/lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", @@ -7381,31 +6911,6 @@ "integrity": "sha512-EM7CVTzXfkTyusQdN7mgGPh2ZfkKfQ5lA9U+X7NNDeEgKEaO65dB5Kh8+Ppap0X1wQOndPjKP/VVTis7hFvkzg==", "dev": true }, - "node_modules/lodash.some": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==", - "dev": true - }, - "node_modules/lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "node_modules/lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, - "dependencies": { - "lodash._reinterpolate": "^3.0.0" - } - }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", @@ -7504,17 +7009,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", @@ -7599,25 +7093,6 @@ "node": ">=8.6" } }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/mime": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", @@ -7681,18 +7156,6 @@ "node": ">=4" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -7858,90 +7321,6 @@ "he": "1.2.0" } }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/node-libs-browser/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "node_modules/node-libs-browser/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/node-libs-browser/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/node-libs-browser/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", @@ -8421,12 +7800,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", - "dev": true - }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -8475,12 +7848,6 @@ "node": ">=6" } }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, "node_modules/param-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", @@ -8502,23 +7869,6 @@ "node": ">=6" } }, - "node_modules/parse-asn1": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", - "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", - "dev": true, - "dependencies": { - "asn1.js": "^4.10.1", - "browserify-aes": "^1.2.0", - "evp_bytestokey": "^1.0.3", - "hash-base": "~3.0", - "pbkdf2": "^3.1.2", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", @@ -8578,12 +7928,6 @@ "node": ">= 0.8" } }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -8672,22 +8016,6 @@ "node": ">=8" } }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -9018,15 +8346,6 @@ "node": ">= 0.8.0" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -9044,26 +8363,6 @@ "react-is": "^16.13.1" } }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -9098,15 +8397,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/queue": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", @@ -9151,25 +8441,6 @@ "node": ">=8" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -9487,12 +8758,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, "node_modules/regexp-tree": { "version": "0.1.27", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", @@ -9748,22 +9013,6 @@ "node": ">=0.10.0" } }, - "node_modules/rewiremock": { - "version": "3.14.5", - "resolved": "https://registry.npmjs.org/rewiremock/-/rewiremock-3.14.5.tgz", - "integrity": "sha512-MdPutvaUd+kKVz/lcEz6N6337s4PxRUR5vhphIp2/TJRgfXIckomIkCsIAbwB53MjiSLwi7KBMdQ9lPWE5WpYA==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "compare-module-exports": "^2.1.0", - "lodash.some": "^4.6.0", - "lodash.template": "^4.4.0", - "node-libs-browser": "^2.1.0", - "path-parse": "^1.0.5", - "wipe-node-cache": "^2.1.2", - "wipe-webpack-cache": "^2.1.0" - } - }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -9779,16 +9028,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -10150,31 +9389,12 @@ "node": ">= 0.4" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true - }, "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/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, "node_modules/sharp": { "version": "0.28.3", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.28.3.tgz", @@ -10571,52 +9791,6 @@ "node": ">= 0.6" } }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-browserify/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/stream-browserify/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/stream-browserify/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/stream-composer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-composer/-/stream-composer-1.0.2.tgz", @@ -10632,55 +9806,6 @@ "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", "dev": true }, - "node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/stream-http/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/stream-http/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/stream-http/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/stream-http/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/stream-throttle": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", @@ -10969,12 +10094,12 @@ } }, "node_modules/stylelint-config-htmlacademy": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.1.0.tgz", - "integrity": "sha512-yDmKz9IpdnQfM205/cGmpz0OsvZEc4yk7dQbwRyrsSPdH2TxY3gOFJBLefo4Ct6Zcrj/lTbzx7nupHlzZfDoMg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.2.0.tgz", + "integrity": "sha512-u7IUQsJ/BoHODz9FhkStECeXb2wuCFzN8dFTZnTqlMX0DS6BeCqi+rRhNfyCbKnVs3r/ISaVpQjlPYeI3yAs6Q==", "dev": true, "dependencies": { - "@stylistic/stylelint-plugin": "2.1.0", + "@stylistic/stylelint-plugin": "2.1.1", "postcss-less": "6.0.0", "postcss-scss": "4.0.9" }, @@ -11459,18 +10584,6 @@ "node": ">=0.10.0" } }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -11483,12 +10596,6 @@ "node": ">=0.6.0" } }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", - "dev": true - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -11537,12 +10644,6 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", - "dev": true - }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -11844,43 +10945,12 @@ "punycode": "^2.1.0" } }, - "node_modules/url": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", - "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", - "dev": true, - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.11.2" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true - }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -12063,12 +11133,6 @@ "node": ">=0.10.0" } }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, "node_modules/w3c-html-validator": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/w3c-html-validator/-/w3c-html-validator-1.7.0.tgz", @@ -12269,21 +11333,6 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "node_modules/wipe-node-cache": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/wipe-node-cache/-/wipe-node-cache-2.1.2.tgz", - "integrity": "sha512-m7NXa8qSxBGMtdQilOu53ctMaIBXy93FOP04EC1Uf4bpsE+r+adfLKwIMIvGbABsznaSNxK/ErD4xXDyY5og9w==", - "dev": true - }, - "node_modules/wipe-webpack-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wipe-webpack-cache/-/wipe-webpack-cache-2.1.0.tgz", - "integrity": "sha512-OXzQMGpA7MnQQ8AG+uMl5mWR2ezy6fw1+DMHY+wzYP1qkF1jrek87psLBmhZEj+er4efO/GD4R8jXWFierobaA==", - "dev": true, - "dependencies": { - "wipe-node-cache": "^2.1.0" - } - }, "node_modules/wordwrapjs": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz", diff --git a/package.json b/package.json index 577385910..cd4e208ec 100644 --- a/package.json +++ b/package.json @@ -45,14 +45,14 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "3.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.19", + "linthtml-config-htmlacademy": "1.0.20", "npm-run-all": "4.1.5", "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", "sass": "1.72.0", "stylelint": "16.3.1", - "stylelint-config-htmlacademy": "4.1.0", + "stylelint-config-htmlacademy": "4.2.0", "w3c-html-validator": "1.7.0" } } From 98f125f9df92cbabf074c0168e4442ef1391fd6c Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Tue, 2 Apr 2024 20:34:13 +0300 Subject: [PATCH 095/116] =?UTF-8?q?=D0=9F=D0=BE=D0=BD=D0=B8=D0=B6=D0=B0?= =?UTF-8?q?=D0=B5=D1=82=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8E=20gulp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gulpfile.js | 3 +- package-lock.json | 3848 +++++++++++++++++++++++++++++++++++++++------ package.json | 2 +- 3 files changed, 3367 insertions(+), 486 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 0328f0f61..3804380e2 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,6 +1,6 @@ import { readFileSync, rmSync } from 'node:fs'; -import { src, dest, watch, series, parallel } from 'gulp'; +import gulp from 'gulp'; import plumber from 'gulp-plumber'; import htmlmin from 'gulp-htmlmin'; import * as dartSass from 'sass'; @@ -16,6 +16,7 @@ import { stacksvg } from 'gulp-stacksvg'; import server from 'browser-sync'; import bemlinter from 'gulp-html-bemlinter'; +const { src, dest, watch, series, parallel } = gulp; const sass = gulpSass(dartSass); const PATH_TO_SOURCE = './source/'; const PATH_TO_DIST = './build/'; diff --git a/package-lock.json b/package-lock.json index 6b4f9ce89..13f0d86bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "browserslist-to-esbuild": "2.1.1", "eslint": "8.57.0", "eslint-config-htmlacademy": "10.0.1", - "gulp": "5.0.0", + "gulp": "4.0.2", "gulp-esbuild": "0.12.0", "gulp-html-bemlinter": "3.0.1", "gulp-htmlmin": "5.0.1", @@ -716,27 +716,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@gulpjs/messages": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@gulpjs/messages/-/messages-1.1.0.tgz", - "integrity": "sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@gulpjs/to-absolute-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz", - "integrity": "sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==", - "dev": true, - "dependencies": { - "is-negated-glob": "^1.0.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/@htmlacademy/editorconfig-cli": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@htmlacademy/editorconfig-cli/-/editorconfig-cli-3.0.0.tgz", @@ -1314,12 +1293,30 @@ "node": ">= 8" } }, + "node_modules/append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", + "dev": true, + "dependencies": { + "buffer-equal": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, "node_modules/are-we-there-yet": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", @@ -1384,6 +1381,18 @@ "node": ">=0.10.0" } }, + "node_modules/arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", + "dev": true, + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", @@ -1393,6 +1402,18 @@ "node": ">=0.10.0" } }, + "node_modules/arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", + "dev": true, + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", @@ -1456,6 +1477,49 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", + "dev": true, + "dependencies": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "dependencies": { + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array-slice": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", @@ -1465,6 +1529,29 @@ "node": ">=0.10.0" } }, + "node_modules/array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "dependencies": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -1474,6 +1561,15 @@ "node": ">=8" } }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array.prototype.findlast": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", @@ -1620,19 +1716,32 @@ } }, "node_modules/async-done": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-2.0.0.tgz", - "integrity": "sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", "dev": true, "dependencies": { - "end-of-stream": "^1.4.4", - "once": "^1.4.0", - "stream-exhaust": "^1.0.2" + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" } }, + "node_modules/async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, "node_modules/async-each-series": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", @@ -1643,15 +1752,15 @@ } }, "node_modules/async-settle": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-2.0.0.tgz", - "integrity": "sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", "dev": true, "dependencies": { - "async-done": "^2.0.0" + "async-done": "^1.2.2" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" } }, "node_modules/asynckit": { @@ -1660,6 +1769,18 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", @@ -1676,17 +1797,23 @@ } }, "node_modules/bach": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bach/-/bach-2.0.1.tgz", - "integrity": "sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", "dev": true, "dependencies": { - "async-done": "^2.0.0", - "async-settle": "^2.0.0", - "now-and-later": "^3.0.0" + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.10" } }, "node_modules/balanced-match": { @@ -1702,6 +1829,36 @@ "dev": true, "optional": true }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -1749,6 +1906,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -1983,6 +2150,24 @@ "ieee754": "^1.1.13" } }, + "node_modules/buffer-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "dev": true, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", @@ -2013,6 +2198,26 @@ "node": ">= 0.8" } }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -2164,6 +2369,46 @@ "node": ">=8" } }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/clean-css": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", @@ -2350,6 +2595,33 @@ "node": ">=0.10.0" } }, + "node_modules/collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", + "dev": true, + "dependencies": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/color": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", @@ -2454,6 +2726,57 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/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/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/connect": { "version": "3.6.6", "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.6.tgz", @@ -2485,9 +2808,9 @@ "dev": true }, "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, "node_modules/cookie": { @@ -2505,17 +2828,23 @@ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", "dev": true }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/copy-props": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-4.0.0.tgz", - "integrity": "sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", "dev": true, "dependencies": { - "each-props": "^3.0.0", + "each-props": "^1.3.2", "is-plain-object": "^5.0.0" - }, - "engines": { - "node": ">= 10.13.0" } }, "node_modules/core-util-is": { @@ -2721,14 +3050,27 @@ "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==", "dev": true }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", "dev": true, "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, "engines": { @@ -2815,6 +3157,15 @@ "node": ">=0.10.0" } }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, "node_modules/decompress-response": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", @@ -2842,6 +3193,36 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "dependencies": { + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-compare/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -2897,6 +3278,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -3058,17 +3452,74 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/duplexify/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/duplexify/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexify/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/duplexify/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/each-props": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-3.0.0.tgz", - "integrity": "sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", "dev": true, "dependencies": { - "is-plain-object": "^5.0.0", + "is-plain-object": "^2.0.1", "object.defaults": "^1.1.0" + } + }, + "node_modules/each-props/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" }, "engines": { - "node": ">= 10.13.0" + "node": ">=0.10.0" } }, "node_modules/eastasianwidth": { @@ -3496,6 +3947,58 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "dev": true, + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, "node_modules/esbuild": { "version": "0.19.12", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", @@ -3904,6 +4407,21 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -3985,12 +4503,86 @@ "node": ">= 0.6" } }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, "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/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -4012,6 +4604,15 @@ "node": ">=0.10.0" } }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "dependencies": { + "type": "^2.7.2" + } + }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -4045,6 +4646,58 @@ "node": ">=4" } }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/fancy-log": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", @@ -4160,6 +4813,13 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -4207,71 +4867,259 @@ } }, "node_modules/findup-sync": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", - "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", "dev": true, "dependencies": { "detect-file": "^1.0.0", - "is-glob": "^4.0.3", - "micromatch": "^4.0.4", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", "resolve-dir": "^1.0.1" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" } }, - "node_modules/fined": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz", - "integrity": "sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==", + "node_modules/findup-sync/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^5.0.0", - "object.defaults": "^1.1.0", - "object.pick": "^1.3.0", - "parse-filepath": "^1.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "engines": { - "node": ">= 10.13.0" + "node": ">=0.10.0" } }, - "node_modules/flagged-respawn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz", - "integrity": "sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==", + "node_modules/findup-sync/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, "engines": { - "node": ">= 10.13.0" + "node": ">=0.10.0" } }, - "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==", + "node_modules/findup-sync/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=0.10.0" } }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true + "node_modules/findup-sync/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "node_modules/findup-sync/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, - "funding": [ + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fined/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "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.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/flush-write-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/flush-write-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/flush-write-stream/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/flush-write-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "dev": true, + "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" @@ -4373,6 +5221,18 @@ "url": "https://ko-fi.com/tunnckoCore/commissions" } }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -4400,16 +5260,62 @@ } }, "node_modules/fs-mkdirp-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz", - "integrity": "sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", "dev": true, "dependencies": { - "graceful-fs": "^4.2.8", - "streamx": "^2.12.0" + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.10" + } + }, + "node_modules/fs-mkdirp-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/fs-mkdirp-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/fs-mkdirp-stream/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/fs-mkdirp-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/fs-mkdirp-stream/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, "node_modules/fs.realpath": { @@ -4576,6 +5482,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -4615,63 +5530,402 @@ } }, "node_modules/glob-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-8.0.1.tgz", - "integrity": "sha512-gkw+JQajGXmzky/Lil3/tQ+p96YKkqJwxiakKgfDGpNBNFHxklnK2nPmYukEW6n8/HmcAfeSvT6xCdRafidwZQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", "dev": true, "dependencies": { - "@gulpjs/to-absolute-glob": "^4.0.0", - "anymatch": "^3.1.3", - "fastq": "^1.13.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", "is-negated-glob": "^1.0.0", - "normalize-path": "^3.0.0", - "now-and-later": "^3.0.0", - "streamx": "^2.12.5" + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.10" } }, "node_modules/glob-stream/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==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", "dev": true, "dependencies": { - "is-glob": "^4.0.3" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-stream/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=0.10.0" + } + }, + "node_modules/glob-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/glob-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/glob-stream/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/glob-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" } }, "node_modules/glob-watcher": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-6.0.0.tgz", - "integrity": "sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", "dev": true, "dependencies": { - "async-done": "^2.0.0", - "chokidar": "^3.5.3" + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" } }, - "node_modules/global-modules": { + "node_modules/glob-watcher/node_modules/anymatch": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, - "node_modules/global-prefix": { + "node_modules/glob-watcher/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/glob-watcher/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/glob-watcher/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-watcher/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/glob-watcher/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/glob-watcher/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/glob-watcher/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/glob-watcher/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/glob-watcher/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", @@ -4682,229 +5936,438 @@ "which": "^1.3.1" }, "engines": { - "node": ">=6" + "node": ">=6" + } + }, + "node_modules/global-prefix/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/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "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/globby": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", + "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", + "dev": true, + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true + }, + "node_modules/glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "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/gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "dependencies": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "dependencies": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/gulp-cli/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/gulp-cli/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/gulp-cli/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/gulp-cli/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": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/gulp-cli/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", "dev": true, "dependencies": { - "type-fest": "^0.20.2" + "error-ex": "^1.2.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "node_modules/gulp-cli/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", "dev": true, "dependencies": { - "define-properties": "^1.1.3" + "pinkie-promise": "^2.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.10.0" } }, - "node_modules/globby": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.1.tgz", - "integrity": "sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==", + "node_modules/gulp-cli/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", "dev": true, "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/globby/node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "node_modules/gulp-cli/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", - "dev": true - }, - "node_modules/glogg": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-2.2.0.tgz", - "integrity": "sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==", + "node_modules/gulp-cli/node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", "dev": true, "dependencies": { - "sparkles": "^2.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">=0.10.0" } }, - "node_modules/gopd": { + "node_modules/gulp-cli/node_modules/read-pkg-up": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0" } }, - "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/gulp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-5.0.0.tgz", - "integrity": "sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg==", + "node_modules/gulp-cli/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, - "dependencies": { - "glob-watcher": "^6.0.0", - "gulp-cli": "^3.0.0", - "undertaker": "^2.0.0", - "vinyl-fs": "^4.0.0" - }, "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">=10.13.0" + "semver": "bin/semver" } }, - "node_modules/gulp-cli": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-3.0.0.tgz", - "integrity": "sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA==", - "dev": true, - "dependencies": { - "@gulpjs/messages": "^1.1.0", - "chalk": "^4.1.2", - "copy-props": "^4.0.0", - "gulplog": "^2.2.0", - "interpret": "^3.1.1", - "liftoff": "^5.0.0", - "mute-stdout": "^2.0.0", - "replace-homedir": "^2.0.0", - "semver-greatest-satisfied-range": "^2.0.0", - "string-width": "^4.2.3", - "v8flags": "^4.0.0", - "yargs": "^16.2.0" - }, - "bin": { - "gulp": "bin/gulp.js" + "node_modules/gulp-cli/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" }, "engines": { - "node": ">=10.13.0" + "node": ">=0.10.0" } }, - "node_modules/gulp-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/gulp-cli/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ansi-regex": "^2.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/gulp-cli/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/gulp-cli/node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/gulp-cli/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==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=0.10.0" } }, + "node_modules/gulp-cli/node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, "node_modules/gulp-cli/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", "dev": true, "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.1" + } + }, + "node_modules/gulp-cli/node_modules/yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" } }, "node_modules/gulp-esbuild": { @@ -5375,15 +6838,15 @@ } }, "node_modules/gulplog": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-2.2.0.tgz", - "integrity": "sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", "dev": true, "dependencies": { - "glogg": "^2.2.0" + "glogg": "^1.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" } }, "node_modules/hard-rejection": { @@ -5491,6 +6954,69 @@ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -5813,12 +7339,21 @@ } }, "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, "engines": { - "node": ">=10.13.0" + "node": ">= 0.10" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/is-absolute": { @@ -5834,6 +7369,18 @@ "node": ">=0.10.0" } }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/is-array-buffer": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", @@ -5911,6 +7458,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, "node_modules/is-builtin-module": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", @@ -5950,6 +7503,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/is-data-view": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", @@ -5980,6 +7545,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", @@ -6287,6 +7865,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, "node_modules/is-valid-glob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", @@ -6491,6 +8075,12 @@ "node": ">=4.0" } }, + "node_modules/just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", + "dev": true + }, "node_modules/kebabcase": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/kebabcase/-/kebabcase-1.0.1.tgz", @@ -6522,21 +8112,88 @@ "dev": true }, "node_modules/last-run": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-2.0.0.tgz", - "integrity": "sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", + "dev": true, + "dependencies": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/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/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", "dev": true, + "dependencies": { + "invert-kv": "^1.0.0" + }, "engines": { - "node": ">= 10.13.0" + "node": ">=0.10.0" } }, "node_modules/lead": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-4.0.0.tgz", - "integrity": "sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", "dev": true, + "dependencies": { + "flush-write-stream": "^1.0.2" + }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.10" } }, "node_modules/levn": { @@ -6553,21 +8210,34 @@ } }, "node_modules/liftoff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-5.0.0.tgz", - "integrity": "sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", "dev": true, "dependencies": { - "extend": "^3.0.2", - "findup-sync": "^5.0.0", - "fined": "^2.0.0", - "flagged-respawn": "^2.0.0", - "is-plain-object": "^5.0.0", - "rechoir": "^0.8.0", - "resolve": "^1.20.0" + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.8" + } + }, + "node_modules/liftoff/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/lightningcss": { @@ -6978,6 +8648,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -6999,6 +8681,190 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==", + "dev": true, + "dependencies": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/matchdep/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/matchdep/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", @@ -7206,6 +9072,19 @@ "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", "dev": true }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", @@ -7219,12 +9098,12 @@ "dev": true }, "node_modules/mute-stdout": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-2.0.0.tgz", - "integrity": "sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", "dev": true, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" } }, "node_modules/mute-stream": { @@ -7233,6 +9112,13 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "node_modules/nan": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", + "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==", + "dev": true, + "optional": true + }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -7251,6 +9137,28 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/napi-build-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", @@ -7272,6 +9180,12 @@ "node": ">= 0.6" } }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -7367,15 +9281,15 @@ } }, "node_modules/now-and-later": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz", - "integrity": "sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", "dev": true, "dependencies": { - "once": "^1.4.0" + "once": "^1.3.2" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" } }, "node_modules/npm-run-all": { @@ -7583,6 +9497,57 @@ "node": ">=0.10.0" } }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", @@ -7601,6 +9566,18 @@ "node": ">= 0.4" } }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object.assign": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", @@ -7683,6 +9660,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "dev": true, + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", @@ -7695,6 +9685,19 @@ "node": ">=0.10.0" } }, + "node_modules/object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", + "dev": true, + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object.values": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", @@ -7800,6 +9803,63 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/ordered-read-streams/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/ordered-read-streams/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/ordered-read-streams/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/ordered-read-streams/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dev": true, + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -7928,6 +9988,21 @@ "node": ">= 0.8" } }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -8055,6 +10130,27 @@ "node": ">=4" } }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/plugin-error": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-2.0.1.tgz", @@ -8090,6 +10186,15 @@ "npm": ">=1.0.0" } }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", @@ -8346,6 +10451,15 @@ "node": ">= 0.8.0" } }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -8373,6 +10487,27 @@ "once": "^1.3.1" } }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -8704,15 +10839,15 @@ } }, "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", "dev": true, "dependencies": { - "resolve": "^1.20.0" + "resolve": "^1.1.6" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" } }, "node_modules/redent": { @@ -8758,6 +10893,28 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, "node_modules/regexp-tree": { "version": "0.1.27", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", @@ -8827,6 +10984,79 @@ "node": ">= 0.10" } }, + "node_modules/remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", + "dev": true, + "dependencies": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-bom-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/remove-bom-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/remove-bom-stream/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/remove-bom-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/remove-bom-stream/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -8842,6 +11072,24 @@ "debug": "^2.5.2" } }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, "node_modules/replace-ext": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", @@ -8852,12 +11100,17 @@ } }, "node_modules/replace-homedir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-2.0.0.tgz", - "integrity": "sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==", "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" } }, "node_modules/require-directory": { @@ -8878,6 +11131,12 @@ "node": ">=0.10.0" } }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -8966,17 +11225,24 @@ } }, "node_modules/resolve-options": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-2.0.0.tgz", - "integrity": "sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", "dev": true, "dependencies": { - "value-or-function": "^4.0.0" + "value-or-function": "^3.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" } }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, "node_modules/resp-modifier": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", @@ -9003,6 +11269,15 @@ "node": ">=8" } }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -9178,15 +11453,15 @@ } }, "node_modules/semver-greatest-satisfied-range": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz", - "integrity": "sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==", "dev": true, "dependencies": { - "sver": "^1.8.3" + "sver-compat": "^1.5.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" } }, "node_modules/send": { @@ -9386,7 +11661,55 @@ "has-property-descriptors": "^1.0.2" }, "engines": { - "node": ">= 0.4" + "node": ">= 0.4" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/setprototypeof": { @@ -9562,6 +11885,130 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/socket.io": { "version": "4.7.5", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", @@ -9728,13 +12175,34 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true + }, "node_modules/sparkles": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-2.1.0.tgz", - "integrity": "sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", "dev": true, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" } }, "node_modules/spdx-correct": { @@ -9769,6 +12237,18 @@ "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", "dev": true }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -9782,6 +12262,53 @@ "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", "dev": true }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/statuses": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", @@ -9791,21 +12318,18 @@ "node": ">= 0.6" } }, - "node_modules/stream-composer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-composer/-/stream-composer-1.0.2.tgz", - "integrity": "sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==", - "dev": true, - "dependencies": { - "streamx": "^2.13.2" - } - }, "node_modules/stream-exhaust": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", "dev": true }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true + }, "node_modules/stream-throttle": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", @@ -10384,13 +12908,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sver": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/sver/-/sver-1.8.4.tgz", - "integrity": "sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==", + "node_modules/sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==", "dev": true, - "optionalDependencies": { - "semver": "^6.3.0" + "dependencies": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "node_modules/svg-tags": { @@ -10575,6 +13100,62 @@ "readable-stream": "3" } }, + "node_modules/through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "dependencies": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "node_modules/through2-filter/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/through2-filter/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2-filter/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/through2-filter/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/through2-filter/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, "node_modules/time-stamp": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", @@ -10590,34 +13171,141 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/to-regex/node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", + "dev": true, + "dependencies": { + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/to-through/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/to-through/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/to-through/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/to-through/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "safe-buffer": "~5.1.0" } }, - "node_modules/to-through": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-3.0.0.tgz", - "integrity": "sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==", + "node_modules/to-through/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "dependencies": { - "streamx": "^2.12.5" - }, - "engines": { - "node": ">=10.13.0" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, "node_modules/toidentifier": { @@ -10656,6 +13344,12 @@ "node": "*" } }, + "node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", + "dev": true + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -10753,6 +13447,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, "node_modules/typical": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz", @@ -10832,37 +13532,40 @@ } }, "node_modules/undertaker": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-2.0.0.tgz", - "integrity": "sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", "dev": true, "dependencies": { - "bach": "^2.0.1", - "fast-levenshtein": "^3.0.0", - "last-run": "^2.0.0", - "undertaker-registry": "^2.0.0" + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.10" } }, "node_modules/undertaker-registry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-2.0.0.tgz", - "integrity": "sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", "dev": true, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" } }, "node_modules/undertaker/node_modules/fast-levenshtein": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", - "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", - "dev": true, - "dependencies": { - "fastest-levenshtein": "^1.0.7" - } + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", + "dev": true }, "node_modules/undici-types": { "version": "5.26.5", @@ -10882,6 +13585,40 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "dependencies": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -10900,6 +13637,70 @@ "node": ">= 0.8" } }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", @@ -10945,6 +13746,22 @@ "punycode": "^2.1.0" } }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -10961,12 +13778,15 @@ } }, "node_modules/v8flags": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", - "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" } }, "node_modules/validate-npm-package-license": { @@ -10980,12 +13800,12 @@ } }, "node_modules/value-or-function": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-4.0.0.tgz", - "integrity": "sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", "dev": true, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" } }, "node_modules/vary": { @@ -11013,106 +13833,160 @@ "node": ">=10.13.0" } }, - "node_modules/vinyl-contents": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vinyl-contents/-/vinyl-contents-2.0.0.tgz", - "integrity": "sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==", + "node_modules/vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", "dev": true, "dependencies": { - "bl": "^5.0.0", - "vinyl": "^3.0.0" + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.10" } }, - "node_modules/vinyl-contents/node_modules/bl": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", - "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "node_modules/vinyl-fs/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/vinyl-fs/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/vinyl-contents/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "node_modules/vinyl-fs/node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs/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/vinyl-fs/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "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": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "safe-buffer": "~5.1.0" } }, - "node_modules/vinyl-fs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-4.0.0.tgz", - "integrity": "sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==", + "node_modules/vinyl-fs/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "dependencies": { - "fs-mkdirp-stream": "^2.0.1", - "glob-stream": "^8.0.0", - "graceful-fs": "^4.2.11", - "iconv-lite": "^0.6.3", - "is-valid-glob": "^1.0.0", - "lead": "^4.0.0", - "normalize-path": "3.0.0", - "resolve-options": "^2.0.0", - "stream-composer": "^1.0.2", - "streamx": "^2.14.0", - "to-through": "^3.0.0", - "value-or-function": "^4.0.0", - "vinyl": "^3.0.0", - "vinyl-sourcemap": "^2.0.0" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/vinyl-fs/node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.10" } }, - "node_modules/vinyl-fs/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==", + "node_modules/vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, - "node_modules/vinyl-sourcemap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz", - "integrity": "sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==", + "node_modules/vinyl-sourcemap/node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", "dev": true, "dependencies": { - "convert-source-map": "^2.0.0", - "graceful-fs": "^4.2.10", - "now-and-later": "^3.0.0", - "streamx": "^2.12.5", - "vinyl": "^3.0.0", - "vinyl-contents": "^2.0.0" + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.10" } }, "node_modules/vinyl-sourcemaps-apply": { @@ -11305,6 +14179,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true + }, "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", diff --git a/package.json b/package.json index cd4e208ec..d55e2fe6a 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "browserslist-to-esbuild": "2.1.1", "eslint": "8.57.0", "eslint-config-htmlacademy": "10.0.1", - "gulp": "5.0.0", + "gulp": "4.0.2", "gulp-esbuild": "0.12.0", "gulp-html-bemlinter": "3.0.1", "gulp-htmlmin": "5.0.1", From f685ee207dbc0c8897d8eaac1b3ec6bff66dd091 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Wed, 3 Apr 2024 14:58:42 +0300 Subject: [PATCH 096/116] Add deploy on pull request --- .github/workflows/gh-pages-on-pr.yml | 47 ++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 .github/workflows/gh-pages-on-pr.yml diff --git a/.github/workflows/gh-pages-on-pr.yml b/.github/workflows/gh-pages-on-pr.yml new file mode 100644 index 000000000..d49379de7 --- /dev/null +++ b/.github/workflows/gh-pages-on-pr.yml @@ -0,0 +1,47 @@ +name: Deploy on pull request + +on: + pull_request_target: + branches: + - '*' + +jobs: + deploy-on-pull-request: + name: Deploy on Pull Request + + permissions: + contents: write + + runs-on: ubuntu-latest + + steps: + + - name: Checkout + uses: actions/checkout@v4 + with: + ref: 'refs/pull/${{ github.event.pull_request.number }}/merge' + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version-file: 'package.json' + + - name: Restore cache + uses: actions/cache@v3 + with: + path: ~/.npm + key: cache-npm-${{ hashFiles('./package-lock.json') }} + restore-keys: cache-npm- + + - name: Install dependencies + run: npm ci + + - name: Build project + run: npm run build + + - name: Deploy + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: ./build + branch: gh-pages + target-folder: ${{ github.event.pull_request.number }} From 85340f7794e8be4fb09651c9558bd4fd5df23342 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Fri, 5 Apr 2024 17:29:05 +0300 Subject: [PATCH 097/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20SASS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 577 +--------------------------------------------- package.json | 2 +- 2 files changed, 5 insertions(+), 574 deletions(-) diff --git a/package-lock.json b/package-lock.json index 13f0d86bb..cd632e949 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", - "sass": "1.72.0", + "sass": "1.74.1", "stylelint": "16.3.1", "stylelint-config-htmlacademy": "4.2.0", "w3c-html-validator": "1.7.0" @@ -251,358 +251,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@esbuild/win32-x64": { "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", @@ -1906,16 +1554,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -4813,13 +4451,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -5324,20 +4955,6 @@ "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", @@ -5740,25 +5357,6 @@ "node": ">=0.10.0" } }, - "node_modules/glob-watcher/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, "node_modules/glob-watcher/node_modules/glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", @@ -8267,166 +7865,6 @@ "lightningcss-win32-x64-msvc": "1.24.1" } }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.24.1.tgz", - "integrity": "sha512-1jQ12jBy+AE/73uGQWGSafK5GoWgmSiIQOGhSEXiFJSZxzV+OXIx+a9h2EYHxdJfX864M+2TAxWPWb0Vv+8y4w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.24.1.tgz", - "integrity": "sha512-R4R1d7VVdq2mG4igMU+Di8GPf0b64ZLnYVkubYnGG0Qxq1KaXQtAzcLI43EkpnoWvB/kUg8JKCWH4S13NfiLcQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.24.1.tgz", - "integrity": "sha512-z6NberUUw5ALES6Ixn2shmjRRrM1cmEn1ZQPiM5IrZ6xHHL5a1lPin9pRv+w6eWfcrEo+qGG6R9XfJrpuY3e4g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.24.1.tgz", - "integrity": "sha512-NLQLnBQW/0sSg74qLNI8F8QKQXkNg4/ukSTa+XhtkO7v3BnK19TS1MfCbDHt+TTdSgNEBv0tubRuapcKho2EWw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.24.1.tgz", - "integrity": "sha512-AQxWU8c9E9JAjAi4Qw9CvX2tDIPjgzCTrZCSXKELfs4mCwzxRkHh2RCxX8sFK19RyJoJAjA/Kw8+LMNRHS5qEg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.24.1.tgz", - "integrity": "sha512-JCgH/SrNrhqsguUA0uJUM1PvN5+dVuzPIlXcoWDHSv2OU/BWlj2dUYr3XNzEw748SmNZPfl2NjQrAdzaPOn1lA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.24.1.tgz", - "integrity": "sha512-TYdEsC63bHV0h47aNRGN3RiK7aIeco3/keN4NkoSQ5T8xk09KHuBdySltWAvKLgT8JvR+ayzq8ZHnL1wKWY0rw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.24.1.tgz", - "integrity": "sha512-HLfzVik3RToot6pQ2Rgc3JhfZkGi01hFetHt40HrUMoeKitLoqUUT5owM6yTZPTytTUW9ukLBJ1pc3XNMSvlLw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/lightningcss-win32-x64-msvc": { "version": "1.24.1", "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.24.1.tgz", @@ -9112,13 +8550,6 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "node_modules/nan": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", - "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==", - "dev": true, - "optional": true - }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -11421,9 +10852,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.72.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.72.0.tgz", - "integrity": "sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA==", + "version": "1.74.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.74.1.tgz", + "integrity": "sha512-w0Z9p/rWZWelb88ISOLyvqTWGmtmu2QJICqDBGyNnfG4OUnPX9BBjjYIXUpXCMOOg5MQWNpqzt876la1fsTvUA==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index d55e2fe6a..05dc87192 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", - "sass": "1.72.0", + "sass": "1.74.1", "stylelint": "16.3.1", "stylelint-config-htmlacademy": "4.2.0", "w3c-html-validator": "1.7.0" From 6f9ca1a5e1fdf54b3c7efee15d5d1d83d98f6f63 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Fri, 5 Apr 2024 17:30:43 +0300 Subject: [PATCH 098/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20SASS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 569 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 569 insertions(+) diff --git a/package-lock.json b/package-lock.json index cd632e949..9a14b64c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -251,6 +251,358 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/win32-x64": { "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", @@ -1554,6 +1906,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -4451,6 +4813,13 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -4955,6 +5324,20 @@ "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", @@ -5357,6 +5740,25 @@ "node": ">=0.10.0" } }, + "node_modules/glob-watcher/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, "node_modules/glob-watcher/node_modules/glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", @@ -7865,6 +8267,166 @@ "lightningcss-win32-x64-msvc": "1.24.1" } }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.24.1.tgz", + "integrity": "sha512-1jQ12jBy+AE/73uGQWGSafK5GoWgmSiIQOGhSEXiFJSZxzV+OXIx+a9h2EYHxdJfX864M+2TAxWPWb0Vv+8y4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.24.1.tgz", + "integrity": "sha512-R4R1d7VVdq2mG4igMU+Di8GPf0b64ZLnYVkubYnGG0Qxq1KaXQtAzcLI43EkpnoWvB/kUg8JKCWH4S13NfiLcQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.24.1.tgz", + "integrity": "sha512-z6NberUUw5ALES6Ixn2shmjRRrM1cmEn1ZQPiM5IrZ6xHHL5a1lPin9pRv+w6eWfcrEo+qGG6R9XfJrpuY3e4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.24.1.tgz", + "integrity": "sha512-NLQLnBQW/0sSg74qLNI8F8QKQXkNg4/ukSTa+XhtkO7v3BnK19TS1MfCbDHt+TTdSgNEBv0tubRuapcKho2EWw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.24.1.tgz", + "integrity": "sha512-AQxWU8c9E9JAjAi4Qw9CvX2tDIPjgzCTrZCSXKELfs4mCwzxRkHh2RCxX8sFK19RyJoJAjA/Kw8+LMNRHS5qEg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.24.1.tgz", + "integrity": "sha512-JCgH/SrNrhqsguUA0uJUM1PvN5+dVuzPIlXcoWDHSv2OU/BWlj2dUYr3XNzEw748SmNZPfl2NjQrAdzaPOn1lA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.24.1.tgz", + "integrity": "sha512-TYdEsC63bHV0h47aNRGN3RiK7aIeco3/keN4NkoSQ5T8xk09KHuBdySltWAvKLgT8JvR+ayzq8ZHnL1wKWY0rw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.24.1.tgz", + "integrity": "sha512-HLfzVik3RToot6pQ2Rgc3JhfZkGi01hFetHt40HrUMoeKitLoqUUT5owM6yTZPTytTUW9ukLBJ1pc3XNMSvlLw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/lightningcss-win32-x64-msvc": { "version": "1.24.1", "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.24.1.tgz", @@ -8550,6 +9112,13 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "node_modules/nan": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", + "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==", + "dev": true, + "optional": true + }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", From 721b081abc3a28e7485153870e1ba4a9cfabc248 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Thu, 2 May 2024 10:55:42 +0300 Subject: [PATCH 099/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 107 +++++++++++++++++++--------------------------- package.json | 8 ++-- 2 files changed, 49 insertions(+), 66 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9a14b64c5..a416e288a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,10 +29,10 @@ "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", - "sass": "1.74.1", - "stylelint": "16.3.1", - "stylelint-config-htmlacademy": "4.2.0", - "w3c-html-validator": "1.7.0" + "sass": "1.76.0", + "stylelint": "16.5.0", + "stylelint-config-htmlacademy": "4.2.1", + "w3c-html-validator": "1.8.1" }, "engines": { "node": "^18.18 || ^20.9" @@ -1044,19 +1044,19 @@ "dev": true }, "node_modules/@stylistic/stylelint-plugin": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-2.1.1.tgz", - "integrity": "sha512-xqHTmQZN7EbnFDW7jw0rAsdFNO4IRqvXhrh3qhUlIwF/x09Zm7kgs/ADktHxsTJYcw346PpGihsB0t4pZhpeHw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-2.1.2.tgz", + "integrity": "sha512-JsSqu0Y3vsX+PBl+DwULxC0cIv9C1yIcq1MXkx7pBOGtTqU26a75I8MPYMiEYvrsXgsKLi65xVgy1iLVSZquJA==", "dev": true, "dependencies": { - "@csstools/css-parser-algorithms": "^2.5.0", - "@csstools/css-tokenizer": "^2.2.3", - "@csstools/media-query-list-parser": "^2.1.7", + "@csstools/css-parser-algorithms": "^2.6.1", + "@csstools/css-tokenizer": "^2.2.4", + "@csstools/media-query-list-parser": "^2.1.9", "is-plain-object": "^5.0.0", - "postcss-selector-parser": "^6.0.15", + "postcss-selector-parser": "^6.0.16", "postcss-value-parser": "^4.2.0", "style-search": "^0.1.0", - "stylelint": "^16.2.1" + "stylelint": "^16.4.0" }, "engines": { "node": "^18.12 || >=20.9" @@ -2897,9 +2897,9 @@ } }, "node_modules/css-functions-list": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz", - "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz", + "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==", "dev": true, "engines": { "node": ">=12 || >=16" @@ -5207,15 +5207,14 @@ } }, "node_modules/formidable": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", - "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.1.tgz", + "integrity": "sha512-WJWKelbRHN41m5dumb0/k8TeAx7Id/y3a+Z7QfhxP/htI9Js5zYaEDtG8uMgG0vM0lOlqnmjE99/kfpOYi/0Og==", "dev": true, "dependencies": { "dezalgo": "^1.0.4", "hexoid": "^1.0.0", - "once": "^1.4.0", - "qs": "^6.11.0" + "once": "^1.4.0" }, "funding": { "url": "https://ko-fi.com/tunnckoCore/commissions" @@ -10518,9 +10517,9 @@ } }, "node_modules/qs": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.0.tgz", - "integrity": "sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==", + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", + "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", "dev": true, "dependencies": { "side-channel": "^1.0.6" @@ -11421,9 +11420,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.74.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.74.1.tgz", - "integrity": "sha512-w0Z9p/rWZWelb88ISOLyvqTWGmtmu2QJICqDBGyNnfG4OUnPX9BBjjYIXUpXCMOOg5MQWNpqzt876la1fsTvUA==", + "version": "1.76.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.76.0.tgz", + "integrity": "sha512-nc3LeqvF2FNW5xGF1zxZifdW3ffIz5aBb7I7tSvOoNu7z1RQ6pFt9MBuiPtjgaI62YWrM/txjWlOCFiGtf2xpw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -12561,20 +12560,20 @@ "dev": true }, "node_modules/stylelint": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.3.1.tgz", - "integrity": "sha512-/JOwQnBvxEKOT2RtNgGpBVXnCSMBgKOL2k7w0K52htwCyJls4+cHvc4YZgXlVoAZS9QJd2DgYAiRnja96pTgxw==", + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.5.0.tgz", + "integrity": "sha512-IlCBtVrG+qTy3v+tZTk50W8BIomjY/RUuzdrDqdnlCYwVuzXtPbiGfxYqtyYAyOMcb+195zRsuHn6tgfPmFfbw==", "dev": true, "dependencies": { "@csstools/css-parser-algorithms": "^2.6.1", "@csstools/css-tokenizer": "^2.2.4", "@csstools/media-query-list-parser": "^2.1.9", - "@csstools/selector-specificity": "^3.0.2", + "@csstools/selector-specificity": "^3.0.3", "@dual-bundle/import-meta-resolve": "^4.0.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.1", + "css-functions-list": "^3.2.2", "css-tree": "^2.3.1", "debug": "^4.3.4", "fast-glob": "^3.3.2", @@ -12603,7 +12602,7 @@ "strip-ansi": "^7.1.0", "supports-hyperlinks": "^3.0.0", "svg-tags": "^1.0.0", - "table": "^6.8.1", + "table": "^6.8.2", "write-file-atomic": "^5.0.1" }, "bin": { @@ -12618,12 +12617,12 @@ } }, "node_modules/stylelint-config-htmlacademy": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.2.0.tgz", - "integrity": "sha512-u7IUQsJ/BoHODz9FhkStECeXb2wuCFzN8dFTZnTqlMX0DS6BeCqi+rRhNfyCbKnVs3r/ISaVpQjlPYeI3yAs6Q==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.2.1.tgz", + "integrity": "sha512-ublg40XwrNnFGGa+RWVSHGNh+TsL8QLk+XQ6FG+Big1mkWZ5N0ShqeouTcctr9c6uFb2wrRY6pb4fe7DLJ2Mbg==", "dev": true, "dependencies": { - "@stylistic/stylelint-plugin": "2.1.1", + "@stylistic/stylelint-plugin": "2.1.2", "postcss-less": "6.0.0", "postcss-scss": "4.0.9" }, @@ -12801,9 +12800,9 @@ } }, "node_modules/superagent": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", - "integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz", + "integrity": "sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w==", "dev": true, "dependencies": { "component-emitter": "^1.3.0", @@ -12811,14 +12810,13 @@ "debug": "^4.3.4", "fast-safe-stringify": "^2.1.1", "form-data": "^4.0.0", - "formidable": "^2.1.2", + "formidable": "^3.5.1", "methods": "^1.1.2", "mime": "2.6.0", - "qs": "^6.11.0", - "semver": "^7.3.8" + "qs": "^6.11.0" }, "engines": { - "node": ">=6.4.0 <13 || >=14" + "node": ">=14.18.0" } }, "node_modules/superagent/node_modules/debug": { @@ -12856,21 +12854,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/superagent/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -14008,9 +13991,9 @@ } }, "node_modules/w3c-html-validator": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/w3c-html-validator/-/w3c-html-validator-1.7.0.tgz", - "integrity": "sha512-C183Z91s8ej5c2ceZTR0rov+nCSqFwGC1F8oe9ShbjqLuwONdtgkJ1MLLYlXOLR2yldKzIGRmyKiPRUiv6OvCg==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/w3c-html-validator/-/w3c-html-validator-1.8.1.tgz", + "integrity": "sha512-XZrlcAv4hcpSU+zphq+uvypjydekQbIuewvcU2y7xIfFJHsp50tUihIJpfuhYYIhUgXvbNNGQh+g8O8gEL4kjw==", "dev": true, "dependencies": { "chalk": "~5.3", @@ -14018,7 +14001,7 @@ "fancy-log": "~2.0", "glob": "~10.3", "slash": "~5.1", - "superagent": "~8.1" + "superagent": "~9.0" }, "bin": { "html-validator": "bin/cli.js", diff --git a/package.json b/package.json index 05dc87192..b7680d46b 100644 --- a/package.json +++ b/package.json @@ -50,9 +50,9 @@ "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", - "sass": "1.74.1", - "stylelint": "16.3.1", - "stylelint-config-htmlacademy": "4.2.0", - "w3c-html-validator": "1.7.0" + "sass": "1.76.0", + "stylelint": "16.5.0", + "stylelint-config-htmlacademy": "4.2.1", + "w3c-html-validator": "1.8.1" } } From 5b08839923d01cafa8739a8ba08bdd31a8859a28 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Fri, 10 May 2024 18:44:56 +0300 Subject: [PATCH 100/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 18 +++++++++--------- package.json | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index a416e288a..a949a6061 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-esbuild": "0.12.0", - "gulp-html-bemlinter": "3.0.1", + "gulp-html-bemlinter": "4.0.0", "gulp-htmlmin": "5.0.1", "gulp-plumber": "1.2.1", "gulp-postcss": "10.0.0", @@ -29,7 +29,7 @@ "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", - "sass": "1.76.0", + "sass": "1.77.0", "stylelint": "16.5.0", "stylelint-config-htmlacademy": "4.2.1", "w3c-html-validator": "1.8.1" @@ -6384,13 +6384,13 @@ } }, "node_modules/gulp-html-bemlinter": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/gulp-html-bemlinter/-/gulp-html-bemlinter-3.0.1.tgz", - "integrity": "sha512-MVy3WYGk+PXtOTZ5AWVpU7y7YJ5bwax1crlVOFbOCobI6H1pzt3hXXfD5V/PCsa9hYpFrO7SAiQvbJsupSULog==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/gulp-html-bemlinter/-/gulp-html-bemlinter-4.0.0.tgz", + "integrity": "sha512-gugYlOyvPTDgYKbjzBp/2gk1atCRh/6+VKdZnm6FuVHIVKUv2bgsFpwA2j5XJz9XgcCNlnlHx5g8sFh/BIBtTA==", "dev": true, "dependencies": { "chalk": "^5.3.0", - "node-html-parser": "^6.1.11", + "node-html-parser": "^6.1.13", "plugin-error": "^2.0.1", "through2": "^4.0.2" }, @@ -11420,9 +11420,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.76.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.76.0.tgz", - "integrity": "sha512-nc3LeqvF2FNW5xGF1zxZifdW3ffIz5aBb7I7tSvOoNu7z1RQ6pFt9MBuiPtjgaI62YWrM/txjWlOCFiGtf2xpw==", + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.0.tgz", + "integrity": "sha512-eGj4HNfXqBWtSnvItNkn7B6icqH14i3CiCGbzMKs3BAPTq62pp9NBYsBgyN4cA+qssqo9r26lW4JSvlaUUWbgw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index b7680d46b..2fb4c8f9a 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "eslint-config-htmlacademy": "10.0.1", "gulp": "4.0.2", "gulp-esbuild": "0.12.0", - "gulp-html-bemlinter": "3.0.1", + "gulp-html-bemlinter": "4.0.0", "gulp-htmlmin": "5.0.1", "gulp-plumber": "1.2.1", "gulp-postcss": "10.0.0", @@ -50,7 +50,7 @@ "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", - "sass": "1.76.0", + "sass": "1.77.0", "stylelint": "16.5.0", "stylelint-config-htmlacademy": "4.2.1", "w3c-html-validator": "1.8.1" From 657d6fa43baf2db30558dd49c00e2572994d0d29 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Tue, 14 May 2024 15:03:09 +0300 Subject: [PATCH 101/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 34 +++++++++++++++++----------------- package.json | 6 +++--- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index a949a6061..01046f206 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,14 +22,14 @@ "gulp-postcss": "10.0.0", "gulp-sass": "5.1.0", "gulp-sharp-responsive": "0.4.1", - "gulp-stacksvg": "3.0.0", + "gulp-stacksvg": "4.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.20", + "linthtml-config-htmlacademy": "1.0.21", "npm-run-all": "4.1.5", "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", - "sass": "1.77.0", + "sass": "1.77.1", "stylelint": "16.5.0", "stylelint-config-htmlacademy": "4.2.1", "w3c-html-validator": "1.8.1" @@ -6797,12 +6797,12 @@ } }, "node_modules/gulp-stacksvg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-stacksvg/-/gulp-stacksvg-3.0.0.tgz", - "integrity": "sha512-b66V1SmGQluYxS1z79J0jztS7IpG/nhApBc7xqNj7nXI9xKS+/QrOz2RNAPUZKJ+EouLuImo6S6I8tXrHOikaA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/gulp-stacksvg/-/gulp-stacksvg-4.0.0.tgz", + "integrity": "sha512-B4qZ8FHaatrLSt5HEGiRG44rjSped7YbAcN8z2cpGaqY8t8dMZTI0fXEQv1YhFHHxaiMJO+ArBLhxyL0B/XDFA==", "dev": true, "dependencies": { - "node-html-parser": "^6.1.11", + "node-html-parser": "^6.1.13", "plugin-error": "^2.0.1", "vinyl": "^3.0.0" }, @@ -8471,19 +8471,19 @@ "dev": true }, "node_modules/linthtml-config-htmlacademy": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.20.tgz", - "integrity": "sha512-etgDuq7CYZTWV0JhhmjkjzZ1WFyMkYaLS6LvvtLrMJGqKUuAOE3R96LbFg5iOJDAuwymJh9v3ZARskgIqEpaVg==", + "version": "1.0.21", + "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.21.tgz", + "integrity": "sha512-IbqWslzLQ/M0bDlzohZfU5tSsHHHhgpct9Jav10Fhq/XiS8zqwOi3HjQd3MyAF8fxPsv6QFilo7RF1IEx9eN9g==", "dev": true, "dependencies": { "@linthtml/linthtml": "0.9.6", - "linthtml-rules-htmlacademy": "1.0.15" + "linthtml-rules-htmlacademy": "1.0.16" } }, "node_modules/linthtml-rules-htmlacademy": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.15.tgz", - "integrity": "sha512-B/XVIyZ6yiNn/2Xl0kAf38XVREIZArJRx3811l7t21ZwV9EZjEER9yPvU+jWwt1HPqa39UaA3+1c5+R3h85YXA==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.16.tgz", + "integrity": "sha512-hAHUkjZJtevwAmYLvTiBUJfjKCynV3Cne5Cvp8lRFx4aSrnaSt36R8m8+wsz0DEY5h5jvJBpz3shVmAmktqzKA==", "dev": true }, "node_modules/lintspaces": { @@ -11420,9 +11420,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.77.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.0.tgz", - "integrity": "sha512-eGj4HNfXqBWtSnvItNkn7B6icqH14i3CiCGbzMKs3BAPTq62pp9NBYsBgyN4cA+qssqo9r26lW4JSvlaUUWbgw==", + "version": "1.77.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.1.tgz", + "integrity": "sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index 2fb4c8f9a..fdc4ea7e2 100644 --- a/package.json +++ b/package.json @@ -43,14 +43,14 @@ "gulp-postcss": "10.0.0", "gulp-sass": "5.1.0", "gulp-sharp-responsive": "0.4.1", - "gulp-stacksvg": "3.0.0", + "gulp-stacksvg": "4.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.20", + "linthtml-config-htmlacademy": "1.0.21", "npm-run-all": "4.1.5", "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", - "sass": "1.77.0", + "sass": "1.77.1", "stylelint": "16.5.0", "stylelint-config-htmlacademy": "4.2.1", "w3c-html-validator": "1.8.1" From 5d0cab285e0755ae752a8307acf29cddb44fcf3e Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Fri, 17 May 2024 11:01:52 +0300 Subject: [PATCH 102/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 24 ++++++++++++------------ package.json | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 01046f206..27994705b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,12 +24,12 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "4.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.21", + "linthtml-config-htmlacademy": "1.0.22", "npm-run-all": "4.1.5", "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", - "sass": "1.77.1", + "sass": "1.77.2", "stylelint": "16.5.0", "stylelint-config-htmlacademy": "4.2.1", "w3c-html-validator": "1.8.1" @@ -8471,19 +8471,19 @@ "dev": true }, "node_modules/linthtml-config-htmlacademy": { - "version": "1.0.21", - "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.21.tgz", - "integrity": "sha512-IbqWslzLQ/M0bDlzohZfU5tSsHHHhgpct9Jav10Fhq/XiS8zqwOi3HjQd3MyAF8fxPsv6QFilo7RF1IEx9eN9g==", + "version": "1.0.22", + "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.22.tgz", + "integrity": "sha512-YUEcznhu/gtVBI82LeP+xpKIWObVXlQmChMbpsAoV9mRjYi61SzoiErdOeV++qt6e4YCWPPihB8JmJpnZYc93A==", "dev": true, "dependencies": { "@linthtml/linthtml": "0.9.6", - "linthtml-rules-htmlacademy": "1.0.16" + "linthtml-rules-htmlacademy": "1.0.18" } }, "node_modules/linthtml-rules-htmlacademy": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.16.tgz", - "integrity": "sha512-hAHUkjZJtevwAmYLvTiBUJfjKCynV3Cne5Cvp8lRFx4aSrnaSt36R8m8+wsz0DEY5h5jvJBpz3shVmAmktqzKA==", + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.18.tgz", + "integrity": "sha512-yRcXUU22FQqBoDJSldt3SUin/HjDg5ITCQgqJi/8yACUUeSYyKf/eBZQMHjWYY6NjfvetSZjuKYJS2zlo2XDtA==", "dev": true }, "node_modules/lintspaces": { @@ -11420,9 +11420,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.77.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.1.tgz", - "integrity": "sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w==", + "version": "1.77.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.2.tgz", + "integrity": "sha512-eb4GZt1C3avsX3heBNlrc7I09nyT00IUuo4eFhAbeXWU2fvA7oXI53SxODVAA+zgZCk9aunAZgO+losjR3fAwA==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index fdc4ea7e2..ba1cdc572 100644 --- a/package.json +++ b/package.json @@ -45,12 +45,12 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "4.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.21", + "linthtml-config-htmlacademy": "1.0.22", "npm-run-all": "4.1.5", "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", - "sass": "1.77.1", + "sass": "1.77.2", "stylelint": "16.5.0", "stylelint-config-htmlacademy": "4.2.1", "w3c-html-validator": "1.8.1" From 56e6a2d69ffba15459d2c9b7abb249e49f7ec0c5 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Fri, 24 May 2024 23:05:45 +0300 Subject: [PATCH 103/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 116 +++++++++++++++++++++++++--------------------- package.json | 6 +-- 2 files changed, 67 insertions(+), 55 deletions(-) diff --git a/package-lock.json b/package-lock.json index 27994705b..2bbb5d8f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,14 +24,14 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "4.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.22", + "linthtml-config-htmlacademy": "1.0.24", "npm-run-all": "4.1.5", "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", "sass": "1.77.2", - "stylelint": "16.5.0", - "stylelint-config-htmlacademy": "4.2.1", + "stylelint": "16.6.0", + "stylelint-config-htmlacademy": "4.2.2", "w3c-html-validator": "1.8.1" }, "engines": { @@ -156,9 +156,9 @@ } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.1.tgz", - "integrity": "sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.3.tgz", + "integrity": "sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA==", "dev": true, "funding": [ { @@ -174,13 +174,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.2.4" + "@csstools/css-tokenizer": "^2.3.1" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.4.tgz", - "integrity": "sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.3.1.tgz", + "integrity": "sha512-iMNHTyxLbBlWIfGtabT157LH9DUx9X8+Y3oymFEuMj8HNc+rpE3dPFGFgHjpKfjeFDjLjYIAIhXPGvS2lKxL9g==", "dev": true, "funding": [ { @@ -197,9 +197,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.9.tgz", - "integrity": "sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA==", + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.11.tgz", + "integrity": "sha512-uox5MVhvNHqitPP+SynrB1o8oPxPMt2JLgp5ghJOWf54WGQ5OKu47efne49r1SWqs3wRP8xSWjnO9MBKxhB1dA==", "dev": true, "funding": [ { @@ -215,14 +215,14 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.6.1", - "@csstools/css-tokenizer": "^2.2.4" + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1" } }, "node_modules/@csstools/selector-specificity": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.3.tgz", - "integrity": "sha512-KEPNw4+WW5AVEIyzC80rTbWEUatTW2lXpN8+8ILC8PiPeWPjwUzrPZDIOZ2wwqDmeqOYTdSGyL3+vE5GC3FB3Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz", + "integrity": "sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==", "dev": true, "funding": [ { @@ -242,9 +242,9 @@ } }, "node_modules/@dual-bundle/import-meta-resolve": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", - "integrity": "sha512-ZKXyJeFAzcpKM2kk8ipoGIPUqx9BX52omTGnfwjJvxOCaZTM2wtDK7zN0aIgPRbT9XYAlha0HtmZ+XKteuh0Gw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==", "dev": true, "funding": { "type": "github", @@ -8105,9 +8105,9 @@ } }, "node_modules/known-css-properties": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.30.0.tgz", - "integrity": "sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==", + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.31.0.tgz", + "integrity": "sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==", "dev": true }, "node_modules/last-run": { @@ -8471,19 +8471,19 @@ "dev": true }, "node_modules/linthtml-config-htmlacademy": { - "version": "1.0.22", - "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.22.tgz", - "integrity": "sha512-YUEcznhu/gtVBI82LeP+xpKIWObVXlQmChMbpsAoV9mRjYi61SzoiErdOeV++qt6e4YCWPPihB8JmJpnZYc93A==", + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.24.tgz", + "integrity": "sha512-omlqa41nUUG8b8hiMBr/PfQLFByd3OmyMg3W51v6BsAm6WJGDbYIJQDCN+//AHWXg8DrHujabprTfK/iwk07Qg==", "dev": true, "dependencies": { "@linthtml/linthtml": "0.9.6", - "linthtml-rules-htmlacademy": "1.0.18" + "linthtml-rules-htmlacademy": "1.0.20" } }, "node_modules/linthtml-rules-htmlacademy": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.18.tgz", - "integrity": "sha512-yRcXUU22FQqBoDJSldt3SUin/HjDg5ITCQgqJi/8yACUUeSYyKf/eBZQMHjWYY6NjfvetSZjuKYJS2zlo2XDtA==", + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.20.tgz", + "integrity": "sha512-TXF7uHolIgPLrX7Rw+Ckw+lIvc76FYn9FSIY/c3Qrl+zLzZ/NUfrS7T8oMtA8mDjgEbI7RIXAtFV3YbL+e28Vw==", "dev": true }, "node_modules/lintspaces": { @@ -10366,9 +10366,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -12560,16 +12560,26 @@ "dev": true }, "node_modules/stylelint": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.5.0.tgz", - "integrity": "sha512-IlCBtVrG+qTy3v+tZTk50W8BIomjY/RUuzdrDqdnlCYwVuzXtPbiGfxYqtyYAyOMcb+195zRsuHn6tgfPmFfbw==", + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.6.0.tgz", + "integrity": "sha512-vjWYlDEgOS3Z/IcXagQwi8PFJyPro1DxBYOnTML1PAqnrYUHs8owleGStv20sgt0OhW8r9zZm6MK7IT2+l2B6A==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], "dependencies": { - "@csstools/css-parser-algorithms": "^2.6.1", - "@csstools/css-tokenizer": "^2.2.4", - "@csstools/media-query-list-parser": "^2.1.9", - "@csstools/selector-specificity": "^3.0.3", - "@dual-bundle/import-meta-resolve": "^4.0.0", + "@csstools/css-parser-algorithms": "^2.6.3", + "@csstools/css-tokenizer": "^2.3.1", + "@csstools/media-query-list-parser": "^2.1.11", + "@csstools/selector-specificity": "^3.1.1", + "@dual-bundle/import-meta-resolve": "^4.1.0", "balanced-match": "^2.0.0", "colord": "^2.9.3", "cosmiconfig": "^9.0.0", @@ -12586,16 +12596,16 @@ "ignore": "^5.3.1", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.30.0", + "known-css-properties": "^0.31.0", "mathml-tag-names": "^2.1.3", "meow": "^13.2.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "postcss": "^8.4.38", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^7.0.0", - "postcss-selector-parser": "^6.0.16", + "postcss-selector-parser": "^6.1.0", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", @@ -12610,16 +12620,12 @@ }, "engines": { "node": ">=18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" } }, "node_modules/stylelint-config-htmlacademy": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.2.1.tgz", - "integrity": "sha512-ublg40XwrNnFGGa+RWVSHGNh+TsL8QLk+XQ6FG+Big1mkWZ5N0ShqeouTcctr9c6uFb2wrRY6pb4fe7DLJ2Mbg==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.2.2.tgz", + "integrity": "sha512-vFvXD1xKEqSstkbUDm252h7PUigFDbQ5FXeYJNyBlvR3PbFdd2oOjfgUeycZk7NwhRtthREODjxb+VHdfz4tDg==", "dev": true, "dependencies": { "@stylistic/stylelint-plugin": "2.1.2", @@ -12775,6 +12781,12 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/stylelint/node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, "node_modules/stylelint/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", diff --git a/package.json b/package.json index ba1cdc572..7ff03e861 100644 --- a/package.json +++ b/package.json @@ -45,14 +45,14 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "4.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.22", + "linthtml-config-htmlacademy": "1.0.24", "npm-run-all": "4.1.5", "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", "sass": "1.77.2", - "stylelint": "16.5.0", - "stylelint-config-htmlacademy": "4.2.1", + "stylelint": "16.6.0", + "stylelint-config-htmlacademy": "4.2.2", "w3c-html-validator": "1.8.1" } } From cd9e0ea0d96a8e88dd54a75360a7ce75b114250d Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Tue, 28 May 2024 13:08:05 +0300 Subject: [PATCH 104/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 16 ++++++++-------- package.json | 2 +- source/404.html | 7 +++++-- source/index.html | 4 ++++ 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2bbb5d8f3..0f3280e19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "4.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.24", + "linthtml-config-htmlacademy": "1.0.25", "npm-run-all": "4.1.5", "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", @@ -8471,19 +8471,19 @@ "dev": true }, "node_modules/linthtml-config-htmlacademy": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.24.tgz", - "integrity": "sha512-omlqa41nUUG8b8hiMBr/PfQLFByd3OmyMg3W51v6BsAm6WJGDbYIJQDCN+//AHWXg8DrHujabprTfK/iwk07Qg==", + "version": "1.0.25", + "resolved": "https://registry.npmjs.org/linthtml-config-htmlacademy/-/linthtml-config-htmlacademy-1.0.25.tgz", + "integrity": "sha512-0FSaIbOnUWLwkGkr51T7FvH/diNIIi/zu4UM3zhcGX9rlJvesIo7wMU1qqvl5IUzBgH3JTYg7BdaySmN1fIKGg==", "dev": true, "dependencies": { "@linthtml/linthtml": "0.9.6", - "linthtml-rules-htmlacademy": "1.0.20" + "linthtml-rules-htmlacademy": "1.0.21" } }, "node_modules/linthtml-rules-htmlacademy": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.20.tgz", - "integrity": "sha512-TXF7uHolIgPLrX7Rw+Ckw+lIvc76FYn9FSIY/c3Qrl+zLzZ/NUfrS7T8oMtA8mDjgEbI7RIXAtFV3YbL+e28Vw==", + "version": "1.0.21", + "resolved": "https://registry.npmjs.org/linthtml-rules-htmlacademy/-/linthtml-rules-htmlacademy-1.0.21.tgz", + "integrity": "sha512-cnPLjovn5n6KbG6rW/uvofDkfy6lioQN54PSzK34dr0Ge5FnztgRdVcDOjOdkZ11lw1Jy88PWqu2EukWjzJOtg==", "dev": true }, "node_modules/lintspaces": { diff --git a/package.json b/package.json index 7ff03e861..968c01b40 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "gulp-sharp-responsive": "0.4.1", "gulp-stacksvg": "4.0.0", "gulp-svgmin": "4.1.0", - "linthtml-config-htmlacademy": "1.0.24", + "linthtml-config-htmlacademy": "1.0.25", "npm-run-all": "4.1.5", "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", diff --git a/source/404.html b/source/404.html index 100088840..d31fb78cf 100644 --- a/source/404.html +++ b/source/404.html @@ -5,10 +5,13 @@ 404 + -

404

-

Страница не найдена. Перейти на главную.

+
+

404

+

Страница не найдена. Перейти на главную.

+
diff --git a/source/index.html b/source/index.html index 1eddeaf49..ccbe6e596 100644 --- a/source/index.html +++ b/source/index.html @@ -4,10 +4,14 @@ Название проекта +
Шапка
+
+

Страница для старта

+
From b0ea11c1327a1e84f6032620e244a9f1f8194002 Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Tue, 28 May 2024 22:03:05 +0300 Subject: [PATCH 105/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 62 +++++++++++++++++++++++------------------------ package.json | 4 +-- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0f3280e19..98bffc922 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,8 +30,8 @@ "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", "sass": "1.77.2", - "stylelint": "16.6.0", - "stylelint-config-htmlacademy": "4.2.2", + "stylelint": "16.6.1", + "stylelint-config-htmlacademy": "4.2.3", "w3c-html-validator": "1.8.1" }, "engines": { @@ -1944,12 +1944,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -4821,9 +4821,9 @@ "optional": true }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -8946,12 +8946,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -12560,9 +12560,9 @@ "dev": true }, "node_modules/stylelint": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.6.0.tgz", - "integrity": "sha512-vjWYlDEgOS3Z/IcXagQwi8PFJyPro1DxBYOnTML1PAqnrYUHs8owleGStv20sgt0OhW8r9zZm6MK7IT2+l2B6A==", + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.6.1.tgz", + "integrity": "sha512-yNgz2PqWLkhH2hw6X9AweV9YvoafbAD5ZsFdKN9BvSDVwGvPh+AUIrn7lYwy1S7IHmtFin75LLfX1m0D2tHu8Q==", "dev": true, "funding": [ { @@ -12588,7 +12588,7 @@ "debug": "^4.3.4", "fast-glob": "^3.3.2", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^8.0.0", + "file-entry-cache": "^9.0.0", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", @@ -12599,7 +12599,7 @@ "known-css-properties": "^0.31.0", "mathml-tag-names": "^2.1.3", "meow": "^13.2.0", - "micromatch": "^4.0.5", + "micromatch": "^4.0.7", "normalize-path": "^3.0.0", "picocolors": "^1.0.1", "postcss": "^8.4.38", @@ -12623,9 +12623,9 @@ } }, "node_modules/stylelint-config-htmlacademy": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.2.2.tgz", - "integrity": "sha512-vFvXD1xKEqSstkbUDm252h7PUigFDbQ5FXeYJNyBlvR3PbFdd2oOjfgUeycZk7NwhRtthREODjxb+VHdfz4tDg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/stylelint-config-htmlacademy/-/stylelint-config-htmlacademy-4.2.3.tgz", + "integrity": "sha512-5/kfFaEiWOWMGiSqTxjP7mOqhnXV78+FCaqQmqhF1E0toVfnkRTdPcjMXisVtCvOjL085j0ETySS33s8LtpS8w==", "dev": true, "dependencies": { "@stylistic/stylelint-plugin": "2.1.2", @@ -12707,28 +12707,28 @@ } }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.0.0.tgz", + "integrity": "sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==", "dev": true, "dependencies": { - "flat-cache": "^4.0.0" + "flat-cache": "^5.0.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=18" } }, "node_modules/stylelint/node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz", + "integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==", "dev": true, "dependencies": { - "flatted": "^3.2.9", + "flatted": "^3.3.1", "keyv": "^4.5.4" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/stylelint/node_modules/globby": { diff --git a/package.json b/package.json index 968c01b40..313f86db2 100644 --- a/package.json +++ b/package.json @@ -51,8 +51,8 @@ "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", "sass": "1.77.2", - "stylelint": "16.6.0", - "stylelint-config-htmlacademy": "4.2.2", + "stylelint": "16.6.1", + "stylelint-config-htmlacademy": "4.2.3", "w3c-html-validator": "1.8.1" } } From 08592bdea197c5d60ca6a12ac89628983fcc43bd Mon Sep 17 00:00:00 2001 From: Nikolai Shabalin Date: Sun, 9 Jun 2024 12:05:09 +0300 Subject: [PATCH 106/116] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 98bffc922..5e9aeaf4b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", - "sass": "1.77.2", + "sass": "1.77.4", "stylelint": "16.6.1", "stylelint-config-htmlacademy": "4.2.3", "w3c-html-validator": "1.8.1" @@ -11420,9 +11420,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.77.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.2.tgz", - "integrity": "sha512-eb4GZt1C3avsX3heBNlrc7I09nyT00IUuo4eFhAbeXWU2fvA7oXI53SxODVAA+zgZCk9aunAZgO+losjR3fAwA==", + "version": "1.77.4", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.4.tgz", + "integrity": "sha512-vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index 313f86db2..21b254ab9 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "postcss": "8.4.38", "postcss-lightningcss": "1.0.0", "postcss-url": "10.1.3", - "sass": "1.77.2", + "sass": "1.77.4", "stylelint": "16.6.1", "stylelint-config-htmlacademy": "4.2.3", "w3c-html-validator": "1.8.1" From 32542abc06837a811d9915a2cc2663875010b038 Mon Sep 17 00:00:00 2001 From: firefoxic Date: Tue, 9 Jul 2024 16:23:40 +0300 Subject: [PATCH 107/116] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D1=8C=20?= =?UTF-8?q?=D0=B8=D0=BD=D1=84=D0=BE=20=D0=BE=20=D1=84=D0=B8=D0=BA=D1=81?= =?UTF-8?q?=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=20=D0=B2=20Window?= =?UTF-8?q?s=20(#95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index bd98f3635..dd9eaf7f4 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,8 @@ npm ci ``` + > В редких случаях в Windows отсутствует необходимый системный компонент, без которого установка зависимостей завершается ошибкой `Error: Cannot find module ../lightningcss.win32-x64-msvc.node`. Чтобы это исправить, нужно доустановить этот системный модуль: для [64-битной](https://aka.ms/vs/17/release/vc_redist.x64.exe) или [32-битной](https://aka.ms/vs/17/release/vc_redist.x86.exe) системы. После чего перезагрузиться и повторить установку зависимостей. + 3. Начните работу (должен запуститься браузер): ```shell From 2af84fdac36b38f7f386c8e83a0200e65a973ba9 Mon Sep 17 00:00:00 2001 From: baranovdmitriy87 <147241780+baranovdmitriy87@users.noreply.github.com> Date: Wed, 16 Oct 2024 14:14:48 +0300 Subject: [PATCH 108/116] =?UTF-8?q?=D0=92=D0=B5=D1=80=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=B5=D1=82=20=D1=85=D0=B5=D0=B4=D0=B5=D1=80=20=D1=81=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB?= =?UTF-8?q?=D1=8C=D1=81=D0=BA=D0=B8=D0=BC=20=D0=BC=D0=B5=D0=BD=D1=8E=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=BC=D0=BE=D0=B1=D0=B8=D0=BB=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/fonts/Montserrat-Bold.woff | Bin 0 -> 138900 bytes source/fonts/Montserrat-Bold.woff2 | Bin 0 -> 91700 bytes source/fonts/Montserrat-Medium.woff | Bin 0 -> 22384 bytes source/fonts/Montserrat-Medium.woff2 | Bin 0 -> 17244 bytes source/fonts/Montserrat-Regular.woff | Bin 0 -> 22328 bytes source/fonts/Montserrat-Regular.woff2 | Bin 0 -> 17208 bytes source/fonts/Montserrat-SemiBold.woff | Bin 0 -> 22320 bytes source/fonts/Montserrat-SemiBold.woff2 | Bin 0 -> 17236 bytes source/icons/header/cart.svg | 1 + source/icons/header/enter.svg | 1 + source/images/logo-desktop.svg | 1 + source/images/logo-mobile.svg | 1 + source/images/logo-tablet.svg | 1 + source/index.html | 154 ++++++++++++++++++++++--- source/scripts/index.js | 14 +++ source/styles/blocks/header.scss | 127 +++++++++++++++++++- source/styles/blocks/main-nav.scss | 13 +++ source/styles/blocks/site-list.scss | 25 ++++ source/styles/blocks/user-menu.scss | 18 +++ source/styles/common/fonts.scss | 40 ++++++- source/styles/common/global.scss | 40 ++++++- source/styles/common/mixins.scss | 6 + source/styles/common/variables.scss | 30 ++++- source/styles/styles.scss | 3 + 24 files changed, 456 insertions(+), 19 deletions(-) create mode 100644 source/fonts/Montserrat-Bold.woff create mode 100644 source/fonts/Montserrat-Bold.woff2 create mode 100644 source/fonts/Montserrat-Medium.woff create mode 100644 source/fonts/Montserrat-Medium.woff2 create mode 100644 source/fonts/Montserrat-Regular.woff create mode 100644 source/fonts/Montserrat-Regular.woff2 create mode 100644 source/fonts/Montserrat-SemiBold.woff create mode 100644 source/fonts/Montserrat-SemiBold.woff2 create mode 100644 source/icons/header/cart.svg create mode 100644 source/icons/header/enter.svg create mode 100644 source/images/logo-desktop.svg create mode 100644 source/images/logo-mobile.svg create mode 100644 source/images/logo-tablet.svg create mode 100644 source/styles/blocks/main-nav.scss create mode 100644 source/styles/blocks/site-list.scss create mode 100644 source/styles/blocks/user-menu.scss create mode 100644 source/styles/common/mixins.scss diff --git a/source/fonts/Montserrat-Bold.woff b/source/fonts/Montserrat-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..b475832c847b2b669b596c22815551cb7540683f GIT binary patch literal 138900 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

s`KhhE#P_7i%ujPe2n< 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 JPiiQr{{hJ+{KNnN literal 0 HcmV?d00001 diff --git a/source/fonts/Montserrat-Medium.woff b/source/fonts/Montserrat-Medium.woff new file mode 100644 index 0000000000000000000000000000000000000000..8502b7ec2c943feca59b035ea5b69571fd7a135b GIT binary patch literal 22384 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 literal 0 HcmV?d00001 diff --git a/source/fonts/Montserrat-Medium.woff2 b/source/fonts/Montserrat-Medium.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8796f9aa357d8cf096f506c33d17c24611462b44 GIT binary patch literal 17244 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 vk`jxF=At`ZIZT?z3YVa?TnA literal 0 HcmV?d00001 diff --git a/source/fonts/Montserrat-Regular.woff b/source/fonts/Montserrat-Regular.woff new file mode 100644 index 0000000000000000000000000000000000000000..fd7ab503acd6661e3942fd8d17b058d2315128ad GIT binary patch literal 22328 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 literal 0 HcmV?d00001 diff --git a/source/fonts/Montserrat-Regular.woff2 b/source/fonts/Montserrat-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..10fc9b75f0179e6b8c3404402d26674f02f3051a GIT binary patch literal 17208 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 literal 0 HcmV?d00001 diff --git a/source/fonts/Montserrat-SemiBold.woff2 b/source/fonts/Montserrat-SemiBold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8d13400089d05734bb3a19749e02fb6a73d067d1 GIT binary patch literal 17236 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 nI8}V68y2&HZ@39DTn(3IG5A@U@EW literal 0 HcmV?d00001 diff --git a/source/icons/header/cart.svg b/source/icons/header/cart.svg new file mode 100644 index 000000000..a4342b2fd --- /dev/null +++ b/source/icons/header/cart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/icons/header/enter.svg b/source/icons/header/enter.svg new file mode 100644 index 000000000..e96e976d4 --- /dev/null +++ b/source/icons/header/enter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/images/logo-desktop.svg b/source/images/logo-desktop.svg new file mode 100644 index 000000000..4321f2700 --- /dev/null +++ b/source/images/logo-desktop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/images/logo-mobile.svg b/source/images/logo-mobile.svg new file mode 100644 index 000000000..34d181845 --- /dev/null +++ b/source/images/logo-mobile.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/images/logo-tablet.svg b/source/images/logo-tablet.svg new file mode 100644 index 000000000..e0f4019f1 --- /dev/null +++ b/source/images/logo-tablet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/index.html b/source/index.html index ccbe6e596..a29f600af 100644 --- a/source/index.html +++ b/source/index.html @@ -1,17 +1,143 @@ - - - Название проекта - - - - - - -

Шапка
-
-

Страница для старта

-
- + + + + Интернет-магазин кофейных напитков drink2go + + + + + + + + + +
+
+
+ + Интернет-магазин + кофейных напитков + +
+ + + +
+ +
+ +
+ +
+

Интернет-магазин кофейных напитков drink2go

+
+ Новинка! +

Декаф Флэт Уайт

+

+ Свежесваренный кофе без кофеина из Эфиопии с натуральным фермерским молоком — то, что нужно для расслабления + после тяжёлого рабочего дня +

+ 295₽ + 225₽ + + Заказать + +
+
+ + +
+
+ Преимущества +

Главные причины выбрать Drink2Go

+
    +
  • +

    Скорость

    +

    + Готовый напиток всегда под рукой — просто открой банку +

    +
  • +
  • +

    Удобство

    +

    + Легко помещается и в карман, и в маленькую сумочку +

    +
  • +
  • +

    Бодрость

    +

    + Сбалансированная доза кофеина даст мощный заряд энергии +

    +
  • +
  • +

    Экологичность

    +

    + Вся упаковка сделана из перерабатываемых материалов +

    +
  • +
+
+
+ + +
+
+ Каталог +

Каталог кофейных напитков

+ Цена + +
+
+ +
+
+ +
+ + diff --git a/source/scripts/index.js b/source/scripts/index.js index 7a738ceaa..4a2267d0c 100644 --- a/source/scripts/index.js +++ b/source/scripts/index.js @@ -1 +1,15 @@ /* в этот файл добавляет скрипты*/ +const header = document.querySelector('.header'); +const headerToggle = document.querySelector('.js-toggle-button'); + +header.classList.remove('header--nojs'); + +headerToggle.addEventListener('click', function () { + if (header.classList.contains('header--closed')) { + header.classList.remove('header--closed'); + header.classList.add('header--opened'); + } else { + header.classList.add('header--closed'); + header.classList.remove('header--opened'); + } +}); diff --git a/source/styles/blocks/header.scss b/source/styles/blocks/header.scss index 797f7c4bf..d0b37b91a 100644 --- a/source/styles/blocks/header.scss +++ b/source/styles/blocks/header.scss @@ -1,5 +1,128 @@ .header { - background-color: #663399; - color: #ffffff; + background-color: $white; padding: 10px 15px; } + +.header__wrapper { + @media (max-width: $mobile-width-only) { + position: relative; + width: 320px; + height: 60px; + margin: 0 auto; + display: flex; + align-items: center; + } + + @media (min-width: $tablet-width) { + width: 768px; + display: flex; + } +} + +.header__text-title-desktop--hidden { + display: none; + + @media (min-width: $desktop-width) { + display: inline; + } +} + +.js-toggle-button { + position: absolute; + content: ""; + width: 24px; + height: 24px; + right: 20px; + z-index: 2; + background-color: $white; + display: block; + border: none; + cursor: pointer; + + &:hover, + &:active { + opacity: 0.7; + } + + @media (min-width: $tablet-width) { + display: none; + } +} + +.header--closed .js-toggle-button::before { + content: ""; + position: absolute; + top: 2px; + right: 0; + width: 24px; + height: 2px; + background-color: $base-black; + box-shadow: 0 8px 0 0 $base-black, 0 16px 0 0 $base-black; +} + +.header--closed .js-toggle-button:active::before { + background-color: fade($base-black, 30%); + box-shadow: + 0 8px 0 0 fade($base-black, 30%), + 0 16px 0 0 fade($base-black, 30%); +} + +@media (max-width: $mobile-width-only) { + .header--closed .main-nav__wrapper { + display: none; + } + + .header--closed .site-list__link { + padding-right: 70px; + padding-left: 70px; + text-align: center; + } + + .header--opened .main-nav__wrapper { + width: 100%; + position: absolute; + top: 66px; + right: 0; + z-index: 10; + text-align: center; + background-color: $white; + } + + .header--nojs .js-toggle-button { + display: none; + } + + .header--nojs .main-nav__wrapper { + position: static; + min-height: 0; + display: block; + } +} + +.header--opened .js-toggle-button { + @media (max-width: $mobile-width-only) { + background-color: $white; + display: block; + + &::before, + &::after { + content: ""; + position: absolute; + top: 11px; + right: 0; + width: 24px; + height: 1px; + background-color: $base-black; + } + + &::before { + transform: rotate(50grad); + } + + &::after { + transform: rotate(-50grad); + box-shadow: none; + } + } +} + diff --git a/source/styles/blocks/main-nav.scss b/source/styles/blocks/main-nav.scss new file mode 100644 index 000000000..bc565fa89 --- /dev/null +++ b/source/styles/blocks/main-nav.scss @@ -0,0 +1,13 @@ +.main-nav__wrapper { + @media (min-width: $tablet-width) { + width: 440px; + } + + @media (min-width: $desktop-width) { + width: 478px; + } +} + +.main-nav__list { + @include list-reset; +} diff --git a/source/styles/blocks/site-list.scss b/source/styles/blocks/site-list.scss new file mode 100644 index 000000000..c90b68fb2 --- /dev/null +++ b/source/styles/blocks/site-list.scss @@ -0,0 +1,25 @@ +.site-list a { + display: block; + font-family: $montserrat-medium; + font-size: 20px; + font-weight: 400; + line-height: 20px; + text-transform: uppercase; + // border-bottom: 1px solid #e6e6e6; + + @media (max-width: $mobile-width-only) { + padding: 23px 0 22px; + outline-offset: unset; + } + + @media (min-width: $tablet-width) { + border: none; + font-size: 18px; + line-height: 24px; + } + + @media (min-width: $desktop-width) { + font-size: 20px; + line-height: 30px; + } +} diff --git a/source/styles/blocks/user-menu.scss b/source/styles/blocks/user-menu.scss new file mode 100644 index 000000000..3bd46bfe5 --- /dev/null +++ b/source/styles/blocks/user-menu.scss @@ -0,0 +1,18 @@ +.user-menu { + @include list-reset; +} + +.user-menu__wrapper { + + @media (max-width: $mobile-width-only) { + display: none; + } + + @media (min-width: $tablet-width) { + width: 440px; + } + + @media (min-width: $desktop-width) { + width: 478px; + } +} diff --git a/source/styles/common/fonts.scss b/source/styles/common/fonts.scss index 6bb897da1..7e0bf9688 100644 --- a/source/styles/common/fonts.scss +++ b/source/styles/common/fonts.scss @@ -1 +1,39 @@ -/* здесь подключите шрифты */ +@font-face { + font-family: "Montserrat Regular"; + font-weight: 400; + font-style: normal; + font-display: swap; + src: + url("../../fonts/Montserrat-Regular.woff2") format("woff2"), + url("../../fonts/Montserrat-Regular.woff") format("woff"); +} + +@font-face { + font-family: "Montserrat Medium"; + font-weight: 500; + font-style: normal; + font-display: swap; + src: + url("../../fonts/Montserrat-Medium.woff2") format("woff2"), + url("../../fonts/Montserrat-Medium.woff") format("woff"); +} + +@font-face { + font-family: "Montserrat Semi Bold"; + font-weight: 600; + font-style: normal; + font-display: swap; + src: + url("../../fonts/Montserrat-SemiBold.woff2") format("woff2"), + url("../../fonts/Montserrat-SemiBold.woff") format("woff"); +} + +@font-face { + font-family: "Montserrat Bold"; + font-weight: 700; + font-style: normal; + font-display: swap; + src: + url("../../fonts/Montserrat-Bold.woff2") format("woff2"), + url("../../fonts/Montserrat-Bold.woff") format("woff"); +} diff --git a/source/styles/common/global.scss b/source/styles/common/global.scss index ac721bd7a..4599e6e3c 100644 --- a/source/styles/common/global.scss +++ b/source/styles/common/global.scss @@ -1 +1,39 @@ -/* здесь используйте глобальные селекторы img, body, html и так далее */ +*, +*::before, +*::after { + box-sizing: border-box; +} + +html, +body { + height: 100%; +} + +body { + margin: 0 auto; + color: $base-black; + overflow-x: hidden; +} + +img { + max-width: 100%; + height: auto; + object-fit: contain; + border-style: none; +} + +a { + color: inherit; + text-decoration: none; +} + +.visually-hidden { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + border: 0; + clip: rect(0 0 0 0); + overflow: hidden; +} diff --git a/source/styles/common/mixins.scss b/source/styles/common/mixins.scss new file mode 100644 index 000000000..bff71e348 --- /dev/null +++ b/source/styles/common/mixins.scss @@ -0,0 +1,6 @@ + /*reset default styles (ul)*/ +@mixin list-reset { + margin: 0; + padding: 0; + list-style: none; +} diff --git a/source/styles/common/variables.scss b/source/styles/common/variables.scss index 8bcd34bfc..10f1cce85 100644 --- a/source/styles/common/variables.scss +++ b/source/styles/common/variables.scss @@ -1 +1,29 @@ -/* здесь используйте глобальные переменные */ +/* Fonts*/ +$montserrat-regular: "Montserrat Regular", "Arial", sans-serif; +$montserrat-medium: "Montserrat Medium", "Arial", sans-serif; +$montserrat-semi-bold: "Montserrat Semi Bold", "Arial", sans-serif; +$montserrat-bold: "Montserrat Bold", "Arial", sans-serif; + +/*Base colors*/ +$white: #ffffff; +$base-black: #333333; +$base-grey: #bdbdbd; +$base-primary: #7859cf; +$base-secondary: #f0ebff; + +/*Background colors*/ +$flat-white: #f3ebe1; +$lavender-latte: #eae6fc; +$espresso: #e5e6e8; +$background-lightest-grey: #f8f8f8; + +/* Alt colors*/ +$light-grey: #e2e2e2; +$primary-lighter: #9070ec; +$primary-darker: #593cac; + +/* Width*/ +$mobile-width: 320px; +$mobile-width-only: 767px; +$tablet-width: 768px; +$desktop-width: 1440px; diff --git a/source/styles/styles.scss b/source/styles/styles.scss index 76101881a..df56de00f 100644 --- a/source/styles/styles.scss +++ b/source/styles/styles.scss @@ -2,6 +2,9 @@ @import "./common/variables.scss"; @import "./common/global.scss"; @import "./common/fonts.scss"; +@import "./common/mixins.scss"; /* BLOCKS */ @import "./blocks/header.scss"; +@import "./blocks/main-nav.scss"; +@import "./blocks/user-menu.scss"; From 2fde80ce0d4f2e89c5e4288328d93ee54224b76d Mon Sep 17 00:00:00 2001 From: baranovdmitriy87 <147241780+baranovdmitriy87@users.noreply.github.com> Date: Wed, 16 Oct 2024 14:56:28 +0300 Subject: [PATCH 109/116] first commit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dd9eaf7f4..7adc4ed24 100644 --- a/README.md +++ b/README.md @@ -314,3 +314,4 @@ ``` Таким образом, вы можете удобно организовать и внедрить сторонние библиотеки в ваш проект, сохраняя их структуру в папке `source/vendor/`. +# cofee-shop-drink2go From 09290a5980f4a20406d7972e4dc40270241ddb83 Mon Sep 17 00:00:00 2001 From: baranovdmitriy87 <147241780+baranovdmitriy87@users.noreply.github.com> Date: Wed, 16 Oct 2024 14:59:32 +0300 Subject: [PATCH 110/116] first commit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 7adc4ed24..a917b16e4 100644 --- a/README.md +++ b/README.md @@ -315,3 +315,4 @@ Таким образом, вы можете удобно организовать и внедрить сторонние библиотеки в ваш проект, сохраняя их структуру в папке `source/vendor/`. # cofee-shop-drink2go +# cofee-shop-drink2go From a44270ea2e21870abfb23817a46ffdac62a9f159 Mon Sep 17 00:00:00 2001 From: baranovdmitriy87 <147241780+baranovdmitriy87@users.noreply.github.com> Date: Wed, 16 Oct 2024 15:01:53 +0300 Subject: [PATCH 111/116] first commit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a917b16e4..4f20c3a44 100644 --- a/README.md +++ b/README.md @@ -316,3 +316,4 @@ Таким образом, вы можете удобно организовать и внедрить сторонние библиотеки в ваш проект, сохраняя их структуру в папке `source/vendor/`. # cofee-shop-drink2go # cofee-shop-drink2go +# html2-basic-template From 833227f56ef935e51ecadc79b6b1cb9a3e2fcd66 Mon Sep 17 00:00:00 2001 From: baranovdmitriy87 <147241780+baranovdmitriy87@users.noreply.github.com> Date: Wed, 16 Oct 2024 15:15:40 +0300 Subject: [PATCH 112/116] first commit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4f20c3a44..fd5d17834 100644 --- a/README.md +++ b/README.md @@ -317,3 +317,4 @@ # cofee-shop-drink2go # cofee-shop-drink2go # html2-basic-template +# cofee-shop-drink2go From db3a0b03d45c24c4793fe2657645bef32eaa50b8 Mon Sep 17 00:00:00 2001 From: baranovdmitriy87 <147241780+baranovdmitriy87@users.noreply.github.com> Date: Wed, 16 Oct 2024 17:00:20 +0300 Subject: [PATCH 113/116] =?UTF-8?q?=D0=94=D0=B5=D0=BB=D0=B0=D0=B5=D1=82=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B7=D0=BC=D0=B5=D1=82=D0=BA=D1=83=20=D0=B8=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D1=83=D0=B5=D1=82=20=D1=85?= =?UTF-8?q?=D0=B5=D0=B4=D0=B5=D1=80=20=D0=B4=D0=BB=D1=8F=20=D0=BC=D0=BE?= =?UTF-8?q?=D0=B1=D0=B8=D0=BB=D1=8C=D0=BD=D0=BE=D0=B9=20=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D1=81=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/index.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/index.html b/source/index.html index a29f600af..b394523e3 100644 --- a/source/index.html +++ b/source/index.html @@ -58,6 +58,9 @@
  • Войти + + +
  • @@ -140,4 +143,5 @@

    Каталог кофейных напитков

    + From 083068f259f93f2abefd0db648817c2593fdf1ea Mon Sep 17 00:00:00 2001 From: baranovdmitriy87 <147241780+baranovdmitriy87@users.noreply.github.com> Date: Wed, 16 Oct 2024 22:39:39 +0300 Subject: [PATCH 114/116] =?UTF-8?q?=D0=94=D0=B5=D0=B4=D0=B0=D0=B5=D1=82=20?= =?UTF-8?q?=D1=82=D0=B0=D0=B1=D0=BB=D0=B5=D1=82=20=D0=B8=20=D0=BC=D0=BE?= =?UTF-8?q?=D0=B1=D0=B0=D0=B9=D0=BB-=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=B8=20=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D1=83?= =?UTF-8?q?=D0=B5=D0=B8=20=D1=81=D0=BE=D0=B3=D0=BB=D0=B0=D1=81=D0=BD=D0=BE?= =?UTF-8?q?=20=D0=BC=D0=B0=D0=BA=D0=B5=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/index.html | 25 ++++--- source/styles/blocks/header.scss | 24 ++++-- source/styles/blocks/main-nav.scss | 11 ++- source/styles/blocks/site-list.scss | 111 ++++++++++++++++++++++++++-- source/styles/blocks/user-menu.scss | 55 ++++++++++++-- source/styles/common/mixins.scss | 18 +++-- source/styles/styles.scss | 1 + 7 files changed, 208 insertions(+), 37 deletions(-) diff --git a/source/index.html b/source/index.html index b394523e3..c66e7d0f9 100644 --- a/source/index.html +++ b/source/index.html @@ -35,20 +35,20 @@