diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index aa9f2c0b..00000000 --- a/.eslintignore +++ /dev/null @@ -1,8 +0,0 @@ -web/static/**/*.min.* -node_modules/* -.mypy_cache -.pytest_cache -.tox -web/static/lib/* -web/static/fonts/* -web/static/css/* diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 14c24943..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - "env": { - "browser": true - }, - "extends": "eslint:recommended", - "parserOptions": { - "ecmaVersion": 12 - }, - "rules": { - // "no-undef": "off" - }, - "globals": { - "CodeMirror": "readonly", - "flatpickr": "readonly" - } -}; diff --git a/.github/workflows/lighthouse.yml b/.github/workflows/lighthouse.yml index e9b85e31..5d2cd8e4 100644 --- a/.github/workflows/lighthouse.yml +++ b/.github/workflows/lighthouse.yml @@ -35,7 +35,7 @@ jobs: uses: christopherpickering/no-azure-action@v1.1.0 - name: ⎔ Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 18 @@ -45,7 +45,7 @@ jobs: useLockFile: false - name: 🐍 Setup python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.10' diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7500aa98..77c54ffb 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -14,7 +14,7 @@ jobs: uses: actions/checkout@v4 - name: ⎔ Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 18 @@ -24,7 +24,7 @@ jobs: useLockFile: false - name: 🐍 Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.10' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5dd53a8d..fb62ae62 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ jobs: uses: christopherpickering/no-azure-action@v1.1.0 - name: ⎔ Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 18 @@ -33,7 +33,7 @@ jobs: useLockFile: false - name: 🐍 Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.10' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 711b2154..be5b165d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -45,7 +45,7 @@ jobs: uses: christopherpickering/no-azure-action@v1.1.0 - name: ⎔ Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 18 @@ -55,7 +55,7 @@ jobs: useLockFile: false - name: 🐍 Setup python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} @@ -85,7 +85,7 @@ jobs: REDIS_PORT: 6379 - name: 📤 Upload Coverage - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} files: ./coverage.xml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1f0ba906..aa73b5ed 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -21,7 +21,7 @@ exclude: > repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 + rev: v4.6.0 hooks: - id: pretty-format-json args: [--autofix] @@ -30,18 +30,18 @@ repos: - id: check-yaml - id: end-of-file-fixer - repo: https://github.com/PyCQA/isort - rev: 5.12.0 + rev: 5.13.2 hooks: - id: isort exclude: migrations* | docs* additional_dependencies: [toml] - repo: https://github.com/psf/black - rev: 23.9.1 + rev: 24.3.0 hooks: - id: black language_version: python3.9 - repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks - rev: v2.10.0 + rev: v2.12.0 hooks: - id: pretty-format-toml args: [--autofix] @@ -50,6 +50,6 @@ repos: - id: pretty-format-yaml args: [--autofix, --indent, '2'] - repo: https://github.com/Riverside-Healthcare/djLint - rev: v1.33.0 + rev: v1.34.1 hooks: - id: djlint-jinja diff --git a/babel.config.js b/babel.config.js index 5c7c7c58..eab28de2 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,5 +1,5 @@ -module.exports = function (api) { - api.cache(true); +export default function (api) { + api.cache(false); const presets = [['@babel/preset-env']]; const plugins = []; return { diff --git a/config.py b/config.py index 017d38f7..0a3a52bd 100644 --- a/config.py +++ b/config.py @@ -348,7 +348,7 @@ class TestConfig(DevConfig): # pylint: disable=too-few-public-methods SQLALCHEMY_DATABASE_URI = os.environ.get( "DATABASE_URL", - "postgresql+psycopg2://postgres@localhost/atlas_hub_scrap_test" + "postgresql+psycopg2://postgres@localhost/atlas_hub_scrap_test", # "sqlite:///../test.sqlite", ).replace("postgres://", "postgresql://") diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..71dc2d0f --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,39 @@ +import globals from "globals"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import js from "@eslint/js"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +export default [{ + ignores: [ + "web/static/**/*.min.*", + "node_modules/*", + "**/.mypy_cache", + "**/.pytest_cache", + "**/.tox", + "web/static/lib/*", + "web/static/fonts/*", + "web/static/css/*", + ], +}, ...compat.extends("eslint:recommended"), { + languageOptions: { + globals: { + ...globals.browser, + CodeMirror: "readonly", + flatpickr: "readonly", + }, + + ecmaVersion: 12, + sourceType: "script", + }, + + rules: {}, +}]; diff --git a/gulpfile.mjs b/gulpfile.mjs index 89958507..87248b3f 100644 --- a/gulpfile.mjs +++ b/gulpfile.mjs @@ -1,56 +1,100 @@ -import gulp from 'gulp'; +import pkg from 'gulp'; +const { src, dest, task, parallel,series } = pkg; import autoprefexer from 'gulp-autoprefixer'; import * as dartSass from 'sass'; import gulpSass from 'gulp-sass'; const sass = gulpSass(dartSass); - +import postcss from 'gulp-postcss'; import replace from 'gulp-replace'; -import fontawesomeSubset from 'fontawesome-subset'; +import {fontawesomeSubset} from 'fontawesome-subset'; import {deleteSync} from 'del'; import purgecss from 'gulp-purgecss'; -import cssnano from 'gulp-cssnano'; +import cssnano from 'cssnano'; -gulp.task('font:inter', function() { - return gulp.src('node_modules/@fontsource/inter/**/*').pipe(replace(/\.\/files\//g, '/static/fonts/inter/files/')).pipe(gulp.dest('web/static/fonts/inter')) +task('font:inter', function() { + return src('node_modules/@fontsource/inter/**/*', { removeBOM: false }) + .pipe(replace(/\.\/files\//g, '/static/fonts/inter/files/')) + .pipe(dest('web/static/fonts/inter')) }); -gulp.task('font:rasa', function() { - return gulp.src('node_modules/@fontsource/rasa/**/*').pipe(replace(/\.\/files\//g, '/static/fonts/rasa/files/')).pipe(gulp.dest('web/static/fonts/rasa')) +task('font:rasa', function() { + return src('node_modules/@fontsource/rasa/**/*', { removeBOM: false }) + .pipe(replace(/\.\/files\//g, '/static/fonts/rasa/files/')) + .pipe(dest('web/static/fonts/rasa')) }); -gulp.task('fontawesome', function(done) { +task('fontawesome', function(done) { deleteSync('web/static/fonts/fontawesome/webfonts', {force:true}); - fontawesomeSubset.fontawesomeSubset({ + fontawesomeSubset({ regular:['circle-play', 'circle-question'], - solid: ['triangle-exclamation', 'angle-down', 'circle-pause', 'right-to-bracket', 'users','eye', 'eye-slash', 'arrow-up-right-from-square', 'calendar', 'circle-stop','circle-question', 'circle-notch','circle-xmark', 'circle-check', 'angle-right', 'file-arrow-down', 'circle-info', 'magnifying-glass', 'pen-to-square', 'trash', 'delete-left', 'sort', 'terminal', 'list', 'ban', 'toggle-on', 'toggle-off', 'plus', 'rotate', 'download', 'copy', 'check'] + solid: ['triangle-exclamation' + , 'angle-down' + , 'circle-pause' + , 'right-to-bracket' + , 'users' + , 'eye' + , 'eye-slash' + , 'arrow-up-right-from-square' + , 'calendar' + , 'circle-stop' + , 'circle-question' + , 'circle-notch' + , 'circle-xmark' + , 'circle-check' + , 'angle-right' + , 'file-arrow-down' + , 'circle-info' + , 'magnifying-glass' + , 'pen-to-square' + , 'trash' + , 'delete-left' + , 'sort' + , 'terminal' + , 'list' + , 'ban' + , 'toggle-on' + , 'toggle-off' + , 'plus' + , 'rotate' + , 'download' + , 'copy' + , 'check'] }, 'web/static/fonts/fontawesome/webfonts') done(); }); -gulp.task('sass', function() { - return gulp.src("web/static/assets/**/*.scss") +task('sass', function() { + const plugins = [ + cssnano({ + preset: ['default', { discardComments: true }], + }), + ]; + return src("web/static/assets/**/*.scss") .pipe(sass().on('error', sass.logError)) + .pipe(postcss(plugins)) .pipe( purgecss({ - content: ['web/static/lib/**/*.js', 'web/static/js/**/*.js', 'web/templates/**/*.html.j2', 'runner/templates/**/*.html.j2', 'scheduler/templates/**/*.html.j2'], - safelist: ['has-text-success', 'mr-3', 'has-text-warning'], - whitelist: ['has-text-success', 'mr-3', 'has-text-warning'] + content: ['web/static/lib/**/*.js' + , 'web/static/js/**/*.js' + , 'web/templates/**/*.html.j2' + , 'runner/templates/**/*.html.j2' + , 'scheduler/templates/**/*.html.j2' + , 'web/web/*.py'], + safelist: [], + whitelist: [] }) ) - .pipe(autoprefexer({ - overrideBrowserslist: ['last 2 versions'] - })) - .pipe(cssnano()) - .pipe(gulp.dest('web/static/css/')) + .pipe(autoprefexer()) + .pipe(dest('web/static/css/')) }); -gulp.task('build', gulp.parallel('font:inter','font:rasa', gulp.series('fontawesome','sass'))); +task('build', parallel('font:inter','font:rasa', series('fontawesome','sass'))); -gulp.task('watch', gulp.series('build', function (cb) { - gulp.watch('web/static/assets/**/*.scss', gulp.series('sass')); - gulp.watch('web/fonts/fontawesome/**/*.scss', gulp.series('fontawesome','sass')); - gulp.watch('web/**/*.html*', gulp.series('fontawesome', 'sass')); +task('watch', series('build', function (cb) { + watch('web/static/assets/**/*.scss', series('sass')); + watch('web/fonts/fontawesome/**/*.scss', series('fontawesome','sass')); + watch('web/**/*.html*', series('fontawesome', 'sass')); cb(); })); diff --git a/migrations/versions/41eb15d37c84_.py b/migrations/versions/41eb15d37c84_.py new file mode 100644 index 00000000..2f9950f4 --- /dev/null +++ b/migrations/versions/41eb15d37c84_.py @@ -0,0 +1,99 @@ +"""empty message + +Revision ID: 41eb15d37c84 +Revises: e075a9d31b1a +Create Date: 2024-02-13 20:17:23.622449 + +""" +import sqlalchemy as sa +from alembic import op + +# revision identifiers, used by Alembic. +revision = '41eb15d37c84' +down_revision = 'e075a9d31b1a' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('connection_database', schema=None) as batch_op: + batch_op.create_index(batch_op.f('ix_connection_database_connection_id'), ['connection_id'], unique=False) + + with op.batch_alter_table('project', schema=None) as batch_op: + batch_op.alter_column('cron_year', + existing_type=sa.INTEGER(), + type_=sa.String(length=120), + existing_nullable=True) + batch_op.alter_column('cron_month', + existing_type=sa.INTEGER(), + type_=sa.String(length=120), + existing_nullable=True) + batch_op.alter_column('cron_week', + existing_type=sa.INTEGER(), + type_=sa.String(length=120), + existing_nullable=True) + batch_op.alter_column('cron_day', + existing_type=sa.INTEGER(), + type_=sa.String(length=120), + existing_nullable=True) + batch_op.alter_column('cron_week_day', + existing_type=sa.INTEGER(), + type_=sa.String(length=120), + existing_nullable=True) + batch_op.alter_column('cron_hour', + existing_type=sa.INTEGER(), + type_=sa.String(length=120), + existing_nullable=True) + batch_op.alter_column('cron_min', + existing_type=sa.INTEGER(), + type_=sa.String(length=120), + existing_nullable=True) + batch_op.alter_column('cron_sec', + existing_type=sa.INTEGER(), + type_=sa.String(length=120), + existing_nullable=True) + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('project', schema=None) as batch_op: + batch_op.alter_column('cron_sec', + existing_type=sa.String(length=120), + type_=sa.INTEGER(), + existing_nullable=True) + batch_op.alter_column('cron_min', + existing_type=sa.String(length=120), + type_=sa.INTEGER(), + existing_nullable=True) + batch_op.alter_column('cron_hour', + existing_type=sa.String(length=120), + type_=sa.INTEGER(), + existing_nullable=True) + batch_op.alter_column('cron_week_day', + existing_type=sa.String(length=120), + type_=sa.INTEGER(), + existing_nullable=True) + batch_op.alter_column('cron_day', + existing_type=sa.String(length=120), + type_=sa.INTEGER(), + existing_nullable=True) + batch_op.alter_column('cron_week', + existing_type=sa.String(length=120), + type_=sa.INTEGER(), + existing_nullable=True) + batch_op.alter_column('cron_month', + existing_type=sa.String(length=120), + type_=sa.INTEGER(), + existing_nullable=True) + batch_op.alter_column('cron_year', + existing_type=sa.String(length=120), + type_=sa.INTEGER(), + existing_nullable=True) + + with op.batch_alter_table('connection_database', schema=None) as batch_op: + batch_op.drop_index(batch_op.f('ix_connection_database_connection_id')) + + # ### end Alembic commands ### diff --git a/package-lock.json b/package-lock.json index d40af78f..ae38e71e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,57 +1,62 @@ { "name": "atlas_automation_hub", - "version": "2.10.4", + "version": "2.12.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "atlas_automation_hub", - "version": "2.10.4", + "version": "2.12.7", "hasInstallScript": true, "license": "AGPL-3.0-or-later", "dependencies": { - "@babel/preset-env": "^7.22.20", - "@fontsource/inter": "5.0.3", - "@fontsource/rasa": "5.0.3", - "@hotwired/turbo": "^7.3.0", - "@rollup/plugin-babel": "^6.0.3", - "@rollup/plugin-commonjs": "^25.0.4", - "@rollup/plugin-json": "^6.0.0", - "@rollup/plugin-node-resolve": "^15.2.1", - "bulma": "0.9.4", - "bulma-checkradio": "2.1.3", - "bulma-switch": "2.0.4", + "@babel/preset-env": "^7.24.8", + "@fontsource/inter": "5.0.19", + "@fontsource/rasa": "5.0.20", + "@hotwired/turbo": "^8.0.4", + "@rollup/plugin-babel": "^6.0.4", + "@rollup/plugin-commonjs": "^26.0.1", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "bulma": "^1.0.1", + "bulma-checkradio": "^2.1.3", + "bulma-switch": "^2.0.4", "bulma-tooltip": "3.0.2", - "del": "7.0.0", + "del": "7.1.0", "fontawesome-subset": "4.4.0", - "gulp": "4.0.2", - "gulp-autoprefixer": "8.0.0", + "git-cz": "^4.9.0", + "gulp": "5.0.0", + "gulp-autoprefixer": "9.0.0", "gulp-replace": "1.1.4", "gulp-sass": "5.1.0", "npm-run-all": "^4.1.5", - "rollup": "^3.29.2", - "sass": "^1.67.0", - "uglify-js": "^3.17.4" + "rollup": "^4.19.0", + "sass": "^1.77.8", + "uglify-js": "^3.18.0" }, "devDependencies": { - "@fortawesome/fontawesome-free": "6.4.0", - "@semantic-release/changelog": "6.0.3", - "@semantic-release/commit-analyzer": "^11.0.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.7.0", + "@fortawesome/fontawesome-free": "6.6.0", + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/commit-analyzer": "13.0.0", "@semantic-release/exec": "6.0.3", "@semantic-release/git": "10.0.1", - "@semantic-release/github": "^9.0.6", - "@semantic-release/npm": "^11.0.0", - "@semantic-release/release-notes-generator": "^12.0.0", - "browser-sync": "^2.29.1", + "@semantic-release/github": "^10.0.6", + "@semantic-release/npm": "^12.0.1", + "@semantic-release/release-notes-generator": "14.0.0", + "browser-sync": "^3.0.2", + "cssnano": "^7.0.4", "cz-conventional-changelog": "3.3.0", - "eslint": "^8.49.0", + "eslint": "^9.7.0", + "globals": "^15.8.0", "gulp-concat": "2.6.1", - "gulp-cssnano": "2.1.3", - "gulp-purgecss": "5.0.0", + "gulp-postcss": "10.0.0", + "gulp-purgecss": "6.0.0", "gulp-rename": "2.0.0", "gulp-uglify": "3.0.2", - "prettier": "^3.0.3", - "semantic-release": "^22.0.0" + "prettier": "^3.3.3", + "semantic-release": "^24.0.0" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -77,21 +82,23 @@ } }, "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.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", - "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.9.tgz", + "integrity": "sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -127,23 +134,23 @@ } }, "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "peer": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", - "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", - "peer": true, + "version": "7.24.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz", + "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.24.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { @@ -151,45 +158,48 @@ } }, "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", - "peer": true, + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", - "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", + "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -219,18 +229,19 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.8.tgz", + "integrity": "sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", "semver": "^6.3.1" }, "engines": { @@ -244,18 +255,20 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz", - "integrity": "sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", + "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-annotate-as-pure": "^7.24.7", "regexpu-core": "^5.3.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -265,17 +278,17 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", - "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", + "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -288,68 +301,79 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.24.7" + }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "license": "MIT", "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz", - "integrity": "sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.20.tgz", - "integrity": "sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz", + "integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -359,32 +383,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", + "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-wrap-function": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -394,13 +421,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -410,70 +438,80 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "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", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", + "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", + "license": "MIT", "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "@babel/helper-function-name": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -494,22 +532,25 @@ } }, "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.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.22.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", - "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", + "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -517,12 +558,29 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz", + "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", - "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz", + "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -532,13 +590,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", - "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.15" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -547,10 +606,27 @@ "@babel/core": "^7.13.0" } }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz", + "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==", + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -573,6 +649,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -587,6 +664,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -598,6 +676,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, @@ -606,11 +685,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -620,11 +700,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -648,6 +729,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -659,6 +741,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -670,6 +753,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -681,6 +765,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -692,6 +777,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -703,6 +789,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -714,6 +801,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -725,6 +813,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -765,11 +854,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -779,13 +869,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz", - "integrity": "sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz", + "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.9", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -796,13 +887,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -812,11 +904,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -826,11 +919,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.15.tgz", - "integrity": "sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", + "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -840,12 +934,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -855,12 +950,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", - "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -871,18 +967,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", - "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.8.tgz", + "integrity": "sha512-VXy91c47uujj758ud9wx+OMgheXm4qJfyhj1P18YvlrQkNOSrwsteHk+EFS3OMGfhMhpZa0A+81eE7G4QC+3CA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", "globals": "^11.1.0" }, "engines": { @@ -896,17 +992,19 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -916,11 +1014,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.15.tgz", - "integrity": "sha512-HzG8sFl1ZVGTme74Nw+X01XsUTqERVQ6/RLHo3XjGRzm7XD6QTtfS3NJotVgCGy8BzkDqRjRBD8dAyJn5TuvSQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -930,12 +1029,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -945,11 +1045,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -959,11 +1060,12 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", - "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -974,12 +1076,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -989,11 +1092,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", - "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -1004,11 +1108,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", - "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1018,13 +1124,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", + "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1034,11 +1141,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", - "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -1049,11 +1157,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1063,11 +1172,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", - "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1078,11 +1188,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1092,12 +1203,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", - "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1107,13 +1219,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.15.tgz", - "integrity": "sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1123,14 +1236,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz", - "integrity": "sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", + "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", + "license": "MIT", "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1140,12 +1254,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1155,12 +1270,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1170,11 +1286,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1184,11 +1301,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", - "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -1199,11 +1317,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", - "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -1214,15 +1333,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", - "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.15" + "@babel/plugin-transform-parameters": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1232,12 +1351,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1247,11 +1367,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", - "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -1262,12 +1383,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.15.tgz", - "integrity": "sha512-ngQ2tBhq5vvSJw2Q2Z9i7ealNkpDMU0rGWnHPKqRZO0tzZ5tlaoz4hDvhXioOoaE0X2vfNss1djwg0DXlfu30A==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -1278,11 +1400,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", - "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1292,12 +1415,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1307,13 +1431,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", - "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1324,11 +1449,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1338,11 +1464,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "regenerator-transform": "^0.15.2" }, "engines": { @@ -1353,11 +1480,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1367,11 +1495,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1381,12 +1510,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1396,11 +1526,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1410,11 +1541,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1424,11 +1556,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1438,11 +1571,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1452,12 +1586,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1467,12 +1602,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1482,12 +1618,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1497,24 +1634,27 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.20.tgz", - "integrity": "sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.8.tgz", + "integrity": "sha512-vObvMZB6hNWuDxhSaEPTKCwcqkAIuDtE+bQGn4XMXne1DSLzFVY8Vmj1bm+mUQXYNN8NmaQEO+r8MMbzPr1jBQ==", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.20", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", + "@babel/compat-data": "^7.24.8", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1526,60 +1666,59 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.15", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.15", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.15", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.15", - "@babel/plugin-transform-modules-systemjs": "^7.22.11", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.22.15", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.24.7", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.24.7", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.24.8", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.24.7", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.24.7", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.22.19", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", - "core-js-compat": "^3.31.0", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", "semver": "^6.3.1" }, "engines": { @@ -1627,9 +1766,10 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz", - "integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.8.tgz", + "integrity": "sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1638,33 +1778,34 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", - "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", - "peer": true, + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", + "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/types": "^7.22.5", - "debug": "^4.1.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.8", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.8", + "@babel/types": "^7.24.8", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -1675,18 +1816,19 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "peer": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/@babel/types": { - "version": "7.22.19", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz", - "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz", + "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==", + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.19", + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1962,24 +2104,41 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", - "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", + "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", - "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -1987,7 +2146,7 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2009,73 +2168,91 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/@eslint/js": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.7.0.tgz", + "integrity": "sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/js": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz", - "integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==", + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@fontsource/inter": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.0.3.tgz", - "integrity": "sha512-JJvh5xht71F6e0E5r2+Ffu8g+CYAxMvnGJm9ZMg5IIjy8UwxLp+8C99TgPJupdEyBpEJv0wuMG2Rd183z/bV8g==" + "version": "5.0.19", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.0.19.tgz", + "integrity": "sha512-tVU77yjKnsoUotrXGYbbYxmL9nbm/MSo3deZietmf8V2FEDlbi9fvkJHMrYbo7ZsOqR1AYBBqRYmemz4pSE5Mg==", + "license": "OFL-1.1" }, "node_modules/@fontsource/rasa": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@fontsource/rasa/-/rasa-5.0.3.tgz", - "integrity": "sha512-7QYG8778nIeaJZfzSJzggntMy44ZpzpEsyR0t+Jlqo6hqpzFeVilg2ZK6M6f1IM9DBNLZormJPX38P8BCUM9ww==" + "version": "5.0.20", + "resolved": "https://registry.npmjs.org/@fontsource/rasa/-/rasa-5.0.20.tgz", + "integrity": "sha512-LwZErpVLjNCcYCp/6/qwMlZlE/a06QeRoaZctyrHxZdGeDUxloG3LxxtN51ZtQ85Ot2jNdO6lYsVmEnl+1NZwQ==" }, "node_modules/@fortawesome/fontawesome-free": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.0.tgz", - "integrity": "sha512-0NyytTlPJwB/BF5LtRV8rrABDbe3TdTXqNB3PdZ+UUUZAEIrdOJdmABqKjt4AXwIoJNaRVVZEXxpNrqvE1GAYQ==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.6.0.tgz", + "integrity": "sha512-60G28ke/sXdtS9KZCpZSHHkCbdsOGEhIUGlwq6yhY74UpTiToIh8np7A8yphhM4BWsvNFtIvLpi4co+h9Mr9Ow==", "devOptional": true, - "hasInstallScript": true, + "license": "(CC-BY-4.0 AND OFL-1.1 AND MIT)", "engines": { "node": ">=6" } }, - "node_modules/@hotwired/turbo": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@hotwired/turbo/-/turbo-7.3.0.tgz", - "integrity": "sha512-Dcu+NaSvHLT7EjrDrkEmH4qET2ZJZ5IcCWmNXxNQTBwlnE5tBZfN6WxZ842n5cHV52DH/AKNirbPBtcEXDLW4g==", + "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==", "engines": { - "node": ">= 14" + "node": ">=10.13.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", - "dev": true, + "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==", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" + "is-negated-glob": "^1.0.0" }, "engines": { - "node": ">=10.10.0" + "node": ">=10.13.0" + } + }, + "node_modules/@hotwired/turbo": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/@hotwired/turbo/-/turbo-8.0.4.tgz", + "integrity": "sha512-mlZEFUZrJnpfj+g/XeCWWuokvQyN68WvM78JM+0jfSFc98wegm259vCbC1zSllcspRwbgXK31ibehCy5PA78/Q==", + "engines": { + "node": ">= 14" } }, "node_modules/@humanwhocodes/module-importer": { @@ -2091,39 +2268,150 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true + "node_modules/@humanwhocodes/retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, - "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==", - "peer": true, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "node_modules/@isaacs/cliui/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==", + "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "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==", - "peer": true, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "engines": { "node": ">=6.0.0" } @@ -2175,151 +2463,168 @@ } }, "node_modules/@octokit/auth-token": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", - "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-5.1.1.tgz", + "integrity": "sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 18" } }, "node_modules/@octokit/core": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.0.0.tgz", - "integrity": "sha512-YbAtMWIrbZ9FCXbLwT9wWB8TyLjq9mxpKdgB3dUNxQcIVTf9hJ70gRPwAcqGZdY6WdJPZ0I7jLaaNDCiloGN2A==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.2.tgz", + "integrity": "sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==", "dev": true, + "license": "MIT", "dependencies": { - "@octokit/auth-token": "^4.0.0", - "@octokit/graphql": "^7.0.0", - "@octokit/request": "^8.0.2", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^11.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" + "@octokit/auth-token": "^5.0.0", + "@octokit/graphql": "^8.0.0", + "@octokit/request": "^9.0.0", + "@octokit/request-error": "^6.0.1", + "@octokit/types": "^13.0.0", + "before-after-hook": "^3.0.2", + "universal-user-agent": "^7.0.0" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/endpoint": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.0.tgz", - "integrity": "sha512-szrQhiqJ88gghWY2Htt8MqUDO6++E/EIXqJ2ZEp5ma3uGS46o7LZAzSLt49myB7rT+Hfw5Y6gO3LmOxGzHijAQ==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.1.tgz", + "integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==", "dev": true, + "license": "MIT", "dependencies": { - "@octokit/types": "^11.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" + "@octokit/types": "^13.0.0", + "universal-user-agent": "^7.0.2" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/graphql": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.1.tgz", - "integrity": "sha512-T5S3oZ1JOE58gom6MIcrgwZXzTaxRnxBso58xhozxHpOqSTgDS6YNeEUvZ/kRvXgPrRz/KHnZhtb7jUMRi9E6w==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz", + "integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==", "dev": true, + "license": "MIT", "dependencies": { - "@octokit/request": "^8.0.1", - "@octokit/types": "^11.0.0", - "universal-user-agent": "^6.0.0" + "@octokit/request": "^9.0.0", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^7.0.0" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/openapi-types": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.0.0.tgz", - "integrity": "sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw==", - "dev": true + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==", + "dev": true, + "license": "MIT" }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-8.0.0.tgz", - "integrity": "sha512-2xZ+baZWUg+qudVXnnvXz7qfrTmDeYPCzangBVq/1gXxii/OiS//4shJp9dnCCvj1x+JAm9ji1Egwm1BA47lPQ==", + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.3.tgz", + "integrity": "sha512-o4WRoOJZlKqEEgj+i9CpcmnByvtzoUYC6I8PD2SA95M+BJ2x8h7oLcVOg9qcowWXBOdcTRsMZiwvM3EyLm9AfA==", "dev": true, + "license": "MIT", "dependencies": { - "@octokit/types": "^11.0.0" + "@octokit/types": "^13.5.0" }, "engines": { "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=5" + "@octokit/core": ">=6" } }, "node_modules/@octokit/plugin-retry": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-6.0.0.tgz", - "integrity": "sha512-a1/A4A+PB1QoAHQfLJxGHhLfSAT03bR1jJz3GgQJZvty2ozawFWs93MiBQXO7SL2YbO7CIq0Goj4qLOBj8JeMQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.1.1.tgz", + "integrity": "sha512-G9Ue+x2odcb8E1XIPhaFBnTTIrrUDfXN05iFXiqhR+SeeeDMMILcAnysOsxUpEWcQp2e5Ft397FCXTcPkiPkLw==", "dev": true, + "license": "MIT", "dependencies": { - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^11.0.0", + "@octokit/request-error": "^6.0.0", + "@octokit/types": "^13.0.0", "bottleneck": "^2.15.3" }, "engines": { "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=5" + "@octokit/core": ">=6" } }, "node_modules/@octokit/plugin-throttling": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-7.0.0.tgz", - "integrity": "sha512-KL2k/d0uANc8XqP5S64YcNFCudR3F5AaKO39XWdUtlJIjT9Ni79ekWJ6Kj5xvAw87udkOMEPcVf9xEge2+ahew==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-9.3.1.tgz", + "integrity": "sha512-Qd91H4liUBhwLB2h6jZ99bsxoQdhgPk6TdwnClPyTBSDAdviGPceViEgUwj+pcQDmB/rfAXAXK7MTochpHM3yQ==", "dev": true, + "license": "MIT", "dependencies": { - "@octokit/types": "^11.0.0", + "@octokit/types": "^13.0.0", "bottleneck": "^2.15.3" }, "engines": { "node": ">= 18" }, "peerDependencies": { - "@octokit/core": "^5.0.0" + "@octokit/core": "^6.0.0" } }, "node_modules/@octokit/request": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.1.1.tgz", - "integrity": "sha512-8N+tdUz4aCqQmXl8FpHYfKG9GelDFd7XGVzyN8rc6WxVlYcfpHECnuRkgquzz+WzvHTK62co5di8gSXnzASZPQ==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.3.tgz", + "integrity": "sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==", "dev": true, + "license": "MIT", "dependencies": { - "@octokit/endpoint": "^9.0.0", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^11.1.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" + "@octokit/endpoint": "^10.0.0", + "@octokit/request-error": "^6.0.1", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^7.0.2" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/request-error": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.0.tgz", - "integrity": "sha512-1ue0DH0Lif5iEqT52+Rf/hf0RmGO9NWFjrzmrkArpG9trFfDM/efx00BJHdLGuro4BR/gECxCU2Twf5OKrRFsQ==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.4.tgz", + "integrity": "sha512-VpAhIUxwhWZQImo/dWAN/NpPqqojR6PSLgLYAituLM6U+ddx9hCioFGwBr5Mi+oi5CLeJkcAs3gJ0PYYzU6wUg==", "dev": true, + "license": "MIT", "dependencies": { - "@octokit/types": "^11.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" + "@octokit/types": "^13.0.0" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/types": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-11.1.0.tgz", - "integrity": "sha512-Fz0+7GyLm/bHt8fwEqgvRBWwIV1S6wRRyq+V6exRKLVWaKGsuy6H9QFYeBVDV7rK6fO3XwHgQOPxv+cLj2zpXQ==", + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", "dev": true, + "license": "MIT", "dependencies": { - "@octokit/openapi-types": "^18.0.0" + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" } }, "node_modules/@pnpm/network.ca-file": { @@ -2348,9 +2653,9 @@ } }, "node_modules/@rollup/plugin-babel": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.3.tgz", - "integrity": "sha512-fKImZKppa1A/gX73eg4JGo+8kQr/q1HBQaCGKECZ0v4YBBv3lFqi14+7xyApECzvkLTHCifx+7ntcrvtBIRcpg==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.4.tgz", + "integrity": "sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==", "dependencies": { "@babel/helper-module-imports": "^7.18.6", "@rollup/pluginutils": "^5.0.1" @@ -2361,7 +2666,7 @@ "peerDependencies": { "@babel/core": "^7.0.0", "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0||^3.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "@types/babel__core": { @@ -2373,22 +2678,23 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "25.0.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.4.tgz", - "integrity": "sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ==", + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.1.tgz", + "integrity": "sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==", + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", "estree-walker": "^2.0.2", - "glob": "^8.0.3", + "glob": "^10.4.1", "is-reference": "1.2.1", - "magic-string": "^0.27.0" + "magic-string": "^0.30.3" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0 || 14 >= 14.17" }, "peerDependencies": { - "rollup": "^2.68.0||^3.0.0" + "rollup": "^2.68.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -2400,51 +2706,58 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/@rollup/plugin-commonjs/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": ">=12" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@rollup/plugin-json": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.0.0.tgz", - "integrity": "sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", "dependencies": { - "@rollup/pluginutils": "^5.0.1" + "@rollup/pluginutils": "^5.1.0" }, "engines": { "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -2453,9 +2766,9 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "15.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.1.tgz", - "integrity": "sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w==", + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", "dependencies": { "@rollup/pluginutils": "^5.0.1", "@types/resolve": "1.20.2", @@ -2468,7 +2781,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^2.78.0||^3.0.0" + "rollup": "^2.78.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -2477,9 +2790,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", - "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", @@ -2489,7 +2802,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -2497,6 +2810,221 @@ } } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.0.tgz", + "integrity": "sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.0.tgz", + "integrity": "sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.0.tgz", + "integrity": "sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.0.tgz", + "integrity": "sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.0.tgz", + "integrity": "sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.0.tgz", + "integrity": "sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.0.tgz", + "integrity": "sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.0.tgz", + "integrity": "sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.0.tgz", + "integrity": "sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.0.tgz", + "integrity": "sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.0.tgz", + "integrity": "sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.0.tgz", + "integrity": "sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.0.tgz", + "integrity": "sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.0.tgz", + "integrity": "sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.0.tgz", + "integrity": "sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.0.tgz", + "integrity": "sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "dev": true, + "license": "MIT" + }, "node_modules/@semantic-release/changelog": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.3.tgz", @@ -2516,21 +3044,23 @@ } }, "node_modules/@semantic-release/commit-analyzer": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-11.0.0.tgz", - "integrity": "sha512-uEXyf4Z0AWJuxI9TbSQP5kkIYqus1/E1NcmE7pIv6d6/m/5EJcNWAGR4FOo34vrV26FhEaRVkxFfYzp/M7BKIg==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-13.0.0.tgz", + "integrity": "sha512-KtXWczvTAB1ZFZ6B4O+w8HkfYm/OgQb1dUGNFZtDgQ0csggrmkq8sTxhd+lwGF8kMb59/RnG9o4Tn7M/I8dQ9Q==", "dev": true, + "license": "MIT", "dependencies": { - "conventional-changelog-angular": "^7.0.0", - "conventional-commits-filter": "^4.0.0", - "conventional-commits-parser": "^5.0.0", + "conventional-changelog-angular": "^8.0.0", + "conventional-changelog-writer": "^8.0.0", + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.0.0", "debug": "^4.0.0", - "import-from": "^4.0.0", + "import-from-esm": "^1.0.3", "lodash-es": "^4.17.21", "micromatch": "^4.0.2" }, "engines": { - "node": "^18.17 || >=20.6.1" + "node": ">=20.8.1" }, "peerDependencies": { "semantic-release": ">=20.1.0" @@ -2588,30 +3118,31 @@ } }, "node_modules/@semantic-release/github": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-9.0.6.tgz", - "integrity": "sha512-GBGt9c3c2UdSvso4jcyQQSUpZA9hbfHqGQerZKN9WvVzCIkaBy8xkhOyiFVX08LjRHHT/H221SJNBLtuihX5iw==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-10.1.1.tgz", + "integrity": "sha512-sSmsBKGpAlTtXf9rUJf/si16p+FwPEsvsJRjl3KCwFP0WywaSpynvUhlYvE18n5rzkQNbGJnObAKIoo3xFMSjA==", "dev": true, + "license": "MIT", "dependencies": { - "@octokit/core": "^5.0.0", - "@octokit/plugin-paginate-rest": "^8.0.0", - "@octokit/plugin-retry": "^6.0.0", - "@octokit/plugin-throttling": "^7.0.0", + "@octokit/core": "^6.0.0", + "@octokit/plugin-paginate-rest": "^11.0.0", + "@octokit/plugin-retry": "^7.0.0", + "@octokit/plugin-throttling": "^9.0.0", "@semantic-release/error": "^4.0.0", "aggregate-error": "^5.0.0", "debug": "^4.3.4", "dir-glob": "^3.0.1", - "globby": "^13.1.4", + "globby": "^14.0.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", - "issue-parser": "^6.0.0", + "issue-parser": "^7.0.0", "lodash-es": "^4.17.21", - "mime": "^3.0.0", - "p-filter": "^3.0.0", + "mime": "^4.0.0", + "p-filter": "^4.0.0", "url-join": "^5.0.0" }, "engines": { - "node": ">=18" + "node": ">=20.8.1" }, "peerDependencies": { "semantic-release": ">=20.1.0" @@ -2669,6 +3200,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@semantic-release/github/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/@semantic-release/github/node_modules/indent-string": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", @@ -2681,28 +3232,53 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/npm": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-11.0.0.tgz", - "integrity": "sha512-ozNCiPUp14Xp2rgeY7j96yFTEhDncLSWOJr0IAUr888+ax6fH5xgYkNVv08vpkV8C5GIXBgnGd9coRiOCD6oqQ==", + "node_modules/@semantic-release/github/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, - "dependencies": { - "@semantic-release/error": "^4.0.0", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@semantic-release/github/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/@semantic-release/npm": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-12.0.1.tgz", + "integrity": "sha512-/6nntGSUGK2aTOI0rHPwY3ZjgY9FkXmEHbW9Kr+62NVOsyqpKKeP0lrCH+tphv+EsNdJNmqqwijTEnVWUMQ2Nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@semantic-release/error": "^4.0.0", "aggregate-error": "^5.0.0", - "execa": "^8.0.0", + "execa": "^9.0.0", "fs-extra": "^11.0.0", "lodash-es": "^4.17.21", "nerf-dart": "^1.0.0", "normalize-url": "^8.0.0", - "npm": "^10.0.0", + "npm": "^10.5.0", "rc": "^1.2.8", - "read-pkg": "^8.0.0", + "read-pkg": "^9.0.0", "registry-auth-token": "^5.0.0", "semver": "^7.1.2", "tempy": "^3.0.0" }, "engines": { - "node": "^18.17 || >=20" + "node": ">=20.8.1" }, "peerDependencies": { "semantic-release": ">=20.1.0" @@ -2717,6 +3293,19 @@ "node": ">=18" } }, + "node_modules/@semantic-release/npm/node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@semantic-release/npm/node_modules/aggregate-error": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", @@ -2761,47 +3350,73 @@ } }, "node_modules/@semantic-release/npm/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.3.0.tgz", + "integrity": "sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==", "dev": true, + "license": "MIT", "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^7.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^5.2.0", + "pretty-ms": "^9.0.0", "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" }, "engines": { - "node": ">=16.17" + "node": "^18.19.0 || >=20.5.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/@semantic-release/npm/node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@semantic-release/npm/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "dev": true, + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@semantic-release/npm/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-7.0.0.tgz", + "integrity": "sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=16.17.0" + "node": ">=18.18.0" } }, "node_modules/@semantic-release/npm/node_modules/indent-string": { @@ -2817,34 +3432,24 @@ } }, "node_modules/@semantic-release/npm/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@semantic-release/npm/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@semantic-release/npm/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^4.0.0" }, @@ -2855,26 +3460,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@semantic-release/npm/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@semantic-release/npm/node_modules/path-key": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2887,6 +3478,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -2895,36 +3487,38 @@ } }, "node_modules/@semantic-release/npm/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@semantic-release/release-notes-generator": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-12.0.0.tgz", - "integrity": "sha512-m7Ds8ComP1KJgA2Lke2xMwE1TOOU40U7AzP4lT8hJ2tUAeicziPz/1GeDFmRkTOkMFlfHvE6kuvMkvU+mIzIDQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.0.tgz", + "integrity": "sha512-XRxwr4e46yUMaXT8KGFBlRJlp5+NOMaufdq8qaEWlcJ7cT4Pn/iRmDGglZ2TgDe6GVP+u1boXFEnSs7N8Yzhng==", "dev": true, + "license": "MIT", "dependencies": { - "conventional-changelog-angular": "^7.0.0", - "conventional-changelog-writer": "^7.0.0", - "conventional-commits-filter": "^4.0.0", - "conventional-commits-parser": "^5.0.0", + "conventional-changelog-angular": "^8.0.0", + "conventional-changelog-writer": "^8.0.0", + "conventional-commits-filter": "^5.0.0", + "conventional-commits-parser": "^6.0.0", "debug": "^4.0.0", "get-stream": "^7.0.0", - "import-from": "^4.0.0", + "import-from-esm": "^1.0.3", "into-stream": "^7.0.0", "lodash-es": "^4.17.21", - "read-pkg-up": "^10.0.0" + "read-pkg-up": "^11.0.0" }, "engines": { - "node": "^18.17 || >=20.6.1" + "node": ">=20.8.1" }, "peerDependencies": { "semantic-release": ">=20.1.0" @@ -2942,12 +3536,46 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "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" + }, + "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", "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", "dev": true }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", @@ -2992,9 +3620,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", - "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" }, "node_modules/@types/expect": { "version": "1.20.4", @@ -3007,9 +3635,9 @@ "integrity": "sha512-CmR8+Tsy95hhwtZBKJBs0/FFq4XX7sDZHlGGf+0q+BRZfMbOTkzkj0AFAuTyXbObDIoanaBBW0+KEW+m3N16Wg==" }, "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true }, "node_modules/@types/parse-json": { @@ -3024,10 +3652,17 @@ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==" }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/vinyl": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.6.tgz", - "integrity": "sha512-ayJ0iOCDNHnKpKTgBG6Q6JOnHTj9zFta+3j2b8Ejza0e4cvRyMn0ZoLEmbPrTHe5YYRlDYPvPWVdV4cTaRyH7g==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.11.tgz", + "integrity": "sha512-vPXzCLmRp74e9LsP8oltnWKTH+jBwt86WgRUb4Pc9Lf3pkMVGyvIo2gm9bODeGfCay2DBB/hAWDuvf07JcK4rw==", "dependencies": { "@types/expect": "^1.20.4", "@types/node": "*" @@ -3047,10 +3682,11 @@ } }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -3063,6 +3699,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -3119,12 +3756,6 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==", - "dev": true - }, "node_modules/ansi-colors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", @@ -3137,23 +3768,30 @@ } }, "node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", - "dependencies": { - "ansi-wrap": "0.1.0" - }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-regex": { @@ -3183,322 +3821,97 @@ "node": ">=0.10.0" } }, - "node_modules/ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", "dev": true }, "node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/anymatch/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==", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "optional": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/argv-formatter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", + "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==", + "dev": true + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "engines": { "node": ">=0.10.0" } }, - "node_modules/anymatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "engines": { "node": ">=0.10.0" } }, - "node_modules/anymatch/node_modules/is-accessor-descriptor": { + "node_modules/array-buffer-byte-length": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "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==", "dependencies": { - "kind-of": "^6.0.0" + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", "engines": { "node": ">=0.10.0" } }, - "node_modules/anymatch/node_modules/is-data-descriptor": { + "node_modules/array-ify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true, + "license": "MIT" + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", "engines": { "node": ">=0.10.0" } }, - "node_modules/anymatch/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch/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==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "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/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==", - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dependencies": { - "buffer-equal": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==" - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "optional": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/argv-formatter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", - "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==", - "dev": true - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", - "engines": { - "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==", - "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", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "engines": { - "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==", - "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", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true - }, - "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==", - "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==", - "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==", - "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==", - "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", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "engines": { - "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==", - "dependencies": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", "engines": { "node": ">=0.10.0" } @@ -3513,24 +3926,18 @@ } }, "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==", "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.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" - }, "node_modules/async-each-series": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-0.1.1.tgz", @@ -3541,31 +3948,29 @@ } }, "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==", "dependencies": { - "async-done": "^1.2.2" + "async-done": "^2.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, - "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==", - "bin": { - "atob": "bin/atob.js" - }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, "engines": { - "node": ">= 4.5.0" + "node": ">= 4.0.0" } }, "node_modules/autoprefixer": { - "version": "10.4.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", - "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", + "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==", "funding": [ { "type": "opencollective", @@ -3574,12 +3979,16 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "browserslist": "^4.20.3", - "caniuse-lite": "^1.0.30001335", - "fraction.js": "^4.2.0", + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001591", + "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -3605,22 +4014,13 @@ "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-plugin-polyfill-corejs2": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", - "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", + "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.2", + "@babel/helper-define-polyfill-provider": "^0.6.1", "semver": "^6.3.1" }, "peerDependencies": { @@ -3636,45 +4036,39 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", - "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2", - "core-js-compat": "^3.31.0" + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", - "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz", + "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2" + "@babel/helper-define-polyfill-provider": "^0.6.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "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==", "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": { @@ -3682,104 +4076,62 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "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/bare-events": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz", + "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==", + "optional": true }, - "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==", - "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==", + "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/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": "^4.5.0 || >= 5.9" } }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true, - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true }, "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", - "dev": true + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz", + "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==", + "dev": true, + "license": "Apache-2.0" }, "node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/binaryextensions": { @@ -3793,20 +4145,44 @@ "url": "https://bevry.me/fund" } }, - "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==", - "optional": true, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "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": { - "file-uri-to-path": "1.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, "node_modules/bottleneck": { "version": "2.19.5", "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -3818,33 +4194,24 @@ } }, "node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "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" + "fill-range": "^7.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "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", @@ -3858,7 +4225,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", @@ -3881,9 +4247,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", @@ -3895,9 +4261,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", @@ -4003,40 +4369,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/browser-sync/node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/browser-sync/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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-sync/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/browser-sync/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -4053,33 +4385,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/browser-sync/node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/browser-sync/node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -4112,18 +4417,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/browser-sync/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==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/browser-sync/node_modules/fs-extra": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", @@ -4135,41 +4428,6 @@ "universalify": "^0.1.0" } }, - "node_modules/browser-sync/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/browser-sync/node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/browser-sync/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/browser-sync/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4188,36 +4446,6 @@ "node": ">=0.10.0" } }, - "node_modules/browser-sync/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-sync/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-sync/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/browser-sync/node_modules/jsonfile": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", @@ -4227,32 +4455,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/browser-sync/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/browser-sync/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/browser-sync/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4265,18 +4467,6 @@ "node": ">=8" } }, - "node_modules/browser-sync/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/browser-sync/node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -4286,32 +4476,6 @@ "node": ">= 4.0.0" } }, - "node_modules/browser-sync/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/browser-sync/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/browser-sync/node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -4331,9 +4495,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.10", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", - "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", + "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", "funding": [ { "type": "opencollective", @@ -4348,11 +4512,12 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001517", - "electron-to-chromium": "^1.4.477", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001640", + "electron-to-chromium": "^1.4.820", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.1.0" }, "bin": { "browserslist": "cli.js" @@ -4367,19 +4532,30 @@ "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", "dev": true }, - "node_modules/buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "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==" - }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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.1.13" + } + }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", @@ -4392,9 +4568,9 @@ } }, "node_modules/bulma": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.9.4.tgz", - "integrity": "sha512-86FlT5+1GrsgKbPLRRY7cGDg8fsJiP/jzTqXXVqiUZZ2aZT8uemEOHlU1CDU+TxklPEZ11HZNNWclRBBecP4CQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bulma/-/bulma-1.0.1.tgz", + "integrity": "sha512-+xv/BIAEQakHkR0QVz+s+RjNqfC53Mx9ZYexyaFNFo9wx5i76HXArNdwW7bccyJxa5mgV/T5DcVGqsAB19nBJQ==" }, "node_modules/bulma-checkradio": { "version": "2.1.3", @@ -4404,6 +4580,11 @@ "bulma": "^0.9.3" } }, + "node_modules/bulma-checkradio/node_modules/bulma": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.9.4.tgz", + "integrity": "sha512-86FlT5+1GrsgKbPLRRY7cGDg8fsJiP/jzTqXXVqiUZZ2aZT8uemEOHlU1CDU+TxklPEZ11HZNNWclRBBecP4CQ==" + }, "node_modules/bulma-switch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/bulma-switch/-/bulma-switch-2.0.4.tgz", @@ -4423,29 +4604,10 @@ "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==", - "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/cachedir": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz", - "integrity": "sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", "dev": true, "engines": { "node": ">=6" @@ -4473,41 +4635,22 @@ } }, "node_modules/caniuse-api": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha512-SBTl70K0PkDUIebbkXrxWqZlHNs0wRgRD6QZ8guctShjbh63gEPfF+Wj0Yw+75f5Y8tSzqAI/NcisYv/cCah2Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^1.3.6", - "caniuse-db": "^1.0.30000529", + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" } }, - "node_modules/caniuse-api/node_modules/browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw==", - "deprecated": "Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.", - "dev": true, - "dependencies": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/caniuse-db": { - "version": "1.0.30001363", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001363.tgz", - "integrity": "sha512-voQLvHWF4h768zvo39WJ/17FLqlrorRsGJ5FsG3I5m6NMcDyoeR8R0w3tWazcsEGoUcQHw6VH4Y/WXipBP34sA==", - "dev": true - }, "node_modules/caniuse-lite": { - "version": "1.0.30001519", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz", - "integrity": "sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==", + "version": "1.0.30001643", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz", + "integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==", "funding": [ { "type": "opencollective", @@ -4521,20 +4664,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] - }, - "node_modules/cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", - "dev": true, - "dependencies": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - }, - "bin": { - "cdl": "bin/cdl.js" - } + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "2.4.2", @@ -4549,6 +4680,15 @@ "node": ">=4" } }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -4556,153 +4696,167 @@ "dev": true }, "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", - "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" + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" }, "optionalDependencies": { - "fsevents": "^1.2.7" + "fsevents": "~2.3.2" } }, "node_modules/chokidar/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==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/chokidar/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==", - "dependencies": { - "is-extglob": "^2.1.0" - }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/clap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "dependencies": { - "chalk": "^1.1.3" + "restore-cursor": "^3.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/clap/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==", + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8.0.0", + "npm": ">=5.0.0" } }, - "node_modules/clap/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "node_modules/cli-highlight/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/clap/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "node_modules/cli-highlight/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/clap/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==", + "node_modules/cli-highlight/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "ansi-regex": "^2.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "node_modules/clap/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "node_modules/cli-highlight/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cli-highlight/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=0.8.0" + "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==", + "node_modules/cli-highlight/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "node_modules/cli-spinners": { + "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" - } - }, - "node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "dependencies": { - "restore-cursor": "^2.0.0" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-table3": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", - "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", "dev": true, "dependencies": { "string-width": "^4.2.0" @@ -4714,86 +4868,23 @@ "@colors/colors": "1.5.0" } }, - "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { + "node_modules/cli-width": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-table3/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, "engines": { - "node": ">=8" + "node": ">= 10" } }, - "node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, "node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/cliui/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cliui/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==", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cliui/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==", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cliui/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==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, "node_modules/clone": { @@ -4809,6 +4900,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", + "dev": true, "engines": { "node": ">= 0.10" } @@ -4822,147 +4914,72 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, "dependencies": { "inherits": "^2.0.1", "process-nextick-args": "^2.0.0", "readable-stream": "^2.3.5" } }, - "node_modules/coa": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha512-KAGck/eNAmCL0dcT3BiuYwLbExK6lduR8DxM3C1TyDzaXhZHyZ8ooX5I5+na2e3dPFuibfxrGdorr0/Lr7RYCQ==", - "dev": true, + "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==", "dependencies": { - "q": "^1.1.2" - }, - "engines": { - "node": ">= 0.8.0" + "color-name": "1.1.3" } }, - "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==", - "engines": { - "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==", - "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==", - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "integrity": "sha512-Ajpjd8asqZ6EdxQeqGzU5WBhhTfJ/0cA4Wlbre7e5vXfmDSmda7Ov6jeKoru+b0vHcb1CqvuroTHp5zIWzhVMA==", - "dev": true, - "dependencies": { - "clone": "^1.0.2", - "color-convert": "^1.3.0", - "color-string": "^0.3.0" - } - }, - "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==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "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==" - }, - "node_modules/color-string": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "integrity": "sha512-sz29j1bmSDfoAxKIEU6zwoIZXN6BrFbAMIhfYCNyiZXBDuU/aiHlN84lp/xDzL2ubyFhLDobHIlU1X70XRrMDA==", - "dev": true, - "dependencies": { - "color-name": "^1.0.0" - } + "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==" }, "node_modules/color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, "bin": { "color-support": "bin.js" } }, - "node_modules/colormin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha512-XSEQUUQUR/lXqGyddiNH3XYFUPYlYr1vXy9rTFMsSOw+J7Q6EQkdlQIrTlYn4TccpsOaUE1PYQNjBn20gwCdgQ==", - "dev": true, - "dependencies": { - "color": "^0.11.0", - "css-color-names": "0.0.4", - "has": "^1.0.1" - } - }, - "node_modules/colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==", + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true, - "engines": { - "node": ">=0.1.90" - } + "license": "MIT" }, "node_modules/commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.20.0 || >=14" + "node": ">=18" } }, "node_modules/commitizen": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.2.4.tgz", - "integrity": "sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.3.0.tgz", + "integrity": "sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==", "dev": true, "dependencies": { - "cachedir": "2.2.0", - "cz-conventional-changelog": "3.2.0", + "cachedir": "2.3.0", + "cz-conventional-changelog": "3.3.0", "dedent": "0.7.0", - "detect-indent": "6.0.0", + "detect-indent": "6.1.0", "find-node-modules": "^2.1.2", "find-root": "1.1.0", - "fs-extra": "8.1.0", - "glob": "7.1.4", - "inquirer": "6.5.2", + "fs-extra": "9.1.0", + "glob": "7.2.3", + "inquirer": "8.2.5", "is-utf8": "^0.2.1", - "lodash": "^4.17.20", - "minimist": "1.2.5", + "lodash": "4.17.21", + "minimist": "1.2.7", "strip-bom": "4.0.0", - "strip-json-comments": "3.0.1" + "strip-json-comments": "3.1.1" }, "bin": { "commitizen": "bin/commitizen", @@ -4970,59 +4987,22 @@ "git-cz": "bin/git-cz" }, "engines": { - "node": ">= 10" - } - }, - "node_modules/commitizen/node_modules/cz-conventional-changelog": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz", - "integrity": "sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "commitizen": "^4.0.3", - "conventional-commit-types": "^3.0.0", - "lodash.map": "^4.5.1", - "longest": "^2.0.1", - "word-wrap": "^1.0.3" - }, - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@commitlint/load": ">6.1.1" + "node": ">= 12" } }, "node_modules/commitizen/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "dependencies": { + "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/commitizen/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/commitizen/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" + "node": ">=10" } }, "node_modules/commondir": { @@ -5035,35 +5015,17 @@ "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, + "license": "MIT", "dependencies": { "array-ify": "^1.0.0", "dot-prop": "^5.1.0" } }, - "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==" - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, - "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==", - "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-with-sourcemaps": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", @@ -5123,35 +5085,36 @@ "dev": true }, "node_modules/conventional-changelog-angular": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", - "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-8.0.0.tgz", + "integrity": "sha512-CLf+zr6St0wIxos4bmaKHRXWAcsCXrJU6F4VdNDrGRK3B8LDLKoX3zuMV5GhtbGkVR/LohZ6MT6im43vZLSjmA==", "dev": true, + "license": "ISC", "dependencies": { "compare-func": "^2.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/conventional-changelog-writer": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-7.0.1.tgz", - "integrity": "sha512-Uo+R9neH3r/foIvQ0MKcsXkX642hdm9odUp7TqgFS7BsalTcjzRlIfWZrZR1gbxOozKucaKt5KAbjW8J8xRSmA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.0.tgz", + "integrity": "sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==", "dev": true, + "license": "MIT", "dependencies": { - "conventional-commits-filter": "^4.0.0", + "@types/semver": "^7.5.5", + "conventional-commits-filter": "^5.0.0", "handlebars": "^4.7.7", - "json-stringify-safe": "^5.0.1", - "meow": "^12.0.1", - "semver": "^7.5.2", - "split2": "^4.0.0" + "meow": "^13.0.0", + "semver": "^7.5.2" }, "bin": { - "conventional-changelog-writer": "cli.mjs" + "conventional-changelog-writer": "dist/cli/index.js" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/conventional-commit-types": { @@ -5161,36 +5124,48 @@ "dev": true }, "node_modules/conventional-commits-filter": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-4.0.0.tgz", - "integrity": "sha512-rnpnibcSOdFcdclpFwWa+pPlZJhXE7l+XK04zxhbWrhgpR96h33QLz8hITTXbcYICxVr3HZFtbtUAQ+4LdBo9A==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-5.0.0.tgz", + "integrity": "sha512-tQMagCOC59EVgNZcC5zl7XqO30Wki9i9J3acbUvkaosCT6JX3EeFwJD7Qqp4MCikRnzS18WXV3BLIQ66ytu6+Q==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/conventional-commits-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", - "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz", + "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==", "dev": true, + "license": "MIT", "dependencies": { - "is-text-path": "^2.0.0", - "JSONStream": "^1.3.5", - "meow": "^12.0.1", - "split2": "^4.0.0" + "meow": "^13.0.0" }, "bin": { - "conventional-commits-parser": "cli.mjs" + "conventional-commits-parser": "dist/cli/index.js" }, "engines": { - "node": ">=16" + "node": ">=18" + } + }, + "node_modules/convert-hrtime": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", + "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/convert-source-map": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "peer": true, "dependencies": { "safe-buffer": "~5.1.1" } @@ -5198,7 +5173,8 @@ "node_modules/convert-source-map/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==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true }, "node_modules/cookie": { "version": "0.4.2", @@ -5209,29 +5185,25 @@ "node": ">= 0.6" } }, - "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==", - "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==", "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-compat": { - "version": "3.32.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.32.2.tgz", - "integrity": "sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==", + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "license": "MIT", "dependencies": { - "browserslist": "^4.21.10" + "browserslist": "^4.23.0" }, "funding": { "type": "opencollective", @@ -5304,7 +5276,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -5341,225 +5312,190 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==", + "node_modules/css-declaration-sorter": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", "dev": true, + "license": "ISC", "engines": { - "node": "*" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" + "node": "^14 || ^16 || >=18" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha512-0o0IMQE0Ezo4b41Yrm8U6Rp9/Ag81vNXY1gZMnT1XhO4DpjEf2utKERqWJbOoz3g1Wdc1d3QSta/cIuJ1wSTEg==", - "dev": true, - "dependencies": { - "autoprefixer": "^6.3.1", - "decamelize": "^1.1.2", - "defined": "^1.0.0", - "has": "^1.0.1", - "object-assign": "^4.0.1", - "postcss": "^5.0.14", - "postcss-calc": "^5.2.0", - "postcss-colormin": "^2.1.8", - "postcss-convert-values": "^2.3.4", - "postcss-discard-comments": "^2.0.4", - "postcss-discard-duplicates": "^2.0.1", - "postcss-discard-empty": "^2.0.1", - "postcss-discard-overridden": "^0.1.1", - "postcss-discard-unused": "^2.2.1", - "postcss-filter-plugins": "^2.0.0", - "postcss-merge-idents": "^2.1.5", - "postcss-merge-longhand": "^2.0.1", - "postcss-merge-rules": "^2.0.3", - "postcss-minify-font-values": "^1.0.2", - "postcss-minify-gradients": "^1.0.1", - "postcss-minify-params": "^1.0.4", - "postcss-minify-selectors": "^2.0.4", - "postcss-normalize-charset": "^1.1.0", - "postcss-normalize-url": "^3.0.7", - "postcss-ordered-values": "^2.1.0", - "postcss-reduce-idents": "^2.2.2", - "postcss-reduce-initial": "^1.0.0", - "postcss-reduce-transforms": "^1.0.3", - "postcss-svgo": "^2.1.1", - "postcss-unique-selectors": "^2.0.2", - "postcss-value-parser": "^3.2.3", - "postcss-zindex": "^2.0.1" - } - }, - "node_modules/cssnano/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/cssnano/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssnano/node_modules/autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha512-WKExI/eSGgGAkWAO+wMVdFObZV7hQen54UpD1kCCTN3tvlL3W1jL4+lPP/M7MwoP7Q4RHzKtO3JQ4HxYEcd+xQ==", - "dev": true, - "dependencies": { - "browserslist": "^1.7.6", - "caniuse-db": "^1.0.30000634", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^5.2.16", - "postcss-value-parser": "^3.2.3" + "peerDependencies": { + "postcss": "^8.0.9" } }, - "node_modules/cssnano/node_modules/browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw==", - "deprecated": "Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.", + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" }, - "bin": { - "browserslist": "cli.js" + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/cssnano/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "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, + "license": "MIT", "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, - "node_modules/cssnano/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=0.8.0" + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/cssnano/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/cssnano/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "node_modules/cssnano": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.0.4.tgz", + "integrity": "sha512-rQgpZra72iFjiheNreXn77q1haS2GEy69zCMbu4cpXCFPMQF+D4Ik5V7ktMzUF/sA7xCIgcqHwGPnCD+0a1vHg==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" + "cssnano-preset-default": "^7.0.4", + "lilconfig": "^3.1.2" }, "engines": { - "node": ">=0.12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/cssnano/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/cssnano/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/cssnano-preset-default": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.4.tgz", + "integrity": "sha512-jQ6zY9GAomQX7/YNLibMEsRZguqMUGuupXcEk2zZ+p3GUxwCAsobqPYE62VrJ9qZ0l9ltrv2rgjwZPBIFIjYtw==", "dev": true, - "engines": { - "node": ">=0.10.0" + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.1", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^5.0.0", + "postcss-calc": "^10.0.0", + "postcss-colormin": "^7.0.1", + "postcss-convert-values": "^7.0.2", + "postcss-discard-comments": "^7.0.1", + "postcss-discard-duplicates": "^7.0.0", + "postcss-discard-empty": "^7.0.0", + "postcss-discard-overridden": "^7.0.0", + "postcss-merge-longhand": "^7.0.2", + "postcss-merge-rules": "^7.0.2", + "postcss-minify-font-values": "^7.0.0", + "postcss-minify-gradients": "^7.0.0", + "postcss-minify-params": "^7.0.1", + "postcss-minify-selectors": "^7.0.2", + "postcss-normalize-charset": "^7.0.0", + "postcss-normalize-display-values": "^7.0.0", + "postcss-normalize-positions": "^7.0.0", + "postcss-normalize-repeat-style": "^7.0.0", + "postcss-normalize-string": "^7.0.0", + "postcss-normalize-timing-functions": "^7.0.0", + "postcss-normalize-unicode": "^7.0.1", + "postcss-normalize-url": "^7.0.0", + "postcss-normalize-whitespace": "^7.0.0", + "postcss-ordered-values": "^7.0.1", + "postcss-reduce-initial": "^7.0.1", + "postcss-reduce-transforms": "^7.0.0", + "postcss-svgo": "^7.0.1", + "postcss-unique-selectors": "^7.0.1" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/cssnano/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==", + "node_modules/cssnano-utils": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.0.tgz", + "integrity": "sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==", "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/cssnano/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^1.0.0" + "css-tree": "~2.2.0" }, "engines": { - "node": ">=0.8.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, - "node_modules/csso": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha512-FmCI/hmqDeHHLaIQckMhMZneS84yzUZdrWDAvJVVxOwcKE1P1LF9FGmzr1ktIQSxOw6fl3PaQsmfg+GN+VvR3w==", + "node_modules/csso/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==", "dev": true, + "license": "MIT", "dependencies": { - "clap": "^1.0.9", - "source-map": "^0.5.3" - }, - "bin": { - "csso": "bin/csso" + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, - "node_modules/csso/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/csso/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==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "CC0-1.0" }, "node_modules/cz-conventional-changelog": { "version": "3.3.0", @@ -5581,15 +5517,6 @@ "@commitlint/load": ">6.1.1" } }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -5606,22 +5533,6 @@ } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", - "engines": { - "node": ">=0.10" - } - }, "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", @@ -5651,23 +5562,16 @@ "node": ">=0.10.0" } }, - "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==", + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, "dependencies": { - "kind-of": "^5.0.2" + "clone": "^1.0.2" }, - "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==", - "engines": { - "node": ">= 0.10" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/define-properties": { @@ -5685,27 +5589,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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==", - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==", - "dev": true - }, "node_modules/del": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-7.0.0.tgz", - "integrity": "sha512-tQbV/4u5WVB8HMJr08pgw0b6nG4RGt/tj+7Numvq+zqcvUFeMaIWWOUFltiU+6go8BSO2/ogsB4EasDaj0y68Q==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/del/-/del-7.1.0.tgz", + "integrity": "sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==", "dependencies": { "globby": "^13.1.2", "graceful-fs": "^4.2.10", @@ -5732,12 +5619,6 @@ "node": ">= 0.8" } }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", - "dev": true - }, "node_modules/destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", @@ -5753,9 +5634,9 @@ } }, "node_modules/detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true, "engines": { "node": ">=8" @@ -5794,16 +5675,63 @@ "node": ">=8" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, + "license": "MIT", "dependencies": { - "esutils": "^2.0.2" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" }, "engines": { - "node": ">=6.0.0" + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, "node_modules/dot-prop": { @@ -5811,6 +5739,7 @@ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, + "license": "MIT", "dependencies": { "is-obj": "^2.0.0" }, @@ -5827,37 +5756,24 @@ "readable-stream": "^2.0.2" } }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "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==", "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==", - "dependencies": { - "isobject": "^3.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, "node_modules/easy-extender": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", @@ -5870,6 +5786,17 @@ "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==", + "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", @@ -5959,14 +5886,20 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.523", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.523.tgz", - "integrity": "sha512-9AreocSUWnzNtvLcbpng6N+GkXnCcBR80IQkxRC9Dfdyg4gaWNUPBujAHUpKkiUkoSoR9UlhA4zD/IgBklmhzg==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.0.tgz", + "integrity": "sha512-Vb3xHHYnLseK8vlMJQKJYXJ++t4u1/qJ3vykuVrVjvdiOEhYyT1AuP4x03G8EnPmYvYOhe9T+dADTmthjRQMkA==", + "license": "ISC" }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/emojilib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", "dev": true }, "node_modules/encodeurl": { @@ -5987,9 +5920,9 @@ } }, "node_modules/engine.io": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.1.tgz", - "integrity": "sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.2.tgz", + "integrity": "sha512-FKn/3oMiJjrOEOeUub2WCox6JhxBXq/Zn3fZOMCBxKnNYtsdKjxhl7yR3fZhM9PV+rdE75SU5SYMc+2PGzo+Tg==", "dev": true, "dependencies": { "@types/cookie": "^0.4.1", @@ -6008,18 +5941,27 @@ } }, "node_modules/engine.io-client": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.4.0.tgz", - "integrity": "sha512-GyKPDyoEha+XZ7iEqam49vz6auPnNJ9ZBfy89f+rMMas8AuiMWOZ9PVzu8xb9ZC6rafUqiGHSCfu22ih66E+1g==", + "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", "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", + "engine.io-parser": "~5.2.1", "ws": "~8.11.0", "xmlhttprequest-ssl": "~2.0.0" } }, + "node_modules/engine.io-client/node_modules/engine.io-parser": { + "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" + } + }, "node_modules/engine.io-parser": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", @@ -6029,49 +5971,74 @@ "node": ">=10.0.0" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/env-ci": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-9.0.0.tgz", - "integrity": "sha512-Q3cjr1tX9xwigprw4G8M3o7PIOO/1LYji6TyGsbD1WfMmD23etZvhgmPXJqkP788yH4dgSSK7oaIMuaayUJIfg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-11.0.0.tgz", + "integrity": "sha512-apikxMgkipkgTvMdRT9MNqWx5VLOci79F4VBd7Op/7OPjjoanjdAvn6fglMCCEf/1bAh8eOiuEVCUs4V3qP3nQ==", "dev": true, "dependencies": { - "execa": "^7.0.0", + "execa": "^8.0.0", "java-properties": "^1.0.2" }, "engines": { - "node": "^16.14 || >=18" + "node": "^18.17 || >=20.6.1" } }, "node_modules/env-ci/node_modules/execa": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz", - "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", "is-stream": "^3.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^5.1.0", "onetime": "^6.0.0", - "signal-exit": "^3.0.7", + "signal-exit": "^4.1.0", "strip-final-newline": "^3.0.0" }, "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + "node": ">=16.17" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/env-ci/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/env-ci/node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", "dev": true, "engines": { - "node": ">=14.18.0" + "node": ">=16.17.0" } }, "node_modules/env-ci/node_modules/is-stream": { @@ -6099,9 +6066,9 @@ } }, "node_modules/env-ci/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, "dependencies": { "path-key": "^4.0.0" @@ -6140,6 +6107,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/env-ci/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/env-ci/node_modules/strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", @@ -6152,6 +6131,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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", @@ -6236,54 +6224,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es5-ext": { - "version": "0.10.61", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.61.tgz", - "integrity": "sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==", - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "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==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "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==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "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==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, "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==", + "license": "MIT", "engines": { "node": ">=6" } @@ -6303,40 +6248,38 @@ } }, "node_modules/eslint": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz", - "integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==", + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.7.0.tgz", + "integrity": "sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.49.0", - "@humanwhocodes/config-array": "^0.11.11", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.17.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.7.0", "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.0.2", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", @@ -6350,23 +6293,24 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", + "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -6461,6 +6405,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/eslint/node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -6559,40 +6516,42 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", + "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.12.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", + "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, + "license": "Apache-2.0", "engines": { - "node": ">=4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esquery": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.2.tgz", - "integrity": "sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -6605,6 +6564,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -6617,6 +6577,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -6672,36 +6633,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=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==", - "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/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, "node_modules/expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -6713,35 +6644,11 @@ "node": ">=0.10.0" } }, - "node_modules/ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", - "dependencies": { - "type": "^2.5.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", - "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==" - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, - "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==", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -6756,102 +6663,21 @@ "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==", - "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/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, - "node_modules/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==", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "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", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dependencies": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" }, "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -6886,6 +6712,14 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "engines": { + "node": ">= 4.9.1" + } + }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -6907,35 +6741,27 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "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, + "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.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==", - "optional": true - }, "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==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/finalhandler": { @@ -6987,41 +6813,29 @@ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", "dev": true }, - "node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "node_modules/find-up-simple": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-up-simple/-/find-up-simple-1.0.0.tgz", + "integrity": "sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==", "dev": true, - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-up/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, "node_modules/find-versions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-5.1.0.tgz", - "integrity": "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-6.0.0.tgz", + "integrity": "sha512-2kCCtc+JvcZ86IGAz3Z2Y0A1baIz9fL31pH/0S1IqZr9Iwnjq8izfPtrCyQKO6TLMPELLsQMre7VDqeIKCsHkA==", "dev": true, "dependencies": { - "semver-regex": "^4.0.5" + "semver-regex": "^4.0.5", + "super-regex": "^1.0.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7043,78 +6857,53 @@ } }, "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==", "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==", - "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==", "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "flatted": "^3.2.9", + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", - "dev": true - }, - "node_modules/flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", - "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", - "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==", - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "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": [ { @@ -7155,9 +6944,12 @@ } }, "node_modules/fontawesome-subset/node_modules/yaml": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.1.tgz", - "integrity": "sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz", + "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==", + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } @@ -7198,27 +6990,44 @@ "node": ">=0.10.0" } }, - "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, "engines": { - "node": "*" + "node": ">=14" }, "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" + "url": "https://github.com/sponsors/isaacs" } }, - "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==", - "dependencies": { - "map-cache": "^0.2.2" + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", "engines": { - "node": ">=0.10.0" + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" } }, "node_modules/fresh": { @@ -7255,24 +7064,15 @@ } }, "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==", "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==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "node": ">=10.13.0" } }, "node_modules/fs.realpath": { @@ -7281,21 +7081,16 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "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": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, "optional": true, "os": [ "darwin" ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, "engines": { - "node": ">= 4.0" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/function-bind": { @@ -7303,6 +7098,18 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "node_modules/function-timeout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-1.0.1.tgz", + "integrity": "sha512-6yPMImFFuaMPNaTMTBuolA8EanHJWF5Vju0NHpObRURT105J6x1Mf2a7J4P7Sqk2xDxv24N5L0RatEhTBhNmdA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/function.prototype.name": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", @@ -7338,9 +7145,12 @@ } }, "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==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, "node_modules/get-intrinsic": { "version": "1.2.0", @@ -7382,12 +7192,13 @@ "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==", - "engines": { - "node": ">=0.10.0" + "node_modules/git-cz": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/git-cz/-/git-cz-4.9.0.tgz", + "integrity": "sha512-cSRL8IIOXU7UFLdbziCYqg8f8InwLwqHezkiRHNSph7oZqGv0togId1kMTfKil6gzK0VaSXeVBb4oDl0fQCHiw==", + "bin": { + "git-cz": "bin/git-cz.js", + "gitcz": "bin/git-cz.js" } }, "node_modules/git-log-parser": { @@ -7424,26 +7235,28 @@ } }, "node_modules/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -7452,60 +7265,33 @@ } }, "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.2", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-8.0.2.tgz", + "integrity": "sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw==", "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" - }, - "engines": { - "node": ">= 0.10" - } - }, - "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==", - "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==", - "dependencies": { - "is-extglob": "^2.1.0" + "normalize-path": "^3.0.0", + "streamx": "^2.12.5" }, "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==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-6.0.0.tgz", + "integrity": "sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==", "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" + "async-done": "^2.0.0", + "chokidar": "^3.5.3" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/global-dirs": { @@ -7561,15 +7347,13 @@ } }, "node_modules/globals": { - "version": "13.21.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz", - "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==", + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.8.0.tgz", + "integrity": "sha512-VZAJ4cewHTExBWDHR6yptdIBlx9YSSZuwojj9Nt5mBRXQzrKakDsVKQ1J63sklLvzAJm0X5+RpO4i3Y2hcOnFw==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7611,6 +7395,7 @@ "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" }, @@ -7634,43 +7419,38 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, - "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==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-5.0.0.tgz", + "integrity": "sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg==", "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-autoprefixer": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/gulp-autoprefixer/-/gulp-autoprefixer-8.0.0.tgz", - "integrity": "sha512-sVR++PIaXpa81p52dmmA/jt50bw0egmylK5mjagfgOJ8uLDGaF9tHyzvetkY9Uo0gBZUS5sVqN3kX/GlUKOyog==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/gulp-autoprefixer/-/gulp-autoprefixer-9.0.0.tgz", + "integrity": "sha512-lVQz5fqdjm4RMB1O3xLPtaZNMbFFoGKbV+SN3NJgT9X+PIyYld7dXARpoXIKEZAqE9WC2SoDQU0mxqZahWq07A==", "dependencies": { - "autoprefixer": "^10.2.6", - "fancy-log": "^1.3.3", - "plugin-error": "^1.0.1", - "postcss": "^8.3.0", - "through2": "^4.0.2", + "autoprefixer": "^10.4.16", + "gulp-plugin-extras": "^0.2.2", + "postcss": "^8.4.31", "vinyl-sourcemaps-apply": "^0.2.1" }, "engines": { - "node": ">=12" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" }, "peerDependencies": { "gulp": ">=4" @@ -7682,44 +7462,132 @@ } }, "node_modules/gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", - "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==", + "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": ">=10.13.0" } }, - "node_modules/gulp-concat": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", - "integrity": "sha512-a2scActrQrDBpBbR3WUZGyGS1JEPLg5PZJdIa7/Bi3GuKAmPYDK6SFhy/NZq5R8KsKKFvtfR0fakbUCcKGCCjg==", - "dev": true, + "node_modules/gulp-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "concat-with-sourcemaps": "^1.0.0", - "through2": "^2.0.0", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/gulp-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/gulp-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/gulp-cli/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==", + "dependencies": { + "sparkles": "^2.1.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/gulp-cli/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==", + "dependencies": { + "glogg": "^2.2.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/gulp-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/gulp-cli/node_modules/sparkles": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-2.1.0.tgz", + "integrity": "sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==", + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/gulp-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gulp-concat": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", + "integrity": "sha512-a2scActrQrDBpBbR3WUZGyGS1JEPLg5PZJdIa7/Bi3GuKAmPYDK6SFhy/NZq5R8KsKKFvtfR0fakbUCcKGCCjg==", + "dev": true, + "dependencies": { + "concat-with-sourcemaps": "^1.0.0", + "through2": "^2.0.0", "vinyl": "^2.0.0" }, "engines": { @@ -7736,29 +7604,87 @@ "xtend": "~4.0.1" } }, - "node_modules/gulp-cssnano": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/gulp-cssnano/-/gulp-cssnano-2.1.3.tgz", - "integrity": "sha512-r8qdX5pTXsBb/IRm9loE8Ijz8UiPW/URMC/bKJe4FPNHRaz4aEx8Bev03L0FYHd/7BSGu/ebmfumAkpGuTdenA==", + "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==", + "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==", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/gulp-postcss": { + "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": { - "buffer-from": "^1.0.0", - "cssnano": "^3.0.0", - "object-assign": "^4.0.1", - "plugin-error": "^1.0.1", + "fancy-log": "^2.0.0", + "plugin-error": "^2.0.1", + "postcss-load-config": "^5.0.0", "vinyl-sourcemaps-apply": "^0.2.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "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": { + "color-support": "^1.1.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/gulp-postcss/node_modules/plugin-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-2.0.1.tgz", + "integrity": "sha512-zMakqvIDyY40xHOvzXka0kUvf40nYIuwRE8dWhti2WtjQZ31xAgBZBhxsK7vK3QbRXS1Xms/LO7B5cuAsfB2Gg==", + "dev": true, + "dependencies": { + "ansi-colors": "^1.0.1" + }, + "engines": { + "node": ">=10.13.0" } }, "node_modules/gulp-purgecss": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gulp-purgecss/-/gulp-purgecss-5.0.0.tgz", - "integrity": "sha512-/s4bEI1JhwhCDrYu665rfJ/O9uMfAked3k6pQJlDC86JwJAUMXiMxfex6fV0WP36kRb+9ZTLVb6RC/DgfbS4/g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gulp-purgecss/-/gulp-purgecss-6.0.0.tgz", + "integrity": "sha512-NZS8GQ8Yga/exoI0Coq6VOvjP5DL13NwcFc6K70zIWM3ZVsyr4KgoepeYaOqH5gOCMv7vbzX0q4TeCNmi1687w==", "dev": true, + "license": "MIT", "dependencies": { - "glob": "^8.0.3", + "glob": "^10.3.10", "plugin-error": "^2.0.0", - "purgecss": "^5.0.0", - "through2": "^4.0.1" + "purgecss": "^6.0.0", + "through2": "^4.0.1", + "vinyl-sourcemaps-apply": "^0.2.1" } }, "node_modules/gulp-purgecss/node_modules/brace-expansion": { @@ -7766,39 +7692,46 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/gulp-purgecss/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, + "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": ">=12" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/gulp-purgecss/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/gulp-purgecss/node_modules/plugin-error": { @@ -7922,6 +7855,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", + "dev": true, "dependencies": { "glogg": "^1.0.0" }, @@ -7934,6 +7868,7 @@ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", @@ -7966,27 +7901,6 @@ "node": ">= 0.4.0" } }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/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/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -8062,40 +7976,13 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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==", - "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==", - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "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==", - "dependencies": { - "is-buffer": "^1.1.5" - }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": "*" } }, "node_modules/homedir-polyfill": { @@ -8134,20 +8021,14 @@ } }, "node_modules/hosted-git-info/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.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" } }, - "node_modules/html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", - "dev": true - }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -8234,10 +8115,29 @@ "node": ">=0.10.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "engines": { "node": ">= 4" } @@ -8272,16 +8172,27 @@ "node": ">=4" } }, - "node_modules/import-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", - "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", + "node_modules/import-from-esm": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/import-from-esm/-/import-from-esm-1.3.3.tgz", + "integrity": "sha512-U3Qt/CyfFpTUv6LOP2jRTLYjphH6zg3okMfHbyqRa/W2w6hr8OsJWVggNlR4jxuojQy81TgTJTxgSkyoteRGMQ==", "dev": true, - "engines": { - "node": ">=12.2" + "dependencies": { + "debug": "^4.3.4", + "import-meta-resolve": "^4.0.0" }, + "engines": { + "node": ">=16.20" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", + "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==", + "dev": true, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/imurmurhash": { @@ -8302,11 +8213,17 @@ "node": ">=8" } }, - "node_modules/indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", - "dev": true + "node_modules/index-to-position": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-0.1.2.tgz", + "integrity": "sha512-MWDKS3AS1bGCHLBA2VLImJz42f7bJh8wQsTGCzI3j519/CASStoDONUBVz2I/VID0MpiX3SGSnbOD2xUalbE5g==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/inflight": { "version": "1.0.6", @@ -8328,51 +8245,117 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", + "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", "dev": true, "dependencies": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=12.0.0" } }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "ansi-regex": "^4.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/internal-slot": { + "node_modules/inquirer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/inquirer/node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/internal-slot": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", @@ -8386,11 +8369,11 @@ } }, "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/into-stream": { @@ -8409,14 +8392,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-absolute": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", @@ -8429,37 +8404,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/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==", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-array-buffer": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", @@ -8490,14 +8434,14 @@ } }, "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==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dependencies": { - "binary-extensions": "^1.0.0" + "binary-extensions": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/is-boolean-object": { @@ -8515,11 +8459,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==" - }, "node_modules/is-builtin-module": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", @@ -8556,28 +8495,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/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==", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", @@ -8592,27 +8509,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -8622,12 +8518,11 @@ } }, "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/is-glob": { @@ -8641,6 +8536,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", @@ -8666,14 +8570,11 @@ } }, "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==", - "dependencies": { - "kind-of": "^3.0.2" - }, + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "engines": { - "node": ">=0.10.0" + "node": ">=0.12.0" } }, "node_modules/is-number-like": { @@ -8699,22 +8600,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "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==", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8742,12 +8633,16 @@ } }, "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-plain-object": { @@ -8829,18 +8724,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-svg": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha512-Ya1giYJUkcL/94quj0+XGcmts6cETPBW1MiFz1ReJrnDJ680F52qpAEGAEGU0nq96FRGIGPx6Yo1CyPXcOoyGw==", - "dev": true, - "dependencies": { - "html-comment-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-symbol": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", @@ -8855,18 +8738,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-text-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", - "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", - "dev": true, - "dependencies": { - "text-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-typed-array": { "version": "1.1.10", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", @@ -8897,12 +8768,12 @@ } }, "node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.0.0.tgz", + "integrity": "sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==", "dev": true, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8911,7 +8782,8 @@ "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==" + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true }, "node_modules/is-valid-glob": { "version": "1.0.0", @@ -8968,10 +8840,11 @@ } }, "node_modules/issue-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", - "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-7.0.1.tgz", + "integrity": "sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==", "dev": true, + "license": "MIT", "dependencies": { "lodash.capitalize": "^4.2.1", "lodash.escaperegexp": "^4.1.2", @@ -8980,7 +8853,7 @@ "lodash.uniqby": "^4.7.0" }, "engines": { - "node": ">=10.13" + "node": "^18.17 || >=20.6.1" } }, "node_modules/istextorbinary": { @@ -8998,6 +8871,21 @@ "url": "https://bevry.me/fund" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/java-properties": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", @@ -9007,16 +8895,11 @@ "node": ">= 0.6.0" } }, - "node_modules/js-base64": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "dev": true - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", @@ -9034,7 +8917,6 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "peer": true, "bin": { "jsesc": "bin/jsesc" }, @@ -9042,6 +8924,13 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, "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", @@ -9063,12 +8952,7 @@ "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "node_modules/json5": { @@ -9095,87 +8979,30 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "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==" - }, - "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==", - "engines": { - "node": ">=0.10.0" + "json-buffer": "3.0.1" } }, "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==", - "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==", - "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==", - "dependencies": { - "invert-kv": "^1.0.0" - }, + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-2.0.0.tgz", + "integrity": "sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==", "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==", - "dependencies": { - "flush-write-stream": "^1.0.2" - }, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-4.0.0.tgz", + "integrity": "sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==", "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/levn": { @@ -9192,147 +9019,47 @@ } }, "node_modules/liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-5.0.0.tgz", + "integrity": "sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==", "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" + "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.8" + "node": ">=10.13.0" } }, - "node_modules/liftoff/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==", + "node_modules/liftoff/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==", "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "detect-file": "^1.0.0", + "is-glob": "^4.0.3", + "micromatch": "^4.0.4", + "resolve-dir": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, - "node_modules/liftoff/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/liftoff/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==", - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/liftoff/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/liftoff/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/liftoff/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/liftoff/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/liftoff/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/liftoff/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "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" + "node": ">=14" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/limiter": { @@ -9381,185 +9108,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/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/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/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/localtunnel/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/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/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/localtunnel/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/localtunnel/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/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/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/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/localtunnel/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dev": true, - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -9575,7 +9123,8 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.clonedeep": { "version": "4.5.0", @@ -9591,7 +9140,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.isfinite": { "version": "3.3.2", @@ -9603,13 +9153,15 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.isstring": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.map": { "version": "4.6.0", @@ -9621,7 +9173,8 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", @@ -9633,163 +9186,94 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.uniqby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", - "dev": true - }, - "node_modules/longest": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", - "integrity": "sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, - "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==", + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/magic-string": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", - "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.13" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/make-error-cause": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", - "integrity": "sha512-4TO2Y3HkBnis4c0dxhAgD/jprySYLACf7nwN6V0HAHDx59g12WlRpUmFy1bRHamjGUEEBrEvCq6SUpsEE2lhUg==", + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "make-error": "^1.2.0" - } - }, - "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==", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/make-iterator/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dependencies": { - "object-visit": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/marked": { - "version": "4.2.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.2.12.tgz", - "integrity": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==", - "dev": true, - "peer": true, - "bin": { - "marked": "bin/marked.js" + "node": ">=8" }, - "engines": { - "node": ">= 12" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/marked-terminal": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.1.1.tgz", - "integrity": "sha512-+cKTOx9P4l7HwINYhzbrBSyzgxO2HaHKGZGuB1orZsMIgXYaJyfidT81VXRdpelW/PcHEWxywscePVgI/oUF6g==", + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "ansi-escapes": "^5.0.0", - "cardinal": "^2.1.1", - "chalk": "^5.0.0", - "cli-table3": "^0.6.1", - "node-emoji": "^1.11.0", - "supports-hyperlinks": "^2.2.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=14.13.1 || >=16.0.0" + "node": ">=10" }, - "peerDependencies": { - "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/marked-terminal/node_modules/ansi-escapes": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", - "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "type-fest": "^1.0.2" + "color-name": "~1.1.4" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=7.0.0" } }, - "node_modules/marked-terminal/node_modules/chalk": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.0.1.tgz", - "integrity": "sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==", + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8" } }, - "node_modules/marked-terminal/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==", + "node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, "engines": { "node": ">=10" @@ -9798,162 +9282,155 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==", + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.10.0" + "node": ">=8" } }, - "node_modules/matchdep/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==", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, + "node_modules/longest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", + "integrity": "sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==", + "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/matchdep/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "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": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "yallist": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "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==", + "node_modules/magic-string": { + "version": "0.30.8", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz", + "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==", "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" + "@jridgewell/sourcemap-codec": "^1.4.15" }, "engines": { - "node": ">= 0.10" + "node": ">=12" } }, - "node_modules/matchdep/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/magic-string/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==" }, - "node_modules/matchdep/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/make-error-cause": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "integrity": "sha512-4TO2Y3HkBnis4c0dxhAgD/jprySYLACf7nwN6V0HAHDx59g12WlRpUmFy1bRHamjGUEEBrEvCq6SUpsEE2lhUg==", + "dev": true, "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" + "make-error": "^1.2.0" } }, - "node_modules/matchdep/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, + "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==", "engines": { "node": ">=0.10.0" } }, - "node_modules/matchdep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" + "node_modules/marked": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-12.0.1.tgz", + "integrity": "sha512-Y1/V2yafOcOdWQCX0XpAKXzDakPOpn6U0YLxTJs3cww6VxOzZV1BTOOYWLvH3gX38cq+iLwljHHTnMtlDfg01Q==", + "dev": true, + "bin": { + "marked": "bin/marked.js" }, "engines": { - "node": ">=0.10.0" + "node": ">= 18" } }, - "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==", + "node_modules/marked-terminal": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-7.0.0.tgz", + "integrity": "sha512-sNEx8nn9Ktcm6pL0TnRz8tnXq/mSS0Q1FRSwJOAqw4lAB4l49UeDf85Gm1n9RPFm5qurCPjwi1StAQT2XExhZw==", + "dev": true, "dependencies": { - "is-extglob": "^2.1.0" + "ansi-escapes": "^6.2.0", + "chalk": "^5.3.0", + "cli-highlight": "^2.1.11", + "cli-table3": "^0.6.3", + "node-emoji": "^2.1.3", + "supports-hyperlinks": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=16.0.0" + }, + "peerDependencies": { + "marked": ">=1 <13" } }, - "node_modules/matchdep/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==", + "node_modules/marked-terminal/node_modules/ansi-escapes": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", + "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", + "dev": true, "dependencies": { - "isobject": "^3.0.1" + "type-fest": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/matchdep/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/marked-terminal/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": ">=0.10.0" + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "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==", - "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" - }, + "node_modules/marked-terminal/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/math-expression-evaluator": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.4.0.tgz", - "integrity": "sha512-4vRUvPyxdO8cWULGTh9dZWL2tZK6LDBvj+OGHBER7poH9Qdt7kXEoj20wiz4lQUbUXQZFjPbe5mVDo9nutizCw==", - "dev": true + "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, + "license": "CC0-1.0" }, "node_modules/memorystream": { "version": "0.3.1", @@ -9964,12 +9441,13 @@ } }, "node_modules/meow": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", - "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16.10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -10007,66 +9485,28 @@ "node": ">=8.6" } }, - "node_modules/micromatch/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" + "node_modules/mime": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.1.tgz", + "integrity": "sha512-5lZ5tyrIfliMXzFtkYyekWbtRXObT9OWa8IwQ5uxTBDHucNNwniRqo0yInflj+iYi5CBa6qxadGzGarDfuEOxA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa" + ], + "bin": { + "mime": "bin/cli.js" }, "engines": { - "node": ">=8" + "node": ">=16" } }, - "node_modules/micromatch/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==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, "engines": { - "node": ">=8" - } - }, - "node_modules/micromatch/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/micromatch/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==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" + "node": ">= 0.6" } }, "node_modules/mime-types": { @@ -10102,10 +9542,22 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } }, "node_modules/mitt": { "version": "1.2.0", @@ -10113,40 +9565,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==", - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/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==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/mkdirp": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", @@ -10167,29 +9585,40 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "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==", "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "node_modules/nan": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", - "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==", - "optional": true + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } }, "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -10197,116 +9626,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==", - "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/nanomatch/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==", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/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==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -10326,7 +9645,8 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nerf-dart": { "version": "1.0.0", @@ -10334,29 +9654,30 @@ "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==", "dev": true }, - "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==" - }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", + "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==", "dev": true, "dependencies": { - "lodash": "^4.17.21" + "@sindresorhus/is": "^4.6.0", + "char-regex": "^1.0.2", + "emojilib": "^2.4.0", + "skin-tone": "^2.0.0" + }, + "engines": { + "node": ">=18" } }, "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==" }, "node_modules/normalize-package-data": { "version": "6.0.0", @@ -10402,20 +9723,20 @@ } }, "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==", "dependencies": { - "once": "^1.3.2" + "once": "^1.4.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/npm": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-10.1.0.tgz", - "integrity": "sha512-pZ2xybXzNGbJFZEKNbPoEXsE38Xou9VTnxxBk+B3pz0ndsGCs7iWHoUCPSsISU2hjmkWfDkJo3bYKE8RDOg4eg==", + "version": "10.7.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.7.0.tgz", + "integrity": "sha512-FXylyYSXNjgXx3l82BT8RSQvCoGIQ3h8YdRFGKNvo3Pv/bKscK4pdWkx/onwTpHDqGw+oeLf4Rxln9WVyxAxlQ==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -10424,6 +9745,7 @@ "@npmcli/map-workspaces", "@npmcli/package-json", "@npmcli/promise-spawn", + "@npmcli/redact", "@npmcli/run-script", "@sigstore/tuf", "abbrev", @@ -10432,8 +9754,6 @@ "chalk", "ci-info", "cli-columns", - "cli-table3", - "columnify", "fastest-levenshtein", "fs-minipass", "glob", @@ -10461,6 +9781,7 @@ "ms", "node-gyp", "nopt", + "normalize-package-data", "npm-audit-report", "npm-install-checks", "npm-package-arg", @@ -10468,7 +9789,6 @@ "npm-profile", "npm-registry-fetch", "npm-user-validate", - "npmlog", "p-map", "pacote", "parse-conflict-json", @@ -10476,6 +9796,7 @@ "qrcode-terminal", "read", "semver", + "spdx-expression-parse", "ssri", "supports-color", "tar", @@ -10489,67 +9810,67 @@ "dev": true, "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^7.1.0", - "@npmcli/config": "^7.2.0", + "@npmcli/arborist": "^7.2.1", + "@npmcli/config": "^8.0.2", "@npmcli/fs": "^3.1.0", - "@npmcli/map-workspaces": "^3.0.4", - "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^7.0.1", - "@sigstore/tuf": "^2.1.0", + "@npmcli/map-workspaces": "^3.0.6", + "@npmcli/package-json": "^5.1.0", + "@npmcli/promise-spawn": "^7.0.1", + "@npmcli/redact": "^2.0.0", + "@npmcli/run-script": "^8.1.0", + "@sigstore/tuf": "^2.3.2", "abbrev": "^2.0.0", "archy": "~1.0.0", - "cacache": "^18.0.0", + "cacache": "^18.0.2", "chalk": "^5.3.0", - "ci-info": "^3.8.0", + "ci-info": "^4.0.0", "cli-columns": "^4.0.0", - "cli-table3": "^0.6.3", - "columnify": "^1.6.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.3", - "glob": "^10.3.3", + "glob": "^10.3.12", "graceful-fs": "^4.2.11", - "hosted-git-info": "^7.0.0", - "ini": "^4.1.1", - "init-package-json": "^6.0.0", - "is-cidr": "^4.0.2", - "json-parse-even-better-errors": "^3.0.0", - "libnpmaccess": "^8.0.0", - "libnpmdiff": "^6.0.1", - "libnpmexec": "^7.0.1", - "libnpmfund": "^4.1.1", + "hosted-git-info": "^7.0.1", + "ini": "^4.1.2", + "init-package-json": "^6.0.2", + "is-cidr": "^5.0.5", + "json-parse-even-better-errors": "^3.0.1", + "libnpmaccess": "^8.0.1", + "libnpmdiff": "^6.0.3", + "libnpmexec": "^8.0.0", + "libnpmfund": "^5.0.1", "libnpmhook": "^10.0.0", - "libnpmorg": "^6.0.0", - "libnpmpack": "^6.0.1", - "libnpmpublish": "^9.0.0", + "libnpmorg": "^6.0.1", + "libnpmpack": "^7.0.0", + "libnpmpublish": "^9.0.2", "libnpmsearch": "^7.0.0", "libnpmteam": "^6.0.0", - "libnpmversion": "^5.0.0", - "make-fetch-happen": "^13.0.0", - "minimatch": "^9.0.3", - "minipass": "^7.0.3", + "libnpmversion": "^6.0.0", + "make-fetch-happen": "^13.0.1", + "minimatch": "^9.0.4", + "minipass": "^7.0.4", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", - "node-gyp": "^9.4.0", + "node-gyp": "^10.1.0", "nopt": "^7.2.0", + "normalize-package-data": "^6.0.0", "npm-audit-report": "^5.0.0", - "npm-install-checks": "^6.2.0", - "npm-package-arg": "^11.0.0", + "npm-install-checks": "^6.3.0", + "npm-package-arg": "^11.0.2", "npm-pick-manifest": "^9.0.0", - "npm-profile": "^9.0.0", - "npm-registry-fetch": "^16.0.0", + "npm-profile": "^9.0.2", + "npm-registry-fetch": "^17.0.0", "npm-user-validate": "^2.0.0", - "npmlog": "^7.0.1", "p-map": "^4.0.0", - "pacote": "^17.0.4", + "pacote": "^18.0.3", "parse-conflict-json": "^3.0.1", - "proc-log": "^3.0.0", + "proc-log": "^4.2.0", "qrcode-terminal": "^0.12.0", - "read": "^2.1.0", - "semver": "^7.5.4", + "read": "^3.0.1", + "semver": "^7.6.0", + "spdx-expression-parse": "^4.0.0", "ssri": "^10.0.5", "supports-color": "^9.4.0", - "tar": "^6.1.15", + "tar": "^6.2.1", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "treeverse": "^3.0.0", @@ -10653,9 +9974,9 @@ } }, "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "bin": { "semver": "bin/semver" } @@ -10702,16 +10023,6 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/@colors/colors": { - "version": "1.5.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/npm/node_modules/@isaacs/cliui": { "version": "8.0.2", "dev": true, @@ -10786,106 +10097,56 @@ "license": "ISC" }, "node_modules/npm/node_modules/@npmcli/agent": { - "version": "2.1.1", + "version": "2.2.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { + "agent-base": "^7.1.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.1", "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.1" + "socks-proxy-agent": "^8.0.3" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/@npmcli/agent/node_modules/agent-base": { - "version": "7.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/npm/node_modules/@npmcli/agent/node_modules/http-proxy-agent": { - "version": "7.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/npm/node_modules/@npmcli/agent/node_modules/https-proxy-agent": { - "version": "7.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/npm/node_modules/@npmcli/agent/node_modules/socks-proxy-agent": { - "version": "8.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.1", - "debug": "^4.3.4", - "socks": "^2.7.1" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "7.1.0", + "version": "7.5.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", "@npmcli/fs": "^3.1.0", - "@npmcli/installed-package-contents": "^2.0.2", + "@npmcli/installed-package-contents": "^2.1.0", "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^7.0.0", + "@npmcli/metavuln-calculator": "^7.1.0", "@npmcli/name-from-folder": "^2.0.0", "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/query": "^3.0.0", - "@npmcli/run-script": "^7.0.1", + "@npmcli/package-json": "^5.1.0", + "@npmcli/query": "^3.1.0", + "@npmcli/redact": "^2.0.0", + "@npmcli/run-script": "^8.1.0", "bin-links": "^4.0.1", "cacache": "^18.0.0", "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^7.0.0", + "hosted-git-info": "^7.0.1", "json-parse-even-better-errors": "^3.0.0", "json-stringify-nice": "^1.1.4", - "minimatch": "^9.0.0", + "minimatch": "^9.0.4", "nopt": "^7.0.0", "npm-install-checks": "^6.2.0", - "npm-package-arg": "^11.0.0", + "npm-package-arg": "^11.0.2", "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.0.0", - "npmlog": "^7.0.1", - "pacote": "^17.0.4", + "npm-registry-fetch": "^17.0.0", + "pacote": "^18.0.1", "parse-conflict-json": "^3.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.2.0", + "proggy": "^2.0.0", "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.2", + "promise-call-limit": "^3.0.1", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", "ssri": "^10.0.5", @@ -10900,34 +10161,22 @@ } }, "node_modules/npm/node_modules/@npmcli/config": { - "version": "7.2.0", + "version": "8.3.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/map-workspaces": "^3.0.2", - "ci-info": "^3.8.0", - "ini": "^4.1.0", + "ci-info": "^4.0.0", + "ini": "^4.1.2", "nopt": "^7.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.2.0", "read-package-json-fast": "^3.0.2", "semver": "^7.3.5", "walk-up-path": "^3.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/@npmcli/disparity-colors": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ansi-styles": "^4.3.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/fs": { @@ -10943,7 +10192,7 @@ } }, "node_modules/npm/node_modules/@npmcli/git": { - "version": "5.0.3", + "version": "5.0.6", "dev": true, "inBundle": true, "license": "ISC", @@ -10951,7 +10200,7 @@ "@npmcli/promise-spawn": "^7.0.0", "lru-cache": "^10.0.1", "npm-pick-manifest": "^9.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", @@ -10962,7 +10211,7 @@ } }, "node_modules/npm/node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", + "version": "2.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -10971,14 +10220,14 @@ "npm-normalize-package-bin": "^3.0.0" }, "bin": { - "installed-package-contents": "lib/index.js" + "installed-package-contents": "bin/index.js" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@npmcli/map-workspaces": { - "version": "3.0.4", + "version": "3.0.6", "dev": true, "inBundle": true, "license": "ISC", @@ -10993,14 +10242,15 @@ } }, "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "7.0.0", + "version": "7.1.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "cacache": "^18.0.0", "json-parse-even-better-errors": "^3.0.0", - "pacote": "^17.0.0", + "pacote": "^18.0.0", + "proc-log": "^4.1.0", "semver": "^7.3.5" }, "engines": { @@ -11026,7 +10276,7 @@ } }, "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "5.0.0", + "version": "5.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -11036,7 +10286,7 @@ "hosted-git-info": "^7.0.0", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^6.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "semver": "^7.5.3" }, "engines": { @@ -11044,7 +10294,7 @@ } }, "node_modules/npm/node_modules/@npmcli/promise-spawn": { - "version": "7.0.0", + "version": "7.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -11056,7 +10306,7 @@ } }, "node_modules/npm/node_modules/@npmcli/query": { - "version": "3.0.0", + "version": "3.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -11067,16 +10317,26 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/@npmcli/redact": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "7.0.1", + "version": "8.1.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^3.0.0", + "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", "which": "^4.0.0" }, "engines": { @@ -11094,34 +10354,44 @@ } }, "node_modules/npm/node_modules/@sigstore/bundle": { - "version": "2.1.0", + "version": "2.3.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1" + "@sigstore/protobuf-specs": "^0.3.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/npm/node_modules/@sigstore/core": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/npm/node_modules/@sigstore/protobuf-specs": { - "version": "0.2.1", + "version": "0.3.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@sigstore/sign": { - "version": "2.1.0", + "version": "2.3.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.1.0", - "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/bundle": "^2.3.0", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.1", "make-fetch-happen": "^13.0.0" }, "engines": { @@ -11129,25 +10399,30 @@ } }, "node_modules/npm/node_modules/@sigstore/tuf": { - "version": "2.1.0", + "version": "2.3.2", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1", - "tuf-js": "^2.1.0" + "@sigstore/protobuf-specs": "^0.3.0", + "tuf-js": "^2.2.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/@tootallnate/once": { - "version": "2.0.0", + "node_modules/npm/node_modules/@sigstore/verify": { + "version": "1.2.0", "dev": true, "inBundle": true, - "license": "MIT", + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.1", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.1" + }, "engines": { - "node": ">= 10" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/@tufjs/canonical-json": { @@ -11181,40 +10456,16 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/abort-controller": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, "node_modules/npm/node_modules/agent-base": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/npm/node_modules/agentkeepalive": { - "version": "4.5.0", + "version": "7.1.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "humanize-ms": "^1.2.1" + "debug": "^4.3.4" }, "engines": { - "node": ">= 8.0.0" + "node": ">= 14" } }, "node_modules/npm/node_modules/aggregate-error": { @@ -11240,15 +10491,12 @@ } }, "node_modules/npm/node_modules/ansi-styles": { - "version": "4.3.0", + "version": "6.2.1", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" @@ -11266,47 +10514,14 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/are-we-there-yet": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^4.1.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm/node_modules/balanced-match": { "version": "1.0.2", "dev": true, "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/base64-js": { - "version": "1.5.1", - "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" - } - ], - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/bin-links": { - "version": "4.0.2", + "version": "4.0.3", "dev": true, "inBundle": true, "license": "ISC", @@ -11321,12 +10536,15 @@ } }, "node_modules/npm/node_modules/binary-extensions": { - "version": "2.2.0", + "version": "2.3.0", "dev": true, "inBundle": true, "license": "MIT", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm/node_modules/brace-expansion": { @@ -11338,32 +10556,8 @@ "balanced-match": "^1.0.0" } }, - "node_modules/npm/node_modules/buffer": { - "version": "6.0.3", - "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" - } - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, "node_modules/npm/node_modules/builtins": { - "version": "5.0.1", + "version": "5.1.0", "dev": true, "inBundle": true, "license": "MIT", @@ -11372,7 +10566,7 @@ } }, "node_modules/npm/node_modules/cacache": { - "version": "18.0.0", + "version": "18.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -11382,7 +10576,7 @@ "glob": "^10.2.2", "lru-cache": "^10.0.1", "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", + "minipass-collect": "^2.0.1", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", @@ -11416,7 +10610,7 @@ } }, "node_modules/npm/node_modules/ci-info": { - "version": "3.8.0", + "version": "4.0.0", "dev": true, "funding": [ { @@ -11431,15 +10625,15 @@ } }, "node_modules/npm/node_modules/cidr-regex": { - "version": "3.1.1", + "version": "4.0.5", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "ip-regex": "^4.1.0" + "ip-regex": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/npm/node_modules/clean-stack": { @@ -11464,32 +10658,8 @@ "node": ">= 10" } }, - "node_modules/npm/node_modules/cli-table3": { - "version": "0.6.3", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/npm/node_modules/clone": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, "node_modules/npm/node_modules/cmd-shim": { - "version": "6.0.1", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -11515,46 +10685,12 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/color-support": { - "version": "1.1.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/npm/node_modules/columnify": { - "version": "1.6.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/npm/node_modules/common-ancestor-path": { "version": "1.0.1", "dev": true, "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/console-control-strings": { - "version": "1.1.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/cross-spawn": { "version": "7.0.3", "dev": true, @@ -11619,26 +10755,8 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/defaults": { - "version": "1.0.4", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm/node_modules/delegates": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/diff": { - "version": "5.1.0", + "version": "5.2.0", "dev": true, "inBundle": true, "license": "BSD-3-Clause", @@ -11683,24 +10801,6 @@ "inBundle": true, "license": "MIT" }, - "node_modules/npm/node_modules/event-target-shim": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/npm/node_modules/events": { - "version": "3.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/npm/node_modules/exponential-backoff": { "version": "3.1.1", "dev": true, @@ -11744,51 +10844,29 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/function-bind": { - "version": "1.1.1", + "version": "1.1.2", "dev": true, "inBundle": true, - "license": "MIT" - }, - "node_modules/npm/node_modules/gauge": { - "version": "5.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^4.0.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/npm/node_modules/glob": { - "version": "10.3.3", + "version": "10.3.12", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", + "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/cjs/src/bin.js" + "glob": "dist/esm/bin.mjs" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -11803,26 +10881,20 @@ "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/has": { - "version": "1.0.3", + "node_modules/npm/node_modules/hasown": { + "version": "2.0.2", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "function-bind": "^1.1.1" + "function-bind": "^1.1.2" }, "engines": { - "node": ">= 0.4.0" + "node": ">= 0.4" } }, - "node_modules/npm/node_modules/has-unicode": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/hosted-git-info": { - "version": "7.0.0", + "version": "7.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -11840,39 +10912,29 @@ "license": "BSD-2-Clause" }, "node_modules/npm/node_modules/http-proxy-agent": { - "version": "5.0.0", + "version": "7.0.2", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/npm/node_modules/https-proxy-agent": { - "version": "5.0.1", + "version": "7.0.4", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "agent-base": "6", + "agent-base": "^7.0.2", "debug": "4" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/npm/node_modules/humanize-ms": { - "version": "1.2.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "ms": "^2.0.0" + "node": ">= 14" } }, "node_modules/npm/node_modules/iconv-lite": { @@ -11888,28 +10950,8 @@ "node": ">=0.10.0" } }, - "node_modules/npm/node_modules/ieee754": { - "version": "1.2.1", - "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" - } - ], - "inBundle": true, - "license": "BSD-3-Clause" - }, "node_modules/npm/node_modules/ignore-walk": { - "version": "6.0.3", + "version": "6.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -11938,24 +10980,8 @@ "node": ">=8" } }, - "node_modules/npm/node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/npm/node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/ini": { - "version": "4.1.1", + "version": "4.1.2", "dev": true, "inBundle": true, "license": "ISC", @@ -11964,15 +10990,15 @@ } }, "node_modules/npm/node_modules/init-package-json": { - "version": "6.0.0", + "version": "6.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { + "@npmcli/package-json": "^5.0.0", "npm-package-arg": "^11.0.0", "promzard": "^1.0.0", - "read": "^2.0.0", - "read-package-json": "^7.0.0", + "read": "^3.0.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "^5.0.0" @@ -11981,40 +11007,50 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/ip": { - "version": "2.0.0", + "node_modules/npm/node_modules/ip-address": { + "version": "9.0.5", "dev": true, "inBundle": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } }, "node_modules/npm/node_modules/ip-regex": { - "version": "4.3.0", + "version": "5.0.0", "dev": true, "inBundle": true, "license": "MIT", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm/node_modules/is-cidr": { - "version": "4.0.2", + "version": "5.0.5", "dev": true, "inBundle": true, "license": "BSD-2-Clause", "dependencies": { - "cidr-regex": "^3.1.1" + "cidr-regex": "^4.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" } }, "node_modules/npm/node_modules/is-core-module": { - "version": "2.12.1", + "version": "2.13.1", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12042,7 +11078,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/jackspeak": { - "version": "2.2.1", + "version": "2.3.6", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", @@ -12059,8 +11095,14 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/npm/node_modules/jsbn": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, "node_modules/npm/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "MIT", @@ -12099,52 +11141,50 @@ "license": "MIT" }, "node_modules/npm/node_modules/libnpmaccess": { - "version": "8.0.0", + "version": "8.0.5", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-package-arg": "^11.0.0", - "npm-registry-fetch": "^16.0.0" + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "6.0.1", + "version": "6.1.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.1.0", - "@npmcli/disparity-colors": "^3.0.0", - "@npmcli/installed-package-contents": "^2.0.2", - "binary-extensions": "^2.2.0", + "@npmcli/arborist": "^7.2.1", + "@npmcli/installed-package-contents": "^2.1.0", + "binary-extensions": "^2.3.0", "diff": "^5.1.0", - "minimatch": "^9.0.0", - "npm-package-arg": "^11.0.0", - "pacote": "^17.0.4", - "tar": "^6.1.13" + "minimatch": "^9.0.4", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.1", + "tar": "^6.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "7.0.1", + "version": "8.1.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.1.0", - "@npmcli/run-script": "^7.0.1", - "ci-info": "^3.7.1", - "npm-package-arg": "^11.0.0", - "npmlog": "^7.0.1", - "pacote": "^17.0.4", - "proc-log": "^3.0.0", - "read": "^2.0.0", + "@npmcli/arborist": "^7.2.1", + "@npmcli/run-script": "^8.1.0", + "ci-info": "^4.0.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.1", + "proc-log": "^4.2.0", + "read": "^3.0.1", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", "walk-up-path": "^3.0.1" @@ -12154,71 +11194,71 @@ } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "4.1.1", + "version": "5.0.9", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.1.0" + "@npmcli/arborist": "^7.2.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmhook": { - "version": "10.0.0", + "version": "10.0.4", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^16.0.0" + "npm-registry-fetch": "^17.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmorg": { - "version": "6.0.0", + "version": "6.0.5", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^16.0.0" + "npm-registry-fetch": "^17.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "6.0.1", + "version": "7.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^7.1.0", - "@npmcli/run-script": "^7.0.1", - "npm-package-arg": "^11.0.0", - "pacote": "^17.0.4" + "@npmcli/arborist": "^7.2.1", + "@npmcli/run-script": "^8.1.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmpublish": { - "version": "9.0.0", + "version": "9.0.7", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "ci-info": "^3.6.1", + "ci-info": "^4.0.0", "normalize-package-data": "^6.0.0", - "npm-package-arg": "^11.0.0", - "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0", + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.2.0", "semver": "^7.3.7", - "sigstore": "^2.1.0", + "sigstore": "^2.2.0", "ssri": "^10.0.5" }, "engines": { @@ -12226,40 +11266,40 @@ } }, "node_modules/npm/node_modules/libnpmsearch": { - "version": "7.0.0", + "version": "7.0.4", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-registry-fetch": "^16.0.0" + "npm-registry-fetch": "^17.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmteam": { - "version": "6.0.0", + "version": "6.0.4", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^16.0.0" + "npm-registry-fetch": "^17.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/libnpmversion": { - "version": "5.0.0", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^5.0.3", - "@npmcli/run-script": "^7.0.1", + "@npmcli/git": "^5.0.6", + "@npmcli/run-script": "^8.1.0", "json-parse-even-better-errors": "^3.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.2.0", "semver": "^7.3.7" }, "engines": { @@ -12267,7 +11307,7 @@ } }, "node_modules/npm/node_modules/lru-cache": { - "version": "10.0.1", + "version": "10.2.2", "dev": true, "inBundle": true, "license": "ISC", @@ -12276,7 +11316,7 @@ } }, "node_modules/npm/node_modules/make-fetch-happen": { - "version": "13.0.0", + "version": "13.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -12290,6 +11330,7 @@ "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", + "proc-log": "^4.2.0", "promise-retry": "^2.0.1", "ssri": "^10.0.0" }, @@ -12298,7 +11339,7 @@ } }, "node_modules/npm/node_modules/minimatch": { - "version": "9.0.3", + "version": "9.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -12313,7 +11354,7 @@ } }, "node_modules/npm/node_modules/minipass": { - "version": "7.0.3", + "version": "7.0.4", "dev": true, "inBundle": true, "license": "ISC", @@ -12322,27 +11363,15 @@ } }, "node_modules/npm/node_modules/minipass-collect": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/minipass-collect/node_modules/minipass": { - "version": "3.3.6", + "version": "2.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/npm/node_modules/minipass-fetch": { @@ -12518,391 +11547,132 @@ } }, "node_modules/npm/node_modules/node-gyp": { - "version": "9.4.0", + "version": "10.1.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", + "glob": "^10.3.10", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^11.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", "semver": "^7.3.5", "tar": "^6.1.2", - "which": "^2.0.2" + "which": "^4.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^12.13 || ^14.13 || >=16" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/abbrev": { - "version": "1.1.1", + "node_modules/npm/node_modules/node-gyp/node_modules/proc-log": { + "version": "3.0.0", "dev": true, "inBundle": true, - "license": "ISC" + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, - "node_modules/npm/node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.1", + "node_modules/npm/node_modules/nopt": { + "version": "7.2.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/brace-expansion": { - "version": "1.1.11", + "node_modules/npm/node_modules/normalize-package-data": { + "version": "6.0.0", "dev": true, "inBundle": true, - "license": "MIT", + "license": "BSD-2-Clause", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache": { - "version": "17.1.4", + "node_modules/npm/node_modules/npm-audit-report": { + "version": "5.0.0", "dev": true, "inBundle": true, "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^7.0.3", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob": { - "version": "10.3.3", + "node_modules/npm/node_modules/npm-bundled": { + "version": "3.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/cjs/src/bin.js" + "npm-normalize-package-bin": "^3.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch": { - "version": "9.0.3", + "node_modules/npm/node_modules/npm-install-checks": { + "version": "6.3.0", "dev": true, "inBundle": true, - "license": "ISC", + "license": "BSD-2-Clause", "dependencies": { - "brace-expansion": "^2.0.1" + "semver": "^7.1.1" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minipass": { - "version": "7.0.3", + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.4", + "node_modules/npm/node_modules/npm-package-arg": { + "version": "11.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/glob": { - "version": "7.2.3", + "node_modules/npm/node_modules/npm-packlist": { + "version": "8.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/lru-cache": { - "version": "7.18.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": { - "version": "11.1.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/minipass": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "abbrev": "^1.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/readable-stream": { - "version": "3.6.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/npm/node_modules/node-gyp/node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "inBundle": true, - "license": "ISC" - }, - "node_modules/npm/node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/nopt": { - "version": "7.2.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/normalize-package-data": { - "version": "6.0.0", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^7.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-audit-report": { - "version": "5.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-bundled": { - "version": "3.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-install-checks": { - "version": "6.2.0", - "dev": true, - "inBundle": true, - "license": "BSD-2-Clause", - "dependencies": { - "semver": "^7.1.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-package-arg": { - "version": "11.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/npm-packlist": { - "version": "8.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "ignore-walk": "^6.0.0" + "ignore-walk": "^6.0.4" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -12924,31 +11694,32 @@ } }, "node_modules/npm/node_modules/npm-profile": { - "version": "9.0.0", + "version": "9.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0" + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm/node_modules/npm-registry-fetch": { - "version": "16.0.0", + "version": "17.0.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { + "@npmcli/redact": "^2.0.0", "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", "npm-package-arg": "^11.0.0", - "proc-log": "^3.0.0" + "proc-log": "^4.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -12963,30 +11734,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/npmlog": { - "version": "7.0.1", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^4.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^5.0.0", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/once": { - "version": "1.4.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/npm/node_modules/p-map": { "version": "4.0.0", "dev": true, @@ -13003,27 +11750,26 @@ } }, "node_modules/npm/node_modules/pacote": { - "version": "17.0.4", + "version": "18.0.3", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/package-json": "^5.1.0", "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^7.0.0", + "@npmcli/run-script": "^8.0.0", "cacache": "^18.0.0", "fs-minipass": "^3.0.0", "minipass": "^7.0.2", "npm-package-arg": "^11.0.0", "npm-packlist": "^8.0.0", "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0", "promise-retry": "^2.0.1", - "read-package-json": "^7.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^2.0.0", + "sigstore": "^2.2.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, @@ -13048,15 +11794,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/npm/node_modules/path-key": { "version": "3.1.1", "dev": true, @@ -13067,12 +11804,12 @@ } }, "node_modules/npm/node_modules/path-scurry": { - "version": "1.10.1", + "version": "1.10.2", "dev": true, "inBundle": true, "license": "BlueOak-1.0.0", "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": { @@ -13083,7 +11820,7 @@ } }, "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.0.13", + "version": "6.0.16", "dev": true, "inBundle": true, "license": "MIT", @@ -13096,7 +11833,7 @@ } }, "node_modules/npm/node_modules/proc-log": { - "version": "3.0.0", + "version": "4.2.0", "dev": true, "inBundle": true, "license": "ISC", @@ -13104,13 +11841,13 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/process": { - "version": "0.11.10", + "node_modules/npm/node_modules/proggy": { + "version": "2.0.0", "dev": true, "inBundle": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">= 0.6.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/promise-all-reject-late": { @@ -13123,7 +11860,7 @@ } }, "node_modules/npm/node_modules/promise-call-limit": { - "version": "1.0.2", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -13151,12 +11888,12 @@ } }, "node_modules/npm/node_modules/promzard": { - "version": "1.0.0", + "version": "1.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "read": "^2.0.0" + "read": "^3.0.1" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -13171,12 +11908,12 @@ } }, "node_modules/npm/node_modules/read": { - "version": "2.1.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "mute-stream": "~1.0.0" + "mute-stream": "^1.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -13191,47 +11928,17 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/read-package-json": { - "version": "7.0.0", + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "3.0.2", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", "npm-normalize-package-bin": "^3.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/read-package-json-fast": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm/node_modules/readable-stream": { - "version": "4.4.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm/node_modules/retry": { @@ -13243,83 +11950,6 @@ "node": ">= 4" } }, - "node_modules/npm/node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/rimraf/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/npm/node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/npm/node_modules/rimraf/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/npm/node_modules/safe-buffer": { - "version": "5.2.1", - "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" - } - ], - "inBundle": true, - "license": "MIT" - }, "node_modules/npm/node_modules/safer-buffer": { "version": "2.1.2", "dev": true, @@ -13328,7 +11958,7 @@ "optional": true }, "node_modules/npm/node_modules/semver": { - "version": "7.5.4", + "version": "7.6.0", "dev": true, "inBundle": true, "license": "ISC", @@ -13354,12 +11984,6 @@ "node": ">=10" } }, - "node_modules/npm/node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/shebang-command": { "version": "2.0.0", "dev": true, @@ -13382,7 +12006,7 @@ } }, "node_modules/npm/node_modules/signal-exit": { - "version": "4.0.2", + "version": "4.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -13394,15 +12018,17 @@ } }, "node_modules/npm/node_modules/sigstore": { - "version": "2.1.0", + "version": "2.3.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^2.1.0", - "@sigstore/protobuf-specs": "^0.2.1", - "@sigstore/sign": "^2.1.0", - "@sigstore/tuf": "^2.1.0" + "@sigstore/bundle": "^2.3.1", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.1", + "@sigstore/sign": "^2.3.0", + "@sigstore/tuf": "^2.3.1", + "@sigstore/verify": "^1.2.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -13419,31 +12045,31 @@ } }, "node_modules/npm/node_modules/socks": { - "version": "2.7.1", + "version": "2.8.3", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "ip": "^2.0.0", + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.13.0", + "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "7.0.0", + "version": "8.0.3", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.7.1" }, "engines": { - "node": ">= 10" + "node": ">= 14" } }, "node_modules/npm/node_modules/spdx-correct": { @@ -13456,14 +12082,24 @@ "spdx-license-ids": "^3.0.0" } }, + "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/npm/node_modules/spdx-exceptions": { - "version": "2.3.0", + "version": "2.5.0", "dev": true, "inBundle": true, "license": "CC-BY-3.0" }, "node_modules/npm/node_modules/spdx-expression-parse": { - "version": "3.0.1", + "version": "4.0.0", "dev": true, "inBundle": true, "license": "MIT", @@ -13473,11 +12109,17 @@ } }, "node_modules/npm/node_modules/spdx-license-ids": { - "version": "3.0.13", + "version": "3.0.17", "dev": true, "inBundle": true, "license": "CC0-1.0" }, + "node_modules/npm/node_modules/sprintf-js": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause" + }, "node_modules/npm/node_modules/ssri": { "version": "10.0.5", "dev": true, @@ -13490,15 +12132,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm/node_modules/string_decoder": { - "version": "1.3.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/npm/node_modules/string-width": { "version": "4.2.3", "dev": true, @@ -13566,7 +12199,7 @@ } }, "node_modules/npm/node_modules/tar": { - "version": "6.1.15", + "version": "6.2.1", "dev": true, "inBundle": true, "license": "ISC", @@ -13637,7 +12270,7 @@ } }, "node_modules/npm/node_modules/tuf-js": { - "version": "2.1.0", + "version": "2.2.0", "dev": true, "inBundle": true, "license": "MIT", @@ -13690,6 +12323,16 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, "node_modules/npm/node_modules/validate-npm-package-name": { "version": "5.0.0", "dev": true, @@ -13708,15 +12351,6 @@ "inBundle": true, "license": "ISC" }, - "node_modules/npm/node_modules/wcwidth": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, "node_modules/npm/node_modules/which": { "version": "4.0.0", "dev": true, @@ -13741,15 +12375,6 @@ "node": ">=16" } }, - "node_modules/npm/node_modules/wide-align": { - "version": "1.1.5", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/npm/node_modules/wrap-ansi": { "version": "8.1.0", "dev": true, @@ -13785,20 +12410,23 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, "inBundle": true, "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", "dev": true, "inBundle": true, "license": "MIT", @@ -13806,7 +12434,7 @@ "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { @@ -13847,12 +12475,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/npm/node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/write-file-atomic": { "version": "5.0.1", "dev": true, @@ -13872,18 +12494,17 @@ "inBundle": true, "license": "ISC" }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", - "dev": true - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "engines": { - "node": ">=0.10.0" + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, "node_modules/object-assign": { @@ -13894,30 +12515,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==", - "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/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==", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -13934,17 +12531,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==", - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object.assign": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", @@ -13976,18 +12562,6 @@ "node": ">=0.10.0" } }, - "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==", - "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", @@ -13999,18 +12573,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==", - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -14046,12 +12608,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", @@ -14081,112 +12637,168 @@ "node": ">= 0.8.0" } }, - "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==", + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, "dependencies": { - "readable-stream": "^2.0.1" + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "lcid": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/p-each-series": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-3.0.0.tgz", - "integrity": "sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==", + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=12" + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-3.0.0.tgz", - "integrity": "sha512-QtoWLjXAW++uTX67HZQz1dbTpqBfiidsB6VtQUC9iR85S120+s0T5sO6s+B5MLzFcZkrEd/DGMmCjR+f2Qpxwg==", + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "p-map": "^5.1.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/p-is-promise": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", - "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "node_modules/p-each-series": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-3.0.0.tgz", + "integrity": "sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==", "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-limit/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "node_modules/p-filter": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-4.1.0.tgz", + "integrity": "sha512-37/tPdZ3oJwHaS3gNJdenCDB3Tz26i9sjhnguBtvN0vYlRIiDNnvTWkuh+0hETV9rLPdJ3rlL3yVOYPIAnM8rw==", "dev": true, + "dependencies": { + "p-map": "^7.0.1" + }, "engines": { - "node": ">=12.20" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "node_modules/p-filter/node_modules/p-map": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.1.tgz", + "integrity": "sha512-2wnaR0XL/FDOj+TgpDuRb2KTjLnu3Fma6b1ZUwGY7LcqenMcvP/YFpjpbPKY6WVGsbuJZRuoUz8iPrt8ORnAFw==", "dev": true, - "dependencies": { - "p-limit": "^4.0.0" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/p-map": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz", @@ -14261,6 +12873,12 @@ "node": ">=8" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "license": "BlueOak-1.0.0" + }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -14309,12 +12927,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/parse-passwd": { @@ -14325,6 +12948,27 @@ "node": ">=0.10.0" } }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -14334,19 +12978,6 @@ "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==", - "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==" - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -14368,7 +12999,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "engines": { "node": ">=8" } @@ -14397,6 +13027,28 @@ "node": ">=0.10.0" } }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -14406,9 +13058,10 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -14440,25 +13093,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==", - "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==", - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/pkg-conf": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", @@ -14601,18 +13235,10 @@ "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==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/postcss": { - "version": "8.4.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", - "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "version": "8.4.40", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz", + "integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==", "funding": [ { "type": "opencollective", @@ -14621,2894 +13247,530 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/postcss-calc": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha512-iBcptYFq+QUh9gzP7ta2btw50o40s4uLI4UDVgd5yRAZtUDWc5APdl5yQDd2h/TyiZNbJrv0HiYhT102CMgN7Q==", - "dev": true, - "dependencies": { - "postcss": "^5.0.2", - "postcss-message-helpers": "^2.0.0", - "reduce-css-calc": "^1.2.6" - } - }, - "node_modules/postcss-calc/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/postcss-calc/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-calc/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.0.0.tgz", + "integrity": "sha512-OmjhudoNTP0QleZCwl1i6NeBwN+5MZbY5ersLZz69mjJiDVv/p57RjRuKDkHeDWr4T+S97wQfsqRTNoDHB2e3g==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "postcss-selector-parser": "^6.0.16", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-calc/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-calc/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": "^18.12 || ^20.9 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.38" } }, - "node_modules/postcss-calc/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "node_modules/postcss-colormin": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.1.tgz", + "integrity": "sha512-uszdT0dULt3FQs47G5UHCduYK+FnkLYlpu1HpWu061eGsKZ7setoG7kA+WC9NQLsOJf69D5TxGHgnAdRgylnFQ==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" + "browserslist": "^4.23.1", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-calc/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": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-calc/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==", + "node_modules/postcss-convert-values": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.2.tgz", + "integrity": "sha512-MuZIF6HJ4izko07Q0TgW6pClalI4al6wHRNPkFzqQdwAwG7hPn0lA58VZdxyb2Vl5AYjJ1piO+jgF9EnTjQwQQ==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^2.0.0" + "browserslist": "^4.23.1", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-calc/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "node_modules/postcss-discard-comments": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.1.tgz", + "integrity": "sha512-GVrQxUOhmle1W6jX2SvNLt4kmN+JYhV7mzI6BMnkAWR9DtVvg8e67rrV0NfdWhn7x1zxvzdWkMBPdBDCls+uwQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^1.0.0" + "postcss-selector-parser": "^6.1.0" }, "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-colormin": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha512-XXitQe+jNNPf+vxvQXIQ1+pvdQKWKgkx8zlJNltcMEmLma1ypDRDQwlLt+6cP26fBreihNhZxohh1rcgCH2W5w==", - "dev": true, - "dependencies": { - "colormin": "^1.0.5", - "postcss": "^5.0.13", - "postcss-value-parser": "^3.2.3" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-colormin/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==", + "node_modules/postcss-discard-duplicates": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.0.tgz", + "integrity": "sha512-bAnSuBop5LpAIUmmOSsuvtKAAKREB6BBIYStWUTGq8oG5q9fClDMMuY8i4UPI/cEcDx2TN+7PMnXYIId20UVDw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-colormin/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "node_modules/postcss-discard-empty": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.0.tgz", + "integrity": "sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-colormin/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "node_modules/postcss-discard-overridden": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.0.tgz", + "integrity": "sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==", "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, + "license": "MIT", "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-colormin/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-colormin/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-colormin/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-colormin/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-colormin/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/postcss-colormin/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-colormin/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-convert-values": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha512-SE7mf25D3ORUEXpu3WUqQqy0nCbMuM5BEny+ULE/FXdS/0UMA58OdzwvzuHJRpIFlk1uojt16JhaEogtP6W2oA==", - "dev": true, - "dependencies": { - "postcss": "^5.0.11", - "postcss-value-parser": "^3.1.2" - } - }, - "node_modules/postcss-convert-values/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/postcss-convert-values/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-convert-values/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-convert-values/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-convert-values/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-convert-values/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-convert-values/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/postcss-convert-values/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-convert-values/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-discard-comments": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha512-yGbyBDo5FxsImE90LD8C87vgnNlweQkODMkUZlDVM/CBgLr9C5RasLGJxxh9GjVOBeG8NcCMatoqI1pXg8JNXg==", - "dev": true, - "dependencies": { - "postcss": "^5.0.14" - } - }, - "node_modules/postcss-discard-comments/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/postcss-discard-comments/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-comments/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-comments/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-discard-comments/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-comments/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-discard-comments/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/postcss-discard-comments/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-comments/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha512-+lk5W1uqO8qIUTET+UETgj9GWykLC3LOldr7EehmymV0Wu36kyoHimC4cILrAAYpHQ+fr4ypKcWcVNaGzm0reA==", - "dev": true, - "dependencies": { - "postcss": "^5.0.4" - } - }, - "node_modules/postcss-discard-duplicates/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/postcss-discard-duplicates/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-duplicates/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-duplicates/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-discard-duplicates/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-duplicates/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-discard-duplicates/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/postcss-discard-duplicates/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-duplicates/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-discard-empty": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha512-IBFoyrwk52dhF+5z/ZAbzq5Jy7Wq0aLUsOn69JNS+7YeuyHaNzJwBIYE0QlUH/p5d3L+OON72Fsexyb7OK/3og==", - "dev": true, - "dependencies": { - "postcss": "^5.0.14" - } - }, - "node_modules/postcss-discard-empty/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/postcss-discard-empty/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-empty/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-empty/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-discard-empty/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-empty/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-discard-empty/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/postcss-discard-empty/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-empty/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha512-IyKoDL8QNObOiUc6eBw8kMxBHCfxUaERYTUe2QF8k7j/xiirayDzzkmlR6lMQjrAM1p1DDRTvWrS7Aa8lp6/uA==", - "dev": true, - "dependencies": { - "postcss": "^5.0.16" - } - }, - "node_modules/postcss-discard-overridden/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/postcss-discard-overridden/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-overridden/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-overridden/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-discard-overridden/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-overridden/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-discard-overridden/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/postcss-discard-overridden/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-overridden/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-discard-unused": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha512-nCbFNfqYAbKCw9J6PSJubpN9asnrwVLkRDFc4KCwyUEdOtM5XDE/eTW3OpqHrYY1L4fZxgan7LLRAAYYBzwzrg==", - "dev": true, - "dependencies": { - "postcss": "^5.0.14", - "uniqs": "^2.0.0" - } - }, - "node_modules/postcss-discard-unused/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/postcss-discard-unused/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-unused/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-unused/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-discard-unused/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-unused/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-discard-unused/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/postcss-discard-unused/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-discard-unused/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-filter-plugins": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", - "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", - "dev": true, - "dependencies": { - "postcss": "^5.0.4" - } - }, - "node_modules/postcss-filter-plugins/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/postcss-filter-plugins/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-filter-plugins/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-filter-plugins/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-filter-plugins/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-filter-plugins/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-filter-plugins/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/postcss-filter-plugins/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-filter-plugins/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-merge-idents": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha512-9DHmfCZ7/hNHhIKnNkz4CU0ejtGen5BbTRJc13Z2uHfCedeCUsK2WEQoAJRBL+phs68iWK6Qf8Jze71anuysWA==", - "dev": true, - "dependencies": { - "has": "^1.0.1", - "postcss": "^5.0.10", - "postcss-value-parser": "^3.1.1" - } - }, - "node_modules/postcss-merge-idents/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/postcss-merge-idents/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-idents/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-idents/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-merge-idents/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-idents/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-merge-idents/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-merge-idents/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/postcss-merge-idents/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-idents/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha512-ma7YvxjdLQdifnc1HFsW/AW6fVfubGyR+X4bE3FOSdBVMY9bZjKVdklHT+odknKBB7FSCfKIHC3yHK7RUAqRPg==", - "dev": true, - "dependencies": { - "postcss": "^5.0.4" - } - }, - "node_modules/postcss-merge-longhand/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/postcss-merge-longhand/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-longhand/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-longhand/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-merge-longhand/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-longhand/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-merge-longhand/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/postcss-merge-longhand/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-longhand/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-merge-rules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha512-Wgg2FS6W3AYBl+5L9poL6ZUISi5YzL+sDCJfM7zNw/Q1qsyVQXXZ2cbVui6mu2cYJpt1hOKCGj1xA4mq/obz/Q==", - "dev": true, - "dependencies": { - "browserslist": "^1.5.2", - "caniuse-api": "^1.5.2", - "postcss": "^5.0.4", - "postcss-selector-parser": "^2.2.2", - "vendors": "^1.0.0" - } - }, - "node_modules/postcss-merge-rules/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/postcss-merge-rules/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha512-qHJblDE2bXVRYzuDetv/wAeHOJyO97+9wxC1cdCtyzgNuSozOyRCiiLaCR1f71AN66lQdVVBipWm63V+a7bPOw==", - "deprecated": "Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.", - "dev": true, - "dependencies": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/postcss-merge-rules/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-merge-rules/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/postcss-merge-rules/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-message-helpers": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "integrity": "sha512-tPLZzVAiIJp46TBbpXtrUAKqedXSyW5xDEo1sikrfEfnTs+49SBZR/xDdqCiJvSSbtr615xDsaMF3RrxS2jZlA==", - "dev": true - }, - "node_modules/postcss-minify-font-values": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha512-vFSPzrJhNe6/8McOLU13XIsERohBJiIFFuC1PolgajOZdRWqRgKITP/A4Z/n4GQhEmtbxmO9NDw3QLaFfE1dFQ==", - "dev": true, - "dependencies": { - "object-assign": "^4.0.1", - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.2" - } - }, - "node_modules/postcss-minify-font-values/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/postcss-minify-font-values/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-font-values/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-font-values/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-minify-font-values/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-font-values/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-minify-font-values/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/postcss-minify-font-values/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-font-values/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha512-DZhT0OE+RbVqVyGsTIKx84rU/5cury1jmwPa19bViqYPQu499ZU831yMzzsyC8EhiZVd73+h5Z9xb/DdaBpw7Q==", - "dev": true, - "dependencies": { - "postcss": "^5.0.12", - "postcss-value-parser": "^3.3.0" - } - }, - "node_modules/postcss-minify-gradients/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/postcss-minify-gradients/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-gradients/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-gradients/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-minify-gradients/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-gradients/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-minify-gradients/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/postcss-minify-gradients/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-gradients/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-minify-params": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha512-hhJdMVgP8vasrHbkKAk+ab28vEmPYgyuDzRl31V3BEB3QOR3L5TTIVEWLDNnZZ3+fiTi9d6Ker8GM8S1h8p2Ow==", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.1", - "postcss": "^5.0.2", - "postcss-value-parser": "^3.0.2", - "uniqs": "^2.0.0" - } - }, - "node_modules/postcss-minify-params/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/postcss-minify-params/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-params/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-params/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-minify-params/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-params/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-minify-params/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/postcss-minify-params/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-params/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha512-e13vxPBSo3ZaPne43KVgM+UETkx3Bs4/Qvm6yXI9HQpQp4nyb7HZ0gKpkF+Wn2x+/dbQ+swNpCdZSbMOT7+TIA==", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.2", - "has": "^1.0.1", - "postcss": "^5.0.14", - "postcss-selector-parser": "^2.0.0" - } - }, - "node_modules/postcss-minify-selectors/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/postcss-minify-selectors/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-selectors/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-selectors/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-minify-selectors/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-selectors/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-minify-selectors/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/postcss-minify-selectors/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-minify-selectors/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha512-RKgjEks83l8w4yEhztOwNZ+nLSrJ+NvPNhpS+mVDzoaiRHZQVoG7NF2TP5qjwnaN9YswUhj6m1E0S0Z+WDCgEQ==", - "dev": true, - "dependencies": { - "postcss": "^5.0.5" - } - }, - "node_modules/postcss-normalize-charset/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/postcss-normalize-charset/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-charset/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-charset/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-normalize-charset/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-charset/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-normalize-charset/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/postcss-normalize-charset/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-charset/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-normalize-url": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha512-WqtWG6GV2nELsQEFES0RzfL2ebVwmGl/M8VmMbshKto/UClBo+mznX8Zi4/hkThdqx7ijwv+O8HWPdpK7nH/Ig==", - "dev": true, - "dependencies": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^1.4.0", - "postcss": "^5.0.14", - "postcss-value-parser": "^3.2.3" - } - }, - "node_modules/postcss-normalize-url/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/postcss-normalize-url/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==", - "dev": true, - "dependencies": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-normalize-url/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-url/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/postcss-normalize-url/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-ordered-values": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha512-5RB1IUZhkxDCfa5fx/ogp/A82mtq+r7USqS+7zt0e428HJ7+BHCxyeY39ClmkkUtxdOd3mk8gD6d9bjH2BECMg==", - "dev": true, - "dependencies": { - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.1" - } - }, - "node_modules/postcss-ordered-values/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/postcss-ordered-values/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-ordered-values/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-ordered-values/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-ordered-values/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-ordered-values/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-ordered-values/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/postcss-ordered-values/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-ordered-values/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-reduce-idents": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha512-0+Ow9e8JLtffjumJJFPqvN4qAvokVbdQPnijUDSOX8tfTwrILLP4ETvrZcXZxAtpFLh/U0c+q8oRMJLr1Kiu4w==", - "dev": true, - "dependencies": { - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.2" - } - }, - "node_modules/postcss-reduce-idents/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/postcss-reduce-idents/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-idents/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-idents/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-reduce-idents/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-idents/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-reduce-idents/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-reduce-idents/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/postcss-reduce-idents/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-idents/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha512-jJFrV1vWOPCQsIVitawGesRgMgunbclERQ/IRGW7r93uHrVzNQQmHQ7znsOIjJPZ4yWMzs5A8NFhp3AkPHPbDA==", - "dev": true, - "dependencies": { - "postcss": "^5.0.4" - } - }, - "node_modules/postcss-reduce-initial/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/postcss-reduce-initial/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-initial/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-initial/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-reduce-initial/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-initial/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-reduce-initial/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/postcss-reduce-initial/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-initial/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha512-lGgRqnSuAR5i5uUg1TA33r9UngfTadWxOyL2qx1KuPoCQzfmtaHjp9PuwX7yVyRxG3BWBzeFUaS5uV9eVgnEgQ==", - "dev": true, - "dependencies": { - "has": "^1.0.1", - "postcss": "^5.0.8", - "postcss-value-parser": "^3.0.1" - } - }, - "node_modules/postcss-reduce-transforms/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/postcss-reduce-transforms/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-reduce-transforms/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/postcss-reduce-transforms/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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", - "dev": true, - "dependencies": { - "has-flag": "^1.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha512-3pqyakeGhrO0BQ5+/tGTfvi5IAUAhHRayGK8WFSu06aEv2BmHoXw/Mhb+w7VY5HERIuC+QoUI7wgrCcq2hqCVA==", - "dev": true, - "dependencies": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "node_modules/postcss-svgo": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha512-y5AdQdgBoF4rbpdbeWAJuxE953g/ylRfVNp6mvAi61VCN/Y25Tu9p5mh3CyI42WbTRIiwR9a1GdFtmDnNPeskQ==", - "dev": true, - "dependencies": { - "is-svg": "^2.0.0", - "postcss": "^5.0.14", - "postcss-value-parser": "^3.2.3", - "svgo": "^0.7.0" - } - }, - "node_modules/postcss-svgo/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/postcss-svgo/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-svgo/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-svgo/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/postcss-svgo/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-svgo/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "node_modules/postcss-load-config": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz", + "integrity": "sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" + "lilconfig": "^3.1.1", + "yaml": "^2.4.2" }, "engines": { - "node": ">=0.12" + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + } } }, - "node_modules/postcss-svgo/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-svgo/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/postcss-load-config/node_modules/yaml": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz", + "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==", "dev": true, + "bin": { + "yaml": "bin.mjs" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 14" } }, - "node_modules/postcss-svgo/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==", + "node_modules/postcss-merge-longhand": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.2.tgz", + "integrity": "sha512-06vrW6ZWi9qeP7KMS9fsa9QW56+tIMW55KYqF7X3Ccn+NI2pIgPV6gFfvXTMQ05H90Y5DvnCDPZ2IuHa30PMUg==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^2.0.0" + "postcss-value-parser": "^4.2.0", + "stylehacks": "^7.0.2" }, "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-svgo/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "node_modules/postcss-merge-rules": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.2.tgz", + "integrity": "sha512-VAR47UNvRsdrTHLe7TV1CeEtF9SJYR5ukIB9U4GZyZOptgtsS20xSxy+k5wMrI3udST6O1XuIn7cjQkg7sDAAw==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^1.0.0" + "browserslist": "^4.23.1", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^5.0.0", + "postcss-selector-parser": "^6.1.0" }, "engines": { - "node": ">=0.8.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-unique-selectors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha512-WZX8r1M0+IyljoJOJleg3kYm10hxNYF9scqAT7v/xeSX1IdehutOM85SNO0gP9K+bgs86XERr7Ud5u3ch4+D8g==", + "node_modules/postcss-minify-font-values": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.0.tgz", + "integrity": "sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==", "dev": true, + "license": "MIT", "dependencies": { - "alphanum-sort": "^1.0.1", - "postcss": "^5.0.4", - "uniqs": "^2.0.0" - } - }, - "node_modules/postcss-unique-selectors/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, + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-unique-selectors/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "node_modules/postcss-minify-gradients": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.0.tgz", + "integrity": "sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==", "dev": true, + "license": "MIT", + "dependencies": { + "colord": "^2.9.3", + "cssnano-utils": "^5.0.0", + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-unique-selectors/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "node_modules/postcss-minify-params": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.1.tgz", + "integrity": "sha512-e+Xt8xErSRPgSRFxHeBCSxMiO8B8xng7lh8E0A5ep1VfwYhY8FXhu4Q3APMjgx9YDDbSp53IBGENrzygbUvgUQ==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "browserslist": "^4.23.1", + "cssnano-utils": "^5.0.0", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-unique-selectors/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "node_modules/postcss-minify-selectors": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.2.tgz", + "integrity": "sha512-dCzm04wqW1uqLmDZ41XYNBJfjgps3ZugDpogAmJXoCb5oCiTzIX4oPXXKxDpTvWOnKxQKR4EbV4ZawJBLcdXXA==", "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "postcss-selector-parser": "^6.1.0" + }, "engines": { - "node": ">=0.8.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-unique-selectors/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "node_modules/postcss-normalize-charset": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.0.tgz", + "integrity": "sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-unique-selectors/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "node_modules/postcss-normalize-display-values": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.0.tgz", + "integrity": "sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=0.12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-unique-selectors/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/postcss-normalize-positions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.0.tgz", + "integrity": "sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==", "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-unique-selectors/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==", + "node_modules/postcss-normalize-repeat-style": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.0.tgz", + "integrity": "sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^2.0.0" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-unique-selectors/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "node_modules/postcss-normalize-string": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.0.tgz", + "integrity": "sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^1.0.0" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=0.8.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "node_modules/postcss-zindex": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha512-uhRZ2hRgj0lorxm9cr62B01YzpUe63h0RXMXQ4gWW3oa2rpJh+FJAiEAytaFCPU/VgaBS+uW2SJ1XKyDNz1h4w==", + "node_modules/postcss-normalize-timing-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.0.tgz", + "integrity": "sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==", "dev": true, + "license": "MIT", "dependencies": { - "has": "^1.0.1", - "postcss": "^5.0.4", - "uniqs": "^2.0.0" + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-zindex/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==", + "node_modules/postcss-normalize-unicode": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.1.tgz", + "integrity": "sha512-PTPGdY9xAkTw+8ZZ71DUePb7M/Vtgkbbq+EoI33EuyQEzbKemEQMhe5QSr0VP5UfZlreANDPxSfcdSprENcbsg==", "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.1", + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-zindex/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "node_modules/postcss-normalize-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.0.tgz", + "integrity": "sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==", "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-zindex/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "node_modules/postcss-normalize-whitespace": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.0.tgz", + "integrity": "sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-zindex/node_modules/chalk/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "node_modules/postcss-ordered-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.1.tgz", + "integrity": "sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==", "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-utils": "^5.0.0", + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=0.8.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-zindex/node_modules/has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "node_modules/postcss-reduce-initial": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.1.tgz", + "integrity": "sha512-0JDUSV4bGB5FGM5g8MkS+rvqKukJZ7OTHw/lcKn7xPNqeaqJyQbUO8/dJpvyTpaVwPsd3Uc33+CfNzdVowp2WA==", "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.1", + "caniuse-api": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-zindex/node_modules/postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "node_modules/postcss-reduce-transforms": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.0.tgz", + "integrity": "sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=0.12" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-zindex/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/postcss-selector-parser": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/postcss-zindex/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==", + "node_modules/postcss-svgo": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.0.1.tgz", + "integrity": "sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^2.0.0" + "postcss-value-parser": "^4.2.0", + "svgo": "^3.3.2" }, "engines": { - "node": ">=0.10.0" + "node": "^18.12.0 || ^20.9.0 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, - "node_modules/postcss-zindex/node_modules/supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "node_modules/postcss-unique-selectors": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.1.tgz", + "integrity": "sha512-MH7QE/eKUftTB5ta40xcHLl7hkZjgDFydpfTK+QWXeHxghVt3VoPqYL5/G+zYZPPIs+8GuqFXSTgxBSoB1RZtQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^1.0.0" + "postcss-selector-parser": "^6.1.0" }, "engines": { - "node": ">=0.8.0" + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -17518,20 +13780,12 @@ "node": ">= 0.8.0" } }, - "node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -17542,12 +13796,20 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "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==", + "node_modules/pretty-ms": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.1.0.tgz", + "integrity": "sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^4.0.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/process-nextick-args": { @@ -17561,25 +13823,6 @@ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", "dev": true }, - "node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dependencies": { - "end-of-stream": "^1.1.0", - "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==", - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -17590,13 +13833,14 @@ } }, "node_modules/purgecss": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-5.0.0.tgz", - "integrity": "sha512-RAnuxrGuVyLLTr8uMbKaxDRGWMgK5CCYDfRyUNNcaz5P3kGgD2b7ymQGYEyo2ST7Tl/ScwFgf5l3slKMxHSbrw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-6.0.0.tgz", + "integrity": "sha512-s3EBxg5RSWmpqd0KGzNqPiaBbWDz1/As+2MzoYVGMqgDqRTLBhJW6sywfTBek7OwNfoS/6pS0xdtvChNhFj2cw==", "dev": true, + "license": "MIT", "dependencies": { - "commander": "^9.0.0", - "glob": "^8.0.3", + "commander": "^12.0.0", + "glob": "^10.3.10", "postcss": "^8.4.4", "postcss-selector-parser": "^6.0.7" }, @@ -17609,75 +13853,46 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/purgecss/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, + "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": ">=12" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/purgecss/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" - } - }, - "node_modules/purgecss/node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "node": ">=16 || 14 >=14.17" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/queue-microtask": { @@ -17699,6 +13914,11 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -17747,109 +13967,72 @@ "node": ">=0.10.0" } }, - "node_modules/read-pkg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", - "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==", + "node_modules/read-package-up": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/read-package-up/-/read-package-up-11.0.0.tgz", + "integrity": "sha512-MbgfoNPANMdb4oRBNg5eqLbB2t2r+o5Ua1pNt8BqGp4I0FJZhuVSOj3PaBPni4azWuSzEdNn2evevzVmEk1ohQ==", "dev": true, "dependencies": { - "@types/normalize-package-data": "^2.4.1", - "normalize-package-data": "^6.0.0", - "parse-json": "^7.0.0", - "type-fest": "^4.2.0" + "find-up-simple": "^1.0.0", + "read-pkg": "^9.0.0", + "type-fest": "^4.6.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg-up": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-10.1.0.tgz", - "integrity": "sha512-aNtBq4jR8NawpKJQldrQcSW9y/d+KWH4v24HWkHljOZ7H0av+YTGANBzRh9A5pw7v/bLVsLVPpOhJ7gHNVy8lA==", + "node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", "dev": true, "dependencies": { - "find-up": "^6.3.0", - "read-pkg": "^8.1.0", - "type-fest": "^4.2.0" - }, - "engines": { - "node": ">=16" + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.3.1.tgz", - "integrity": "sha512-pphNW/msgOUSkJbH58x8sqpq8uQj6b0ZKGxEsLKMUnGorRcDjrUaLS+39+/ub41JNTwrrMyJcUB8+YZs3mbwqw==", - "dev": true, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg/node_modules/json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-pkg/node_modules/lines-and-columns": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", - "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/read-pkg/node_modules/parse-json": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.0.tgz", - "integrity": "sha512-ihtdrgbqdONYD156Ap6qTcaGcGdkdAxodO1wLqQ/j7HP1u2sFYppINiq4jyC8F+Nm+4fVufylCV00QmkTHkSUg==", + "node_modules/read-pkg-up": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-11.0.0.tgz", + "integrity": "sha512-LOVbvF1Q0SZdjClSefZ0Nz5z8u+tIE7mV5NibzmE9VYmDe9CaBbAVtz1veOSZbofrdsilxuDAYnFenukZVp8/Q==", + "deprecated": "Renamed to read-package-up", "dev": true, "dependencies": { - "@babel/code-frame": "^7.21.4", - "error-ex": "^1.3.2", - "json-parse-even-better-errors": "^3.0.0", - "lines-and-columns": "^2.0.3", - "type-fest": "^3.8.0" + "find-up-simple": "^1.0.0", + "read-pkg": "^9.0.0", + "type-fest": "^4.6.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/read-pkg/node_modules/parse-json/node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "node_modules/read-pkg/node_modules/parse-json": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.1.0.tgz", + "integrity": "sha512-rum1bPifK5SSar35Z6EKZuYPJx85pkNaFrxBK3mwdfSJ1/WKbYrjoW/zTPSjRRamfmVX1ACBIdFAO0VRErW/EA==", "dev": true, - "engines": { - "node": ">=14.16" + "dependencies": { + "@babel/code-frame": "^7.22.13", + "index-to-position": "^0.1.2", + "type-fest": "^4.7.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.3.1.tgz", - "integrity": "sha512-pphNW/msgOUSkJbH58x8sqpq8uQj6b0ZKGxEsLKMUnGorRcDjrUaLS+39+/ub41JNTwrrMyJcUB8+YZs3mbwqw==", - "dev": true, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -17875,174 +14058,25 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "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==", - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/readdirp/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==", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/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==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readdirp/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "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" + "picomatch": "^2.2.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8.10.0" } }, "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==", "dependencies": { - "resolve": "^1.1.6" + "resolve": "^1.20.0" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", - "dev": true, - "dependencies": { - "esprima": "~4.0.0" - } - }, - "node_modules/reduce-css-calc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha512-0dVfwYVOlf/LBA2ec4OwQ6p3X9mYxn/wOl2xTcLwjnPYrkgEfPx3VI4eGCH3rQLlPISG5v9I9bkZosKsNRTRKA==", - "dev": true, - "dependencies": { - "balanced-match": "^0.4.2", - "math-expression-evaluator": "^1.2.14", - "reduce-function-call": "^1.0.1" - } - }, - "node_modules/reduce-css-calc/node_modules/balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha512-STw03mQKnGUYtoNjmowo4F2cRmIIxYEGiMsjjwla/u5P1lxadj/05WkNaFjNiKTgJkj8KiXbgAiRTmcQRwQNtg==", - "dev": true - }, - "node_modules/reduce-function-call": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.3.tgz", - "integrity": "sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" + "node": ">= 10.13.0" } }, "node_modules/regenerate": { @@ -18062,64 +14096,20 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" }, "node_modules/regenerator-transform": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.4" } }, - "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==", - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/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==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/regexp.prototype.flags": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", @@ -18175,46 +14165,12 @@ "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "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==", - "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==", - "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==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" } }, "node_modules/remove-trailing-separator": { @@ -18222,22 +14178,6 @@ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==" }, - "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==", - "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==", - "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", @@ -18247,16 +14187,11 @@ } }, "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==", - "dependencies": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - }, + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-2.0.0.tgz", + "integrity": "sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==", "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/replacestream": { @@ -18287,11 +14222,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==" - }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -18349,22 +14279,16 @@ } }, "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==", "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" - }, "node_modules/resp-modifier": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", @@ -18394,45 +14318,16 @@ "dev": true }, "node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "dependencies": { - "onetime": "^2.0.0", + "onetime": "^5.1.0", "signal-exit": "^3.0.2" }, "engines": { - "node": ">=4" - } - }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "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==", - "engines": { - "node": ">=0.12" + "node": ">=8" } }, "node_modules/reusify": { @@ -18453,318 +14348,178 @@ }, "bin": { "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "3.29.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.2.tgz", - "integrity": "sha512-CJouHoZ27v6siztc21eEQGo0kIcE5D1gVPA571ez0mMYb25LGYGKnVNXpEj5MGlepmDWGXNjDB5q7uNiPHC11A==", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rx": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", - "dev": true - }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "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==", - "dependencies": { - "ret": "~0.1.10" - } - }, - "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==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sass": { - "version": "1.67.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.67.0.tgz", - "integrity": "sha512-SVrO9ZeX/QQyEGtuZYCVxoeAL5vGlYjJ9p4i4HFuekWl8y/LtJ7tJc10Z+ck1c8xOuoBm2MYzcLfTAffD0pl/A==", - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass/node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/sass/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==", - "engines": { - "node": ">=8" - } - }, - "node_modules/sass/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sass/node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/sass/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==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sass/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/sass/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/sass/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/rollup": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.19.0.tgz", + "integrity": "sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==", + "license": "MIT", "dependencies": { - "binary-extensions": "^2.0.0" + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=8" + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.19.0", + "@rollup/rollup-android-arm64": "4.19.0", + "@rollup/rollup-darwin-arm64": "4.19.0", + "@rollup/rollup-darwin-x64": "4.19.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.19.0", + "@rollup/rollup-linux-arm-musleabihf": "4.19.0", + "@rollup/rollup-linux-arm64-gnu": "4.19.0", + "@rollup/rollup-linux-arm64-musl": "4.19.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.19.0", + "@rollup/rollup-linux-riscv64-gnu": "4.19.0", + "@rollup/rollup-linux-s390x-gnu": "4.19.0", + "@rollup/rollup-linux-x64-gnu": "4.19.0", + "@rollup/rollup-linux-x64-musl": "4.19.0", + "@rollup/rollup-win32-arm64-msvc": "4.19.0", + "@rollup/rollup-win32-ia32-msvc": "4.19.0", + "@rollup/rollup-win32-x64-msvc": "4.19.0", + "fsevents": "~2.3.2" } }, - "node_modules/sass/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, "engines": { "node": ">=0.12.0" } }, - "node_modules/sass/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "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": { - "picomatch": "^2.2.1" + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", + "dev": true + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "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/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==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" }, - "engines": { - "node": ">=8.10.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/sass/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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sass": { + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", + "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", + "license": "MIT", "dependencies": { - "is-number": "^7.0.0" + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" }, "engines": { - "node": ">=8.0" + "node": ">=14.0.0" } }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, "node_modules/semantic-release": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-22.0.0.tgz", - "integrity": "sha512-WTD8zPxh+pyc/DrTALRHJ47p1XbKqi2AJljn5WkXgLFFIMSax4uu15u4ZEZaa7ftBo8cSajh16VeafgUu9DX8g==", + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.0.0.tgz", + "integrity": "sha512-v46CRPw+9eI3ZuYGF2oAjqPqsfbnfFTwLBgQsv/lch4goD09ytwOTESMN4QIrx/wPLxUGey60/NMx+ANQtWRsA==", "dev": true, + "license": "MIT", "dependencies": { - "@semantic-release/commit-analyzer": "^11.0.0-beta.3", + "@semantic-release/commit-analyzer": "^13.0.0-beta.1", "@semantic-release/error": "^4.0.0", - "@semantic-release/github": "^9.0.0", - "@semantic-release/npm": "^11.0.0", - "@semantic-release/release-notes-generator": "^12.0.0-beta.2", + "@semantic-release/github": "^10.0.0", + "@semantic-release/npm": "^12.0.0", + "@semantic-release/release-notes-generator": "^14.0.0-beta.1", "aggregate-error": "^5.0.0", - "cosmiconfig": "^8.0.0", + "cosmiconfig": "^9.0.0", "debug": "^4.0.0", - "env-ci": "^9.0.0", - "execa": "^8.0.0", - "figures": "^5.0.0", - "find-versions": "^5.1.0", + "env-ci": "^11.0.0", + "execa": "^9.0.0", + "figures": "^6.0.0", + "find-versions": "^6.0.0", "get-stream": "^6.0.0", "git-log-parser": "^1.2.0", "hook-std": "^3.0.0", "hosted-git-info": "^7.0.0", + "import-from-esm": "^1.3.1", "lodash-es": "^4.17.21", - "marked": "^5.0.0", - "marked-terminal": "^5.1.1", + "marked": "^12.0.0", + "marked-terminal": "^7.0.0", "micromatch": "^4.0.2", "p-each-series": "^3.0.0", "p-reduce": "^3.0.0", - "read-pkg-up": "^10.0.0", + "read-package-up": "^11.0.0", "resolve-from": "^5.0.0", "semver": "^7.3.2", "semver-diff": "^4.0.0", @@ -18775,7 +14530,7 @@ "semantic-release": "bin/semantic-release.js" }, "engines": { - "node": "^18.17 || >=20.6.1" + "node": ">=20.8.1" } }, "node_modules/semantic-release/node_modules/@semantic-release/error": { @@ -18787,15 +14542,12 @@ "node": ">=18" } }, - "node_modules/semantic-release/node_modules/aggregate-error": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", - "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", + "node_modules/semantic-release/node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", "dev": true, - "dependencies": { - "clean-stack": "^5.2.0", - "indent-string": "^5.0.0" - }, + "license": "MIT", "engines": { "node": ">=18" }, @@ -18803,19 +14555,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/semantic-release/node_modules/aggregate-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-5.0.0.tgz", + "integrity": "sha512-gOsf2YwSlleG6IjRYG2A7k0HmBMEo6qVNk9Bp/EaLgAJT5ngH6PXbqa4ItvnEwCm/velL5jAnQgsHsWnjhGmvw==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "clean-stack": "^5.2.0", + "indent-string": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/semantic-release/node_modules/clean-stack": { @@ -18847,40 +14600,30 @@ "node": ">=12" } }, - "node_modules/semantic-release/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/semantic-release/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/semantic-release/node_modules/cosmiconfig": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.2.0.tgz", - "integrity": "sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, "dependencies": { - "import-fresh": "^3.2.1", + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" + "parse-json": "^5.2.0" }, "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/semantic-release/node_modules/escape-string-regexp": { @@ -18896,72 +14639,72 @@ } }, "node_modules/semantic-release/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.3.0.tgz", + "integrity": "sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==", "dev": true, + "license": "MIT", "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^7.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^5.2.0", + "pretty-ms": "^9.0.0", "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" }, "engines": { - "node": ">=16.17" + "node": "^18.19.0 || >=20.5.0" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/semantic-release/node_modules/execa/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", "dev": true, + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, "engines": { - "node": ">=16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/semantic-release/node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", "dev": true, "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" + "is-unicode-supported": "^2.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, "node_modules/semantic-release/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-7.0.0.tgz", + "integrity": "sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=16.17.0" + "node": ">=18.18.0" } }, "node_modules/semantic-release/node_modules/indent-string": { @@ -18976,76 +14719,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/semantic-release/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/marked": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-5.1.0.tgz", - "integrity": "sha512-z3/nBe7aTI8JDszlYLk7dDVNpngjw0o1ZJtrA9kIfkkHcIF+xH7mO23aISl4WxP83elU+MFROgahqdpd05lMEQ==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/semantic-release/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/semantic-release/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semantic-release/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^4.0.0" + "path-key": "^4.0.0" }, "engines": { - "node": ">=12" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -19068,6 +14765,7 @@ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -19080,6 +14778,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -19087,56 +14786,32 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/semantic-release/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/semantic-release/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semantic-release/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==", + "node_modules/semantic-release/node_modules/typescript": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", + "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" + "optional": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/semantic-release/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, "engines": { - "node": ">=10" + "node": ">=14.17" } }, "node_modules/semantic-release/node_modules/yargs": { @@ -19188,14 +14863,14 @@ } }, "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==", "dependencies": { - "sver-compat": "^1.5.0" + "sver": "^1.8.3" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/semver-regex": { @@ -19402,36 +15077,6 @@ "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==", "dev": true }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "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==", - "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/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==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -19442,7 +15087,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -19454,7 +15098,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "engines": { "node": ">=8" } @@ -19500,6 +15143,18 @@ "node": ">=6" } }, + "node_modules/skin-tone": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", + "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "dev": true, + "dependencies": { + "unicode-emoji-modifier-base": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", @@ -19511,134 +15166,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "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==", - "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==", - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "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==", - "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==", - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/socket.io": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", @@ -19666,24 +15193,24 @@ } }, "node_modules/socket.io-client": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.6.1.tgz", - "integrity": "sha512-5UswCV6hpaRsNg5kkEHVcbBIXEYoVbMQaHJBXJCyEQ+CiFPV1NIOY0XOFWG4XR4GZcB8Kn6AsRs/9cy9TbqVMQ==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.4.tgz", + "integrity": "sha512-wh+OkeF0rAVCrABWQBaEjLfb7DVPotMbu0cgWgyR0v6eA4EoVnAwcIeIbcdTE3GT/H3kbdLl7OoH2+asoDRIIg==", "dev": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", - "engine.io-client": "~6.4.0", - "socket.io-parser": "~4.2.1" + "engine.io-client": "~6.5.2", + "socket.io-parser": "~4.2.4" }, "engines": { "node": ">=10.0.0" } }, "node_modules/socket.io-parser": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", - "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -19693,18 +15220,6 @@ "node": ">=10.0.0" } }, - "node_modules/sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -19715,36 +15230,19 @@ } }, "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.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "license": "BSD-3-Clause", "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", - "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" - }, "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==", + "dev": true, "engines": { "node": ">= 0.10" } @@ -19783,86 +15281,6 @@ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" }, - "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==", - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/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==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "dev": true, - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "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==", - "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==", - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/statuses": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", @@ -19882,16 +15300,19 @@ "readable-stream": "^2.0.2" } }, + "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==", + "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==" }, - "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==" - }, "node_modules/stream-throttle": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", @@ -19914,13 +15335,16 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node_modules/streamx": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", + "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" } }, "node_modules/string_decoder": { @@ -19937,37 +15361,31 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=4" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "dev": true, - "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "dev": true, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { - "ansi-regex": "^3.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/string.prototype.padend": { @@ -20039,6 +15457,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -20058,12 +15489,32 @@ } }, "node_modules/strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylehacks": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.2.tgz", + "integrity": "sha512-HdkWZS9b4gbgYTdMg4gJLmm7biAUug1qTqXjS+u8X+/pUd+9Px1E+520GnOW3rST9MNsVOVpsJG+mPHNosxjOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.1", + "postcss-selector-parser": "^6.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, "node_modules/subset-font": { @@ -20091,6 +15542,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/super-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-1.0.0.tgz", + "integrity": "sha512-CY8u7DtbvucKuquCmOFEKhr9Besln7n9uN8eFbwcoGYWXOMW07u2o8njWaiXt11ylS3qoGF55pILjRmPlbodyg==", + "dev": true, + "dependencies": { + "function-timeout": "^1.0.1", + "time-span": "^5.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -20103,16 +15570,16 @@ } }, "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", + "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", "dev": true, "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" } }, "node_modules/supports-hyperlinks/node_modules/has-flag": { @@ -20147,88 +15614,65 @@ "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==", - "dependencies": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" + "node_modules/sver": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/sver/-/sver-1.8.4.tgz", + "integrity": "sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==", + "optionalDependencies": { + "semver": "^6.3.0" + } + }, + "node_modules/sver/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "optional": true, + "bin": { + "semver": "bin/semver.js" } }, "node_modules/svgo": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha512-jT/g9FFMoe9lu2IT6HtAxTA7RR2XOrmcrmCtGnyB/+GQnV6ZjNn+KOHZbZ35yL81+1F/aB6OeEsJztzBQ2EEwA==", - "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", "dev": true, + "license": "MIT", "dependencies": { - "coa": "~1.0.1", - "colors": "~1.1.2", - "csso": "~2.3.1", - "js-yaml": "~3.7.0", - "mkdirp": "~0.5.1", - "sax": "~1.2.1", - "whet.extend": "~0.9.9" + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" }, "bin": { "svgo": "bin/svgo" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svgo/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/svgo/node_modules/esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "node": ">=14.0.0" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" } }, - "node_modules/svgo/node_modules/js-yaml": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "integrity": "sha512-eIlkGty7HGmntbV6P/ZlAsoncFLGsNoM27lkTzS+oneY/EiNhj+geqD9ezg/ip+SW6Var0BJU2JtV0vEUZpWVQ==", + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^2.6.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "license": "MIT", + "engines": { + "node": ">= 10" } }, - "node_modules/svgo/node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "node_modules/svgo/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, + "node_modules/teex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz", + "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==", "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" + "streamx": "^2.12.5" } }, "node_modules/temp-dir": { @@ -20282,18 +15726,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/text-extensions": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", - "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -20311,6 +15743,27 @@ "url": "https://bevry.me/fund" } }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -20321,32 +15774,16 @@ "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==", - "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==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/through2/node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -20356,201 +15793,61 @@ "node": ">= 6" } }, - "node_modules/time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "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==", - "dependencies": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, - "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==", - "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==", - "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==", - "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": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/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==", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "node_modules/time-span": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", + "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", + "dev": true, "dependencies": { - "is-plain-object": "^2.0.4" + "convert-hrtime": "^5.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/to-regex/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==", + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, "dependencies": { - "isobject": "^3.0.1" + "os-tmpdir": "~1.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.6.0" } }, - "node_modules/to-regex/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "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==", + "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==", "dependencies": { - "through2": "^2.0.3" + "is-number": "^7.0.0" }, "engines": { - "node": ">= 0.10" + "node": ">=8.0" } }, - "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==", + "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==", "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "streamx": "^2.12.5" + }, + "engines": { + "node": ">=10.13.0" } }, "node_modules/toidentifier": { @@ -20613,16 +15910,11 @@ } }, "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -20636,12 +15928,12 @@ } }, "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.11.1.tgz", + "integrity": "sha512-MFMf6VkEVZAETidGGSYW2B1MjXbGX+sWIywn2QPEaJ3j08V+MwVRHMXtf2noB8ENJaD0LIun9wh5Z6OPNf1QzQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -20660,11 +15952,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==" - }, "node_modules/typescript": { "version": "4.7.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", @@ -20699,9 +15986,10 @@ } }, "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.0.tgz", + "integrity": "sha512-wNKHUY2hYYkf6oSFfhwwiHo4WCHzHmzcXsqXYTN9ja3iApYIFbb2U6ics9hBcYLHcYGQoAlwnZlTrf3oF+BL/Q==", + "license": "BSD-2-Clause", "bin": { "uglifyjs": "bin/uglifyjs" }, @@ -20732,37 +16020,34 @@ } }, "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==", "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==", "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==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", + "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", + "dependencies": { + "fastest-levenshtein": "^1.0.7" + } }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -20772,6 +16057,15 @@ "node": ">=4" } }, + "node_modules/unicode-emoji-modifier-base": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", + "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", @@ -20800,39 +16094,16 @@ "node": ">=4" } }, - "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==", - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, + "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": ">=0.10.0" - } - }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", - "dev": true - }, - "node_modules/uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==", - "dev": true - }, - "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==", - "dependencies": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/unique-string": { @@ -20851,10 +16122,11 @@ } }, "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==", - "dev": true + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz", + "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==", + "dev": true, + "license": "ISC" }, "node_modules/universalify": { "version": "2.0.0", @@ -20874,63 +16146,10 @@ "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==", - "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==", - "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==", - "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==", - "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==", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "funding": [ { "type": "opencollective", @@ -20945,9 +16164,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -20965,12 +16185,6 @@ "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" - }, "node_modules/url-join": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/url-join/-/url-join-5.0.0.tgz", @@ -20980,14 +16194,6 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "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==", - "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", @@ -21010,14 +16216,11 @@ "optional": true }, "node_modules/v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz", + "integrity": "sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==", "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/validate-npm-package-license": { @@ -21030,11 +16233,11 @@ } }, "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==", "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/vary": { @@ -21046,20 +16249,11 @@ "node": ">= 0.8" } }, - "node_modules/vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "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", @@ -21072,68 +16266,192 @@ "node": ">= 0.10" } }, + "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==", + "dependencies": { + "bl": "^5.0.0", + "vinyl": "^3.0.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "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==", + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "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==", + "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" + } + }, + "node_modules/vinyl-contents/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/vinyl-contents/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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/vinyl-contents/node_modules/vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", + "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/vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-4.0.0.tgz", + "integrity": "sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==", "dependencies": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.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", - "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" + "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-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-fs/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/vinyl-fs/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==" + }, + "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==", "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl-fs/node_modules/vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", + "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/vinyl-sourcemap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz", + "integrity": "sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==", + "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" + }, + "engines": { + "node": ">=10.13.0" } }, - "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==", - "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" - }, + "node_modules/vinyl-sourcemap/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "engines": { - "node": ">= 0.10" + "node": ">=0.8" } }, - "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-sourcemap/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==" + }, + "node_modules/vinyl-sourcemap/node_modules/vinyl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz", + "integrity": "sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==", "dependencies": { - "remove-trailing-separator": "^1.0.1" + "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": ">=0.10.0" + "node": ">=10.13.0" } }, "node_modules/vinyl-sourcemaps-apply": { @@ -21156,6 +16474,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, "engines": { "node": ">=0.8" } @@ -21164,6 +16483,7 @@ "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" } @@ -21180,20 +16500,19 @@ "woff2_decompress.js": "bin/woff2_decompress.js" } }, - "node_modules/whet.extend": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha512-mmIPAft2vTgEILgPeZFqE/wWh24SEsR/k+N9fJ3Jxrz44iDFy9aemCxdksfURSHYFCLmvs/d/7Iso5XjPpNfrA==", + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, - "engines": { - "node": ">=0.6.0" + "dependencies": { + "defaults": "^1.0.3" } }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -21219,11 +16538,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==" - }, "node_modules/which-typed-array": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", @@ -21252,9 +16566,9 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "engines": { "node": ">=0.10.0" @@ -21264,63 +16578,106 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", "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/wrap-ansi/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==", + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "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/wrap-ansi/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==", + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { - "number-is-nan": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/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/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=7.0.0" } }, - "node_modules/wrap-ansi/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==", + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { - "ansi-regex": "^2.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -21360,14 +16717,18 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, "engines": { "node": ">=0.4" } }, "node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } }, "node_modules/yallist": { "version": "4.0.0", @@ -21386,23 +16747,20 @@ } }, "node_modules/yargs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", - "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", - "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", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "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" + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" } }, "node_modules/yargs-parser": { @@ -21413,194 +16771,12 @@ "node": ">=12" } }, - "node_modules/yargs/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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/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==", - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/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==" - }, - "node_modules/yargs/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==", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/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==", - "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/yargs/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==", - "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/yargs/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==", - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/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==", - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/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==", - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/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==", - "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/yargs/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==", - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/yargs/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==", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/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==", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargs/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==", - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/yargs/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==", - "dependencies": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" } }, "node_modules/yn": { @@ -21623,6 +16799,19 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index 9e13c149..9982a5c6 100644 --- a/package.json +++ b/package.json @@ -5,49 +5,54 @@ } }, "dependencies": { - "@babel/preset-env": "^7.22.20", - "@fontsource/inter": "5.0.3", - "@fontsource/rasa": "5.0.3", - "@hotwired/turbo": "^7.3.0", - "@rollup/plugin-babel": "^6.0.3", - "@rollup/plugin-commonjs": "^25.0.4", - "@rollup/plugin-json": "^6.0.0", - "@rollup/plugin-node-resolve": "^15.2.1", - "bulma": "0.9.4", - "bulma-checkradio": "2.1.3", - "bulma-switch": "2.0.4", + "@babel/preset-env": "^7.24.8", + "@fontsource/inter": "5.0.19", + "@fontsource/rasa": "5.0.20", + "@hotwired/turbo": "^8.0.4", + "@rollup/plugin-babel": "^6.0.4", + "@rollup/plugin-commonjs": "^26.0.1", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "bulma": "^1.0.1", + "bulma-checkradio": "^2.1.3", + "bulma-switch": "^2.0.4", "bulma-tooltip": "3.0.2", - "del": "7.0.0", + "del": "7.1.0", "fontawesome-subset": "4.4.0", - "gulp": "4.0.2", - "gulp-autoprefixer": "8.0.0", + "git-cz": "^4.9.0", + "gulp": "5.0.0", + "gulp-autoprefixer": "9.0.0", "gulp-replace": "1.1.4", "gulp-sass": "5.1.0", "npm-run-all": "^4.1.5", - "rollup": "^3.29.2", - "sass": "^1.67.0", - "uglify-js": "^3.17.4" + "rollup": "^4.19.0", + "sass": "^1.77.8", + "uglify-js": "^3.18.0" }, "description": "A task scheduling tool.", "devDependencies": { - "@fortawesome/fontawesome-free": "6.4.0", - "@semantic-release/changelog": "6.0.3", - "@semantic-release/commit-analyzer": "^11.0.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.7.0", + "@fortawesome/fontawesome-free": "6.6.0", + "@semantic-release/changelog": "^6.0.3", + "@semantic-release/commit-analyzer": "13.0.0", "@semantic-release/exec": "6.0.3", "@semantic-release/git": "10.0.1", - "@semantic-release/github": "^9.0.6", - "@semantic-release/npm": "^11.0.0", - "@semantic-release/release-notes-generator": "^12.0.0", - "browser-sync": "^2.29.1", + "@semantic-release/github": "^10.0.6", + "@semantic-release/npm": "^12.0.1", + "@semantic-release/release-notes-generator": "14.0.0", + "browser-sync": "^3.0.2", + "cssnano": "^7.0.4", "cz-conventional-changelog": "3.3.0", - "eslint": "^8.49.0", + "eslint": "^9.7.0", + "globals": "^15.8.0", "gulp-concat": "2.6.1", - "gulp-cssnano": "2.1.3", - "gulp-purgecss": "5.0.0", + "gulp-postcss": "10.0.0", + "gulp-purgecss": "6.0.0", "gulp-rename": "2.0.0", "gulp-uglify": "3.0.2", - "prettier": "^3.0.3", - "semantic-release": "^22.0.0" + "prettier": "^3.3.3", + "semantic-release": "^24.0.0" }, "homepage": "https://atlas-hub.atlas.bi", "license": "AGPL-3.0-or-later", @@ -80,5 +85,6 @@ "test:lint": "poetry run tox -e lint", "test:prettier": "prettier --check --config .prettierrc \"web/**/*.{ts,css,less,scss,js,json,md,yaml,html}\"" }, - "version": "2.12.3" + "type": "module", + "version": "2.12.7" } diff --git a/poetry.lock b/poetry.lock index dd2c5a28..4915bf85 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,32 +1,28 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "alembic" -version = "1.12.0" +version = "1.13.2" description = "A database migration tool for SQLAlchemy." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "alembic-1.12.0-py3-none-any.whl", hash = "sha256:03226222f1cf943deee6c85d9464261a6c710cd19b4fe867a3ad1f25afda610f"}, - {file = "alembic-1.12.0.tar.gz", hash = "sha256:8e7645c32e4f200675e69f0745415335eb59a3663f5feb487abfa0b30c45888b"}, + {file = "alembic-1.13.2-py3-none-any.whl", hash = "sha256:6b8733129a6224a9a711e17c99b08462dbf7cc9670ba8f2e2ae9af860ceb1953"}, + {file = "alembic-1.13.2.tar.gz", hash = "sha256:1ff0ae32975f4fd96028c39ed9bb3c867fe3af956bd7bb37343b54c9fe7445ef"}, ] [package.dependencies] -importlib-metadata = {version = "*", markers = "python_version < \"3.9\""} -importlib-resources = {version = "*", markers = "python_version < \"3.9\""} Mako = "*" SQLAlchemy = ">=1.3.0" typing-extensions = ">=4" [package.extras] -tz = ["python-dateutil"] +tz = ["backports.zoneinfo"] [[package]] name = "apscheduler" version = "3.10.4" description = "In-process task scheduler with Cron-like capabilities" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -37,7 +33,7 @@ files = [ [package.dependencies] pytz = "*" six = ">=1.4.0" -tzlocal = ">=2.0,<3.0.0 || >=4.0.0" +tzlocal = ">=2.0,<3.dev0 || >=4.dev0" [package.extras] doc = ["sphinx", "sphinx-rtd-theme"] @@ -55,7 +51,6 @@ zookeeper = ["kazoo"] name = "async-timeout" version = "4.0.3" description = "Timeout context manager for asyncio programs" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -65,18 +60,17 @@ files = [ [[package]] name = "azure-core" -version = "1.29.4" +version = "1.30.2" description = "Microsoft Azure Core Library for Python" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "azure-core-1.29.4.tar.gz", hash = "sha256:500b3aa9bf2e90c5ccc88bb105d056114ca0ce7d0ce73afb8bc4d714b2fc7568"}, - {file = "azure_core-1.29.4-py3-none-any.whl", hash = "sha256:b03261bcba22c0b9290faf9999cedd23e849ed2577feee90515694cea6bc74bf"}, + {file = "azure-core-1.30.2.tar.gz", hash = "sha256:a14dc210efcd608821aa472d9fb8e8d035d29b68993819147bc290a8ac224472"}, + {file = "azure_core-1.30.2-py3-none-any.whl", hash = "sha256:cf019c1ca832e96274ae85abd3d9f752397194d9fea3b41487290562ac8abe4a"}, ] [package.dependencies] -requests = ">=2.18.4" +requests = ">=2.21.0" six = ">=1.11.0" typing-extensions = ">=4.6.0" @@ -85,77 +79,52 @@ aio = ["aiohttp (>=3.0)"] [[package]] name = "azure-devops" -version = "7.1.0b3" +version = "7.1.0b4" description = "Python wrapper around the Azure DevOps 7.x APIs" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "azure-devops-7.1.0b3.tar.gz", hash = "sha256:644e34d110f016e65c7b36647274c90c20223bf2ecca9be8806aa5a4c754b4e7"}, - {file = "azure_devops-7.1.0b3-py3-none-any.whl", hash = "sha256:ef082a59e79e7f5d979481c7737093cb54618f362b216292fcce7f26d9c452c3"}, + {file = "azure-devops-7.1.0b4.tar.gz", hash = "sha256:f04ba939112579f3d530cfecc044a74ef9e9339ba23c9ee1ece248241f07ff85"}, + {file = "azure_devops-7.1.0b4-py3-none-any.whl", hash = "sha256:f827e9fbc7c77bc6f2aaee46e5717514e9fe7d676c87624eccd0ca640b54f122"}, ] [package.dependencies] msrest = ">=0.7.1,<0.8.0" -[[package]] -name = "backports-zoneinfo" -version = "0.2.1" -description = "Backport of the standard library zoneinfo module" -category = "main" -optional = false -python-versions = ">=3.6" -files = [ - {file = "backports.zoneinfo-0.2.1-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:da6013fd84a690242c310d77ddb8441a559e9cb3d3d59ebac9aca1a57b2e18bc"}, - {file = "backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:89a48c0d158a3cc3f654da4c2de1ceba85263fafb861b98b59040a5086259722"}, - {file = "backports.zoneinfo-0.2.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:1c5742112073a563c81f786e77514969acb58649bcdf6cdf0b4ed31a348d4546"}, - {file = "backports.zoneinfo-0.2.1-cp36-cp36m-win32.whl", hash = "sha256:e8236383a20872c0cdf5a62b554b27538db7fa1bbec52429d8d106effbaeca08"}, - {file = "backports.zoneinfo-0.2.1-cp36-cp36m-win_amd64.whl", hash = "sha256:8439c030a11780786a2002261569bdf362264f605dfa4d65090b64b05c9f79a7"}, - {file = "backports.zoneinfo-0.2.1-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:f04e857b59d9d1ccc39ce2da1021d196e47234873820cbeaad210724b1ee28ac"}, - {file = "backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:17746bd546106fa389c51dbea67c8b7c8f0d14b5526a579ca6ccf5ed72c526cf"}, - {file = "backports.zoneinfo-0.2.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5c144945a7752ca544b4b78c8c41544cdfaf9786f25fe5ffb10e838e19a27570"}, - {file = "backports.zoneinfo-0.2.1-cp37-cp37m-win32.whl", hash = "sha256:e55b384612d93be96506932a786bbcde5a2db7a9e6a4bb4bffe8b733f5b9036b"}, - {file = "backports.zoneinfo-0.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a76b38c52400b762e48131494ba26be363491ac4f9a04c1b7e92483d169f6582"}, - {file = "backports.zoneinfo-0.2.1-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:8961c0f32cd0336fb8e8ead11a1f8cd99ec07145ec2931122faaac1c8f7fd987"}, - {file = "backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e81b76cace8eda1fca50e345242ba977f9be6ae3945af8d46326d776b4cf78d1"}, - {file = "backports.zoneinfo-0.2.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7b0a64cda4145548fed9efc10322770f929b944ce5cee6c0dfe0c87bf4c0c8c9"}, - {file = "backports.zoneinfo-0.2.1-cp38-cp38-win32.whl", hash = "sha256:1b13e654a55cd45672cb54ed12148cd33628f672548f373963b0bff67b217328"}, - {file = "backports.zoneinfo-0.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:4a0f800587060bf8880f954dbef70de6c11bbe59c673c3d818921f042f9954a6"}, - {file = "backports.zoneinfo-0.2.1.tar.gz", hash = "sha256:fadbfe37f74051d024037f223b8e001611eac868b5c5b06144ef4d8b799862f2"}, -] - -[package.extras] -tzdata = ["tzdata"] - [[package]] name = "bcrypt" -version = "4.0.1" +version = "4.2.0" description = "Modern password hashing for your software and your servers" -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "bcrypt-4.0.1-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:b1023030aec778185a6c16cf70f359cbb6e0c289fd564a7cfa29e727a1c38f8f"}, - {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:08d2947c490093a11416df18043c27abe3921558d2c03e2076ccb28a116cb6d0"}, - {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0eaa47d4661c326bfc9d08d16debbc4edf78778e6aaba29c1bc7ce67214d4410"}, - {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae88eca3024bb34bb3430f964beab71226e761f51b912de5133470b649d82344"}, - {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:a522427293d77e1c29e303fc282e2d71864579527a04ddcfda6d4f8396c6c36a"}, - {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:fbdaec13c5105f0c4e5c52614d04f0bca5f5af007910daa8b6b12095edaa67b3"}, - {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:ca3204d00d3cb2dfed07f2d74a25f12fc12f73e606fcaa6975d1f7ae69cacbb2"}, - {file = "bcrypt-4.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:089098effa1bc35dc055366740a067a2fc76987e8ec75349eb9484061c54f535"}, - {file = "bcrypt-4.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:e9a51bbfe7e9802b5f3508687758b564069ba937748ad7b9e890086290d2f79e"}, - {file = "bcrypt-4.0.1-cp36-abi3-win32.whl", hash = "sha256:2caffdae059e06ac23fce178d31b4a702f2a3264c20bfb5ff541b338194d8fab"}, - {file = "bcrypt-4.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:8a68f4341daf7522fe8d73874de8906f3a339048ba406be6ddc1b3ccb16fc0d9"}, - {file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf4fa8b2ca74381bb5442c089350f09a3f17797829d958fad058d6e44d9eb83c"}, - {file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:67a97e1c405b24f19d08890e7ae0c4f7ce1e56a712a016746c8b2d7732d65d4b"}, - {file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b3b85202d95dd568efcb35b53936c5e3b3600c7cdcc6115ba461df3a8e89f38d"}, - {file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbb03eec97496166b704ed663a53680ab57c5084b2fc98ef23291987b525cb7d"}, - {file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:5ad4d32a28b80c5fa6671ccfb43676e8c1cc232887759d1cd7b6f56ea4355215"}, - {file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b57adba8a1444faf784394de3436233728a1ecaeb6e07e8c22c8848f179b893c"}, - {file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:705b2cea8a9ed3d55b4491887ceadb0106acf7c6387699fca771af56b1cdeeda"}, - {file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:2b3ac11cf45161628f1f3733263e63194f22664bf4d0c0f3ab34099c02134665"}, - {file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3100851841186c25f127731b9fa11909ab7b1df6fc4b9f8353f4f1fd952fbf71"}, - {file = "bcrypt-4.0.1.tar.gz", hash = "sha256:27d375903ac8261cfe4047f6709d16f7d18d39b1ec92aaf72af989552a650ebd"}, + {file = "bcrypt-4.2.0-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:096a15d26ed6ce37a14c1ac1e48119660f21b24cba457f160a4b830f3fe6b5cb"}, + {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c02d944ca89d9b1922ceb8a46460dd17df1ba37ab66feac4870f6862a1533c00"}, + {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d84cf6d877918620b687b8fd1bf7781d11e8a0998f576c7aa939776b512b98d"}, + {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:1bb429fedbe0249465cdd85a58e8376f31bb315e484f16e68ca4c786dcc04291"}, + {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:655ea221910bcac76ea08aaa76df427ef8625f92e55a8ee44fbf7753dbabb328"}, + {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:1ee38e858bf5d0287c39b7a1fc59eec64bbf880c7d504d3a06a96c16e14058e7"}, + {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:0da52759f7f30e83f1e30a888d9163a81353ef224d82dc58eb5bb52efcabc399"}, + {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3698393a1b1f1fd5714524193849d0c6d524d33523acca37cd28f02899285060"}, + {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:762a2c5fb35f89606a9fde5e51392dad0cd1ab7ae64149a8b935fe8d79dd5ed7"}, + {file = "bcrypt-4.2.0-cp37-abi3-win32.whl", hash = "sha256:5a1e8aa9b28ae28020a3ac4b053117fb51c57a010b9f969603ed885f23841458"}, + {file = "bcrypt-4.2.0-cp37-abi3-win_amd64.whl", hash = "sha256:8f6ede91359e5df88d1f5c1ef47428a4420136f3ce97763e31b86dd8280fbdf5"}, + {file = "bcrypt-4.2.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:c52aac18ea1f4a4f65963ea4f9530c306b56ccd0c6f8c8da0c06976e34a6e841"}, + {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3bbbfb2734f0e4f37c5136130405332640a1e46e6b23e000eeff2ba8d005da68"}, + {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3413bd60460f76097ee2e0a493ccebe4a7601918219c02f503984f0a7ee0aebe"}, + {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8d7bb9c42801035e61c109c345a28ed7e84426ae4865511eb82e913df18f58c2"}, + {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3d3a6d28cb2305b43feac298774b997e372e56c7c7afd90a12b3dc49b189151c"}, + {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:9c1c4ad86351339c5f320ca372dfba6cb6beb25e8efc659bedd918d921956bae"}, + {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:27fe0f57bb5573104b5a6de5e4153c60814c711b29364c10a75a54bb6d7ff48d"}, + {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:8ac68872c82f1add6a20bd489870c71b00ebacd2e9134a8aa3f98a0052ab4b0e"}, + {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:cb2a8ec2bc07d3553ccebf0746bbf3d19426d1c6d1adbd4fa48925f66af7b9e8"}, + {file = "bcrypt-4.2.0-cp39-abi3-win32.whl", hash = "sha256:77800b7147c9dc905db1cba26abe31e504d8247ac73580b4aa179f98e6608f34"}, + {file = "bcrypt-4.2.0-cp39-abi3-win_amd64.whl", hash = "sha256:61ed14326ee023917ecd093ee6ef422a72f3aec6f07e21ea5f10622b735538a9"}, + {file = "bcrypt-4.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:39e1d30c7233cfc54f5c3f2c825156fe044efdd3e0b9d309512cc514a263ec2a"}, + {file = "bcrypt-4.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f4f4acf526fcd1c34e7ce851147deedd4e26e6402369304220250598b26448db"}, + {file = "bcrypt-4.2.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:1ff39b78a52cf03fdf902635e4c81e544714861ba3f0efc56558979dd4f09170"}, + {file = "bcrypt-4.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:373db9abe198e8e2c70d12b479464e0d5092cc122b20ec504097b5f2297ed184"}, + {file = "bcrypt-4.2.0.tar.gz", hash = "sha256:cf69eaf5185fd58f268f805b505ce31f9b9fc2d64b376642164e9244540c1221"}, ] [package.extras] @@ -164,53 +133,54 @@ typecheck = ["mypy"] [[package]] name = "beautifulsoup4" -version = "4.12.2" +version = "4.12.3" description = "Screen-scraping library" -category = "main" optional = false python-versions = ">=3.6.0" files = [ - {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"}, - {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"}, + {file = "beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed"}, + {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, ] [package.dependencies] soupsieve = ">1.2" [package.extras] +cchardet = ["cchardet"] +chardet = ["chardet"] +charset-normalizer = ["charset-normalizer"] html5lib = ["html5lib"] lxml = ["lxml"] [[package]] name = "black" -version = "23.9.1" +version = "24.4.2" description = "The uncompromising code formatter." -category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "black-23.9.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:d6bc09188020c9ac2555a498949401ab35bb6bf76d4e0f8ee251694664df6301"}, - {file = "black-23.9.1-cp310-cp310-macosx_10_16_universal2.whl", hash = "sha256:13ef033794029b85dfea8032c9d3b92b42b526f1ff4bf13b2182ce4e917f5100"}, - {file = "black-23.9.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:75a2dc41b183d4872d3a500d2b9c9016e67ed95738a3624f4751a0cb4818fe71"}, - {file = "black-23.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13a2e4a93bb8ca74a749b6974925c27219bb3df4d42fc45e948a5d9feb5122b7"}, - {file = "black-23.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:adc3e4442eef57f99b5590b245a328aad19c99552e0bdc7f0b04db6656debd80"}, - {file = "black-23.9.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:8431445bf62d2a914b541da7ab3e2b4f3bc052d2ccbf157ebad18ea126efb91f"}, - {file = "black-23.9.1-cp311-cp311-macosx_10_16_universal2.whl", hash = "sha256:8fc1ddcf83f996247505db6b715294eba56ea9372e107fd54963c7553f2b6dfe"}, - {file = "black-23.9.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:7d30ec46de88091e4316b17ae58bbbfc12b2de05e069030f6b747dfc649ad186"}, - {file = "black-23.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:031e8c69f3d3b09e1aa471a926a1eeb0b9071f80b17689a655f7885ac9325a6f"}, - {file = "black-23.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:538efb451cd50f43aba394e9ec7ad55a37598faae3348d723b59ea8e91616300"}, - {file = "black-23.9.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:638619a559280de0c2aa4d76f504891c9860bb8fa214267358f0a20f27c12948"}, - {file = "black-23.9.1-cp38-cp38-macosx_10_16_universal2.whl", hash = "sha256:a732b82747235e0542c03bf352c126052c0fbc458d8a239a94701175b17d4855"}, - {file = "black-23.9.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:cf3a4d00e4cdb6734b64bf23cd4341421e8953615cba6b3670453737a72ec204"}, - {file = "black-23.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf99f3de8b3273a8317681d8194ea222f10e0133a24a7548c73ce44ea1679377"}, - {file = "black-23.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:14f04c990259576acd093871e7e9b14918eb28f1866f91968ff5524293f9c573"}, - {file = "black-23.9.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:c619f063c2d68f19b2d7270f4cf3192cb81c9ec5bc5ba02df91471d0b88c4c5c"}, - {file = "black-23.9.1-cp39-cp39-macosx_10_16_universal2.whl", hash = "sha256:6a3b50e4b93f43b34a9d3ef00d9b6728b4a722c997c99ab09102fd5efdb88325"}, - {file = "black-23.9.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:c46767e8df1b7beefb0899c4a95fb43058fa8500b6db144f4ff3ca38eb2f6393"}, - {file = "black-23.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50254ebfa56aa46a9fdd5d651f9637485068a1adf42270148cd101cdf56e0ad9"}, - {file = "black-23.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:403397c033adbc45c2bd41747da1f7fc7eaa44efbee256b53842470d4ac5a70f"}, - {file = "black-23.9.1-py3-none-any.whl", hash = "sha256:6ccd59584cc834b6d127628713e4b6b968e5f79572da66284532525a042549f9"}, - {file = "black-23.9.1.tar.gz", hash = "sha256:24b6b3ff5c6d9ea08a8888f6977eae858e1f340d7260cf56d70a49823236b62d"}, + {file = "black-24.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd1b5a14e417189db4c7b64a6540f31730713d173f0b63e55fabd52d61d8fdce"}, + {file = "black-24.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e537d281831ad0e71007dcdcbe50a71470b978c453fa41ce77186bbe0ed6021"}, + {file = "black-24.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaea3008c281f1038edb473c1aa8ed8143a5535ff18f978a318f10302b254063"}, + {file = "black-24.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:7768a0dbf16a39aa5e9a3ded568bb545c8c2727396d063bbaf847df05b08cd96"}, + {file = "black-24.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:257d724c2c9b1660f353b36c802ccece186a30accc7742c176d29c146df6e474"}, + {file = "black-24.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bdde6f877a18f24844e381d45e9947a49e97933573ac9d4345399be37621e26c"}, + {file = "black-24.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e151054aa00bad1f4e1f04919542885f89f5f7d086b8a59e5000e6c616896ffb"}, + {file = "black-24.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:7e122b1c4fb252fd85df3ca93578732b4749d9be076593076ef4d07a0233c3e1"}, + {file = "black-24.4.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:accf49e151c8ed2c0cdc528691838afd217c50412534e876a19270fea1e28e2d"}, + {file = "black-24.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:88c57dc656038f1ab9f92b3eb5335ee9b021412feaa46330d5eba4e51fe49b04"}, + {file = "black-24.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be8bef99eb46d5021bf053114442914baeb3649a89dc5f3a555c88737e5e98fc"}, + {file = "black-24.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:415e686e87dbbe6f4cd5ef0fbf764af7b89f9057b97c908742b6008cc554b9c0"}, + {file = "black-24.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bf10f7310db693bb62692609b397e8d67257c55f949abde4c67f9cc574492cc7"}, + {file = "black-24.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:98e123f1d5cfd42f886624d84464f7756f60ff6eab89ae845210631714f6db94"}, + {file = "black-24.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48a85f2cb5e6799a9ef05347b476cce6c182d6c71ee36925a6c194d074336ef8"}, + {file = "black-24.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:b1530ae42e9d6d5b670a34db49a94115a64596bc77710b1d05e9801e62ca0a7c"}, + {file = "black-24.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:37aae07b029fa0174d39daf02748b379399b909652a806e5708199bd93899da1"}, + {file = "black-24.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da33a1a5e49c4122ccdfd56cd021ff1ebc4a1ec4e2d01594fef9b6f267a9e741"}, + {file = "black-24.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef703f83fc32e131e9bcc0a5094cfe85599e7109f896fe8bc96cc402f3eb4b6e"}, + {file = "black-24.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:b9176b9832e84308818a99a561e90aa479e73c523b3f77afd07913380ae2eab7"}, + {file = "black-24.4.2-py3-none-any.whl", hash = "sha256:d36ed1124bb81b32f8614555b34cc4259c3fbc7eec17870e8ff8ded335b58d8c"}, + {file = "black-24.4.2.tar.gz", hash = "sha256:c872b53057f000085da66a19c55d68f6f8ddcac2642392ad3a355878406fbd4d"}, ] [package.dependencies] @@ -224,27 +194,25 @@ typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)"] +d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "blinker" -version = "1.6.2" +version = "1.8.2" description = "Fast, simple object-to-object and broadcast signaling" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "blinker-1.6.2-py3-none-any.whl", hash = "sha256:c3d739772abb7bc2860abf5f2ec284223d9ad5c76da018234f6f50d6f31ab1f0"}, - {file = "blinker-1.6.2.tar.gz", hash = "sha256:4afd3de66ef3a9f8067559fb7a1cbe555c17dcbe15971b05d1b625c3e7abe213"}, + {file = "blinker-1.8.2-py3-none-any.whl", hash = "sha256:1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01"}, + {file = "blinker-1.8.2.tar.gz", hash = "sha256:8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83"}, ] [[package]] name = "brotli" version = "1.1.0" description = "Python bindings for the Brotli compression library" -category = "main" optional = false python-versions = "*" files = [ @@ -337,7 +305,6 @@ files = [ name = "brotlicffi" version = "1.1.0.0" description = "Python CFFI bindings to the Brotli library" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -375,13 +342,13 @@ cffi = ">=1.0.0" [[package]] name = "bs4" -version = "0.0.1" -description = "Dummy package for Beautiful Soup" -category = "main" +version = "0.0.2" +description = "Dummy package for Beautiful Soup (beautifulsoup4)" optional = false python-versions = "*" files = [ - {file = "bs4-0.0.1.tar.gz", hash = "sha256:36ecea1fd7cc5c0c6e4a1ff075df26d50da647b75376626cc186e2212886dd3a"}, + {file = "bs4-0.0.2-py2.py3-none-any.whl", hash = "sha256:abf8742c0805ef7f662dce4b51cca104cffe52b835238afc169142ab9b3fbccc"}, + {file = "bs4-0.0.2.tar.gz", hash = "sha256:a48685c58f50fe127722417bae83fe6badf500d54b55f7e39ffe43b798653925"}, ] [package.dependencies] @@ -391,7 +358,6 @@ beautifulsoup4 = "*" name = "cachelib" version = "0.9.0" description = "A collection of cache libraries in the same API interface." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -401,100 +367,85 @@ files = [ [[package]] name = "cachetools" -version = "5.3.1" +version = "5.4.0" description = "Extensible memoizing collections and decorators" -category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "cachetools-5.3.1-py3-none-any.whl", hash = "sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590"}, - {file = "cachetools-5.3.1.tar.gz", hash = "sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b"}, + {file = "cachetools-5.4.0-py3-none-any.whl", hash = "sha256:3ae3b49a3d5e28a77a0be2b37dbcb89005058959cb2323858c2657c4a8cab474"}, + {file = "cachetools-5.4.0.tar.gz", hash = "sha256:b8adc2e7c07f105ced7bc56dbb6dfbe7c4a00acce20e2227b3f355be89bc6827"}, ] [[package]] name = "certifi" -version = "2023.7.22" +version = "2024.7.4" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, - {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, + {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, + {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, ] [[package]] name = "cffi" -version = "1.15.1" +version = "1.16.0" description = "Foreign Function Interface for Python calling C code." -category = "main" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, - {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, - {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, - {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, - {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, - {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, - {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, - {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, - {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, - {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, - {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, - {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, - {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, - {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, - {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, - {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, - {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, - {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, - {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, + {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, + {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, + {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, + {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, + {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, + {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, + {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, ] [package.dependencies] @@ -504,7 +455,6 @@ pycparser = "*" name = "cfgv" version = "3.4.0" description = "Validate configuration and produce human readable error messages." -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -516,7 +466,6 @@ files = [ name = "chardet" version = "5.2.0" description = "Universal encoding detector for Python 3" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -526,94 +475,107 @@ files = [ [[package]] name = "charset-normalizer" -version = "3.2.0" +version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"}, - {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, - {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1"}, - {file = "charset_normalizer-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"}, - {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"}, - {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"}, - {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] [[package]] name = "click" version = "8.1.7" description = "Composable command line interface toolkit" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -628,7 +590,6 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -638,64 +599,63 @@ files = [ [[package]] name = "coverage" -version = "7.3.1" +version = "7.6.0" description = "Code coverage measurement for Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "coverage-7.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cd0f7429ecfd1ff597389907045ff209c8fdb5b013d38cfa7c60728cb484b6e3"}, - {file = "coverage-7.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:966f10df9b2b2115da87f50f6a248e313c72a668248be1b9060ce935c871f276"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0575c37e207bb9b98b6cf72fdaaa18ac909fb3d153083400c2d48e2e6d28bd8e"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:245c5a99254e83875c7fed8b8b2536f040997a9b76ac4c1da5bff398c06e860f"}, - {file = "coverage-7.3.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c96dd7798d83b960afc6c1feb9e5af537fc4908852ef025600374ff1a017392"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:de30c1aa80f30af0f6b2058a91505ea6e36d6535d437520067f525f7df123887"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:50dd1e2dd13dbbd856ffef69196781edff26c800a74f070d3b3e3389cab2600d"}, - {file = "coverage-7.3.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b9c0c19f70d30219113b18fe07e372b244fb2a773d4afde29d5a2f7930765136"}, - {file = "coverage-7.3.1-cp310-cp310-win32.whl", hash = "sha256:770f143980cc16eb601ccfd571846e89a5fe4c03b4193f2e485268f224ab602f"}, - {file = "coverage-7.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:cdd088c00c39a27cfa5329349cc763a48761fdc785879220d54eb785c8a38520"}, - {file = "coverage-7.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:74bb470399dc1989b535cb41f5ca7ab2af561e40def22d7e188e0a445e7639e3"}, - {file = "coverage-7.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:025ded371f1ca280c035d91b43252adbb04d2aea4c7105252d3cbc227f03b375"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6191b3a6ad3e09b6cfd75b45c6aeeffe7e3b0ad46b268345d159b8df8d835f9"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7eb0b188f30e41ddd659a529e385470aa6782f3b412f860ce22b2491c89b8593"}, - {file = "coverage-7.3.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75c8f0df9dfd8ff745bccff75867d63ef336e57cc22b2908ee725cc552689ec8"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7eb3cd48d54b9bd0e73026dedce44773214064be93611deab0b6a43158c3d5a0"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ac3c5b7e75acac31e490b7851595212ed951889918d398b7afa12736c85e13ce"}, - {file = "coverage-7.3.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5b4ee7080878077af0afa7238df1b967f00dc10763f6e1b66f5cced4abebb0a3"}, - {file = "coverage-7.3.1-cp311-cp311-win32.whl", hash = "sha256:229c0dd2ccf956bf5aeede7e3131ca48b65beacde2029f0361b54bf93d36f45a"}, - {file = "coverage-7.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:c6f55d38818ca9596dc9019eae19a47410d5322408140d9a0076001a3dcb938c"}, - {file = "coverage-7.3.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5289490dd1c3bb86de4730a92261ae66ea8d44b79ed3cc26464f4c2cde581fbc"}, - {file = "coverage-7.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ca833941ec701fda15414be400c3259479bfde7ae6d806b69e63b3dc423b1832"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd694e19c031733e446c8024dedd12a00cda87e1c10bd7b8539a87963685e969"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aab8e9464c00da5cb9c536150b7fbcd8850d376d1151741dd0d16dfe1ba4fd26"}, - {file = "coverage-7.3.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87d38444efffd5b056fcc026c1e8d862191881143c3aa80bb11fcf9dca9ae204"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:8a07b692129b8a14ad7a37941a3029c291254feb7a4237f245cfae2de78de037"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2829c65c8faaf55b868ed7af3c7477b76b1c6ebeee99a28f59a2cb5907a45760"}, - {file = "coverage-7.3.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1f111a7d85658ea52ffad7084088277135ec5f368457275fc57f11cebb15607f"}, - {file = "coverage-7.3.1-cp312-cp312-win32.whl", hash = "sha256:c397c70cd20f6df7d2a52283857af622d5f23300c4ca8e5bd8c7a543825baa5a"}, - {file = "coverage-7.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:5ae4c6da8b3d123500f9525b50bf0168023313963e0e2e814badf9000dd6ef92"}, - {file = "coverage-7.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ca70466ca3a17460e8fc9cea7123c8cbef5ada4be3140a1ef8f7b63f2f37108f"}, - {file = "coverage-7.3.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f2781fd3cabc28278dc982a352f50c81c09a1a500cc2086dc4249853ea96b981"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6407424621f40205bbe6325686417e5e552f6b2dba3535dd1f90afc88a61d465"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:04312b036580ec505f2b77cbbdfb15137d5efdfade09156961f5277149f5e344"}, - {file = "coverage-7.3.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9ad38204887349853d7c313f53a7b1c210ce138c73859e925bc4e5d8fc18e7"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:53669b79f3d599da95a0afbef039ac0fadbb236532feb042c534fbb81b1a4e40"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:614f1f98b84eb256e4f35e726bfe5ca82349f8dfa576faabf8a49ca09e630086"}, - {file = "coverage-7.3.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f1a317fdf5c122ad642db8a97964733ab7c3cf6009e1a8ae8821089993f175ff"}, - {file = "coverage-7.3.1-cp38-cp38-win32.whl", hash = "sha256:defbbb51121189722420a208957e26e49809feafca6afeef325df66c39c4fdb3"}, - {file = "coverage-7.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:f4f456590eefb6e1b3c9ea6328c1e9fa0f1006e7481179d749b3376fc793478e"}, - {file = "coverage-7.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f12d8b11a54f32688b165fd1a788c408f927b0960984b899be7e4c190ae758f1"}, - {file = "coverage-7.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f09195dda68d94a53123883de75bb97b0e35f5f6f9f3aa5bf6e496da718f0cb6"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6601a60318f9c3945be6ea0f2a80571f4299b6801716f8a6e4846892737ebe4"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07d156269718670d00a3b06db2288b48527fc5f36859425ff7cec07c6b367745"}, - {file = "coverage-7.3.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:636a8ac0b044cfeccae76a36f3b18264edcc810a76a49884b96dd744613ec0b7"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5d991e13ad2ed3aced177f524e4d670f304c8233edad3210e02c465351f785a0"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:586649ada7cf139445da386ab6f8ef00e6172f11a939fc3b2b7e7c9082052fa0"}, - {file = "coverage-7.3.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4aba512a15a3e1e4fdbfed2f5392ec221434a614cc68100ca99dcad7af29f3f8"}, - {file = "coverage-7.3.1-cp39-cp39-win32.whl", hash = "sha256:6bc6f3f4692d806831c136c5acad5ccedd0262aa44c087c46b7101c77e139140"}, - {file = "coverage-7.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:553d7094cb27db58ea91332e8b5681bac107e7242c23f7629ab1316ee73c4981"}, - {file = "coverage-7.3.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:220eb51f5fb38dfdb7e5d54284ca4d0cd70ddac047d750111a68ab1798945194"}, - {file = "coverage-7.3.1.tar.gz", hash = "sha256:6cb7fe1581deb67b782c153136541e20901aa312ceedaf1467dcb35255787952"}, + {file = "coverage-7.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dff044f661f59dace805eedb4a7404c573b6ff0cdba4a524141bc63d7be5c7fd"}, + {file = "coverage-7.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a8659fd33ee9e6ca03950cfdcdf271d645cf681609153f218826dd9805ab585c"}, + {file = "coverage-7.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7792f0ab20df8071d669d929c75c97fecfa6bcab82c10ee4adb91c7a54055463"}, + {file = "coverage-7.6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4b3cd1ca7cd73d229487fa5caca9e4bc1f0bca96526b922d61053ea751fe791"}, + {file = "coverage-7.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7e128f85c0b419907d1f38e616c4f1e9f1d1b37a7949f44df9a73d5da5cd53c"}, + {file = "coverage-7.6.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a94925102c89247530ae1dab7dc02c690942566f22e189cbd53579b0693c0783"}, + {file = "coverage-7.6.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:dcd070b5b585b50e6617e8972f3fbbee786afca71b1936ac06257f7e178f00f6"}, + {file = "coverage-7.6.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d50a252b23b9b4dfeefc1f663c568a221092cbaded20a05a11665d0dbec9b8fb"}, + {file = "coverage-7.6.0-cp310-cp310-win32.whl", hash = "sha256:0e7b27d04131c46e6894f23a4ae186a6a2207209a05df5b6ad4caee6d54a222c"}, + {file = "coverage-7.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:54dece71673b3187c86226c3ca793c5f891f9fc3d8aa183f2e3653da18566169"}, + {file = "coverage-7.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7b525ab52ce18c57ae232ba6f7010297a87ced82a2383b1afd238849c1ff933"}, + {file = "coverage-7.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bea27c4269234e06f621f3fac3925f56ff34bc14521484b8f66a580aacc2e7d"}, + {file = "coverage-7.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed8d1d1821ba5fc88d4a4f45387b65de52382fa3ef1f0115a4f7a20cdfab0e94"}, + {file = "coverage-7.6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01c322ef2bbe15057bc4bf132b525b7e3f7206f071799eb8aa6ad1940bcf5fb1"}, + {file = "coverage-7.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03cafe82c1b32b770a29fd6de923625ccac3185a54a5e66606da26d105f37dac"}, + {file = "coverage-7.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0d1b923fc4a40c5832be4f35a5dab0e5ff89cddf83bb4174499e02ea089daf57"}, + {file = "coverage-7.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4b03741e70fb811d1a9a1d75355cf391f274ed85847f4b78e35459899f57af4d"}, + {file = "coverage-7.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a73d18625f6a8a1cbb11eadc1d03929f9510f4131879288e3f7922097a429f63"}, + {file = "coverage-7.6.0-cp311-cp311-win32.whl", hash = "sha256:65fa405b837060db569a61ec368b74688f429b32fa47a8929a7a2f9b47183713"}, + {file = "coverage-7.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:6379688fb4cfa921ae349c76eb1a9ab26b65f32b03d46bb0eed841fd4cb6afb1"}, + {file = "coverage-7.6.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f7db0b6ae1f96ae41afe626095149ecd1b212b424626175a6633c2999eaad45b"}, + {file = "coverage-7.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bbdf9a72403110a3bdae77948b8011f644571311c2fb35ee15f0f10a8fc082e8"}, + {file = "coverage-7.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cc44bf0315268e253bf563f3560e6c004efe38f76db03a1558274a6e04bf5d5"}, + {file = "coverage-7.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da8549d17489cd52f85a9829d0e1d91059359b3c54a26f28bec2c5d369524807"}, + {file = "coverage-7.6.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0086cd4fc71b7d485ac93ca4239c8f75732c2ae3ba83f6be1c9be59d9e2c6382"}, + {file = "coverage-7.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1fad32ee9b27350687035cb5fdf9145bc9cf0a094a9577d43e909948ebcfa27b"}, + {file = "coverage-7.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:044a0985a4f25b335882b0966625270a8d9db3d3409ddc49a4eb00b0ef5e8cee"}, + {file = "coverage-7.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:76d5f82213aa78098b9b964ea89de4617e70e0d43e97900c2778a50856dac605"}, + {file = "coverage-7.6.0-cp312-cp312-win32.whl", hash = "sha256:3c59105f8d58ce500f348c5b56163a4113a440dad6daa2294b5052a10db866da"}, + {file = "coverage-7.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:ca5d79cfdae420a1d52bf177de4bc2289c321d6c961ae321503b2ca59c17ae67"}, + {file = "coverage-7.6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d39bd10f0ae453554798b125d2f39884290c480f56e8a02ba7a6ed552005243b"}, + {file = "coverage-7.6.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:beb08e8508e53a568811016e59f3234d29c2583f6b6e28572f0954a6b4f7e03d"}, + {file = "coverage-7.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2e16f4cd2bc4d88ba30ca2d3bbf2f21f00f382cf4e1ce3b1ddc96c634bc48ca"}, + {file = "coverage-7.6.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6616d1c9bf1e3faea78711ee42a8b972367d82ceae233ec0ac61cc7fec09fa6b"}, + {file = "coverage-7.6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad4567d6c334c46046d1c4c20024de2a1c3abc626817ae21ae3da600f5779b44"}, + {file = "coverage-7.6.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d17c6a415d68cfe1091d3296ba5749d3d8696e42c37fca5d4860c5bf7b729f03"}, + {file = "coverage-7.6.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9146579352d7b5f6412735d0f203bbd8d00113a680b66565e205bc605ef81bc6"}, + {file = "coverage-7.6.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cdab02a0a941af190df8782aafc591ef3ad08824f97850b015c8c6a8b3877b0b"}, + {file = "coverage-7.6.0-cp38-cp38-win32.whl", hash = "sha256:df423f351b162a702c053d5dddc0fc0ef9a9e27ea3f449781ace5f906b664428"}, + {file = "coverage-7.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:f2501d60d7497fd55e391f423f965bbe9e650e9ffc3c627d5f0ac516026000b8"}, + {file = "coverage-7.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7221f9ac9dad9492cecab6f676b3eaf9185141539d5c9689d13fd6b0d7de840c"}, + {file = "coverage-7.6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ddaaa91bfc4477d2871442bbf30a125e8fe6b05da8a0015507bfbf4718228ab2"}, + {file = "coverage-7.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4cbe651f3904e28f3a55d6f371203049034b4ddbce65a54527a3f189ca3b390"}, + {file = "coverage-7.6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:831b476d79408ab6ccfadaaf199906c833f02fdb32c9ab907b1d4aa0713cfa3b"}, + {file = "coverage-7.6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46c3d091059ad0b9c59d1034de74a7f36dcfa7f6d3bde782c49deb42438f2450"}, + {file = "coverage-7.6.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4d5fae0a22dc86259dee66f2cc6c1d3e490c4a1214d7daa2a93d07491c5c04b6"}, + {file = "coverage-7.6.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:07ed352205574aad067482e53dd606926afebcb5590653121063fbf4e2175166"}, + {file = "coverage-7.6.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:49c76cdfa13015c4560702574bad67f0e15ca5a2872c6a125f6327ead2b731dd"}, + {file = "coverage-7.6.0-cp39-cp39-win32.whl", hash = "sha256:482855914928c8175735a2a59c8dc5806cf7d8f032e4820d52e845d1f731dca2"}, + {file = "coverage-7.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:543ef9179bc55edfd895154a51792b01c017c87af0ebaae092720152e19e42ca"}, + {file = "coverage-7.6.0-pp38.pp39.pp310-none-any.whl", hash = "sha256:6fe885135c8a479d3e37a7aae61cbd3a0fb2deccb4dda3c25f92a49189f766d6"}, + {file = "coverage-7.6.0.tar.gz", hash = "sha256:289cc803fa1dc901f84701ac10c9ee873619320f2f9aff38794db4a4a0268d51"}, ] [package.dependencies] @@ -706,71 +666,57 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "41.0.3" +version = "43.0.0" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "cryptography-41.0.3-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:652627a055cb52a84f8c448185922241dd5217443ca194d5739b44612c5e6507"}, - {file = "cryptography-41.0.3-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:8f09daa483aedea50d249ef98ed500569841d6498aa9c9f4b0531b9964658922"}, - {file = "cryptography-41.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4fd871184321100fb400d759ad0cddddf284c4b696568204d281c902fc7b0d81"}, - {file = "cryptography-41.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84537453d57f55a50a5b6835622ee405816999a7113267739a1b4581f83535bd"}, - {file = "cryptography-41.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:3fb248989b6363906827284cd20cca63bb1a757e0a2864d4c1682a985e3dca47"}, - {file = "cryptography-41.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:42cb413e01a5d36da9929baa9d70ca90d90b969269e5a12d39c1e0d475010116"}, - {file = "cryptography-41.0.3-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:aeb57c421b34af8f9fe830e1955bf493a86a7996cc1338fe41b30047d16e962c"}, - {file = "cryptography-41.0.3-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6af1c6387c531cd364b72c28daa29232162010d952ceb7e5ca8e2827526aceae"}, - {file = "cryptography-41.0.3-cp37-abi3-win32.whl", hash = "sha256:0d09fb5356f975974dbcb595ad2d178305e5050656affb7890a1583f5e02a306"}, - {file = "cryptography-41.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:a983e441a00a9d57a4d7c91b3116a37ae602907a7618b882c8013b5762e80574"}, - {file = "cryptography-41.0.3-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5259cb659aa43005eb55a0e4ff2c825ca111a0da1814202c64d28a985d33b087"}, - {file = "cryptography-41.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:67e120e9a577c64fe1f611e53b30b3e69744e5910ff3b6e97e935aeb96005858"}, - {file = "cryptography-41.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:7efe8041897fe7a50863e51b77789b657a133c75c3b094e51b5e4b5cec7bf906"}, - {file = "cryptography-41.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ce785cf81a7bdade534297ef9e490ddff800d956625020ab2ec2780a556c313e"}, - {file = "cryptography-41.0.3-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:57a51b89f954f216a81c9d057bf1a24e2f36e764a1ca9a501a6964eb4a6800dd"}, - {file = "cryptography-41.0.3-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c2f0d35703d61002a2bbdcf15548ebb701cfdd83cdc12471d2bae80878a4207"}, - {file = "cryptography-41.0.3-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:23c2d778cf829f7d0ae180600b17e9fceea3c2ef8b31a99e3c694cbbf3a24b84"}, - {file = "cryptography-41.0.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:95dd7f261bb76948b52a5330ba5202b91a26fbac13ad0e9fc8a3ac04752058c7"}, - {file = "cryptography-41.0.3-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:41d7aa7cdfded09b3d73a47f429c298e80796c8e825ddfadc84c8a7f12df212d"}, - {file = "cryptography-41.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d0d651aa754ef58d75cec6edfbd21259d93810b73f6ec246436a21b7841908de"}, - {file = "cryptography-41.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:ab8de0d091acbf778f74286f4989cf3d1528336af1b59f3e5d2ebca8b5fe49e1"}, - {file = "cryptography-41.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a74fbcdb2a0d46fe00504f571a2a540532f4c188e6ccf26f1f178480117b33c4"}, - {file = "cryptography-41.0.3.tar.gz", hash = "sha256:6d192741113ef5e30d89dcb5b956ef4e1578f304708701b8b73d38e3e1461f34"}, -] - -[package.dependencies] -cffi = ">=1.12" + {file = "cryptography-43.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:64c3f16e2a4fc51c0d06af28441881f98c5d91009b8caaff40cf3548089e9c74"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3dcdedae5c7710b9f97ac6bba7e1052b95c7083c9d0e9df96e02a1932e777895"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d9a1eca329405219b605fac09ecfc09ac09e595d6def650a437523fcd08dd22"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ea9e57f8ea880eeea38ab5abf9fbe39f923544d7884228ec67d666abd60f5a47"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9a8d6802e0825767476f62aafed40532bd435e8a5f7d23bd8b4f5fd04cc80ecf"}, + {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cc70b4b581f28d0a254d006f26949245e3657d40d8857066c2ae22a61222ef55"}, + {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a997df8c1c2aae1e1e5ac49c2e4f610ad037fc5a3aadc7b64e39dea42249431"}, + {file = "cryptography-43.0.0-cp37-abi3-win32.whl", hash = "sha256:6e2b11c55d260d03a8cf29ac9b5e0608d35f08077d8c087be96287f43af3ccdc"}, + {file = "cryptography-43.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:31e44a986ceccec3d0498e16f3d27b2ee5fdf69ce2ab89b52eaad1d2f33d8778"}, + {file = "cryptography-43.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:7b3f5fe74a5ca32d4d0f302ffe6680fcc5c28f8ef0dc0ae8f40c0f3a1b4fca66"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac1955ce000cb29ab40def14fd1bbfa7af2017cca696ee696925615cafd0dce5"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:299d3da8e00b7e2b54bb02ef58d73cd5f55fb31f33ebbf33bd00d9aa6807df7e"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb013933d4c127349b3948aa8aaf2f12c0353ad0eccd715ca789c8a0f671646f"}, + {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0"}, + {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2905ccf93a8a2a416f3ec01b1a7911c3fe4073ef35640e7ee5296754e30b762b"}, + {file = "cryptography-43.0.0-cp39-abi3-win32.whl", hash = "sha256:47ca71115e545954e6c1d207dd13461ab81f4eccfcb1345eac874828b5e3eaaf"}, + {file = "cryptography-43.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:0663585d02f76929792470451a5ba64424acc3cd5227b03921dab0e2f27b1709"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c6d112bf61c5ef44042c253e4859b3cbbb50df2f78fa8fae6747a7814484a70"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:844b6d608374e7d08f4f6e6f9f7b951f9256db41421917dfb2d003dde4cd6b66"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:51956cf8730665e2bdf8ddb8da0056f699c1a5715648c1b0144670c1ba00b48f"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:aae4d918f6b180a8ab8bf6511a419473d107df4dbb4225c7b48c5c9602c38c7f"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:232ce02943a579095a339ac4b390fbbe97f5b5d5d107f8a08260ea2768be8cc2"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5bcb8a5620008a8034d39bce21dc3e23735dfdb6a33a06974739bfa04f853947"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:08a24a7070b2b6804c1940ff0f910ff728932a9d0e80e7814234269f9d46d069"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e9c5266c432a1e23738d178e51c2c7a5e2ddf790f248be939448c0ba2021f9d1"}, + {file = "cryptography-43.0.0.tar.gz", hash = "sha256:b88075ada2d51aa9f18283532c9f60e72170041bba88d7f37e49cbb10275299e"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} [package.extras] docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] -docstest = ["pyenchant (>=1.6.11)", "sphinxcontrib-spelling (>=4.0.1)", "twine (>=1.12.0)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] nox = ["nox"] -pep8test = ["black", "check-sdist", "mypy", "ruff"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] sdist = ["build"] ssh = ["bcrypt (>=3.1.5)"] -test = ["pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi", "cryptography-vectors (==43.0.0)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] test-randomorder = ["pytest-randomly"] -[[package]] -name = "cssbeautifier" -version = "1.14.9" -description = "CSS unobfuscator and beautifier." -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "cssbeautifier-1.14.9.tar.gz", hash = "sha256:2da432472f68170eb854aff97b16a24721f5090ee36af2e31199590a89e7f71f"}, -] - -[package.dependencies] -editorconfig = ">=0.12.2" -jsbeautifier = "*" -six = ">=1.13.0" - [[package]] name = "cssmin" version = "0.2.0" description = "A Python port of the YUI CSS compression algorithm." -category = "main" optional = false python-versions = "*" files = [ @@ -781,7 +727,6 @@ files = [ name = "defusedxml" version = "0.7.1" description = "XML bomb protection for Python stdlib modules" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -791,64 +736,24 @@ files = [ [[package]] name = "distlib" -version = "0.3.7" +version = "0.3.8" description = "Distribution utilities" -category = "main" -optional = false -python-versions = "*" -files = [ - {file = "distlib-0.3.7-py2.py3-none-any.whl", hash = "sha256:2e24928bc811348f0feb63014e97aaae3037f2cf48712d51ae61df7fd6075057"}, - {file = "distlib-0.3.7.tar.gz", hash = "sha256:9dafe54b34a028eafd95039d5e5d4851a13734540f1331060d31c9916e7147a8"}, -] - -[[package]] -name = "djlint" -version = "1.33.0" -description = "HTML Template Linter and Formatter" -category = "dev" -optional = false -python-versions = ">=3.8.0,<4.0.0" -files = [ - {file = "djlint-1.33.0-py3-none-any.whl", hash = "sha256:aaf7bcbcfe937de5ff52747b573a8c78146b739d058dc817350640206aa477cc"}, - {file = "djlint-1.33.0.tar.gz", hash = "sha256:427e1d0b1cf2dc1922808d27d5a1078369d0c05b0fd2267f0bef06e9049bf3cf"}, -] - -[package.dependencies] -click = ">=8.0.1,<9.0.0" -colorama = ">=0.4.4,<0.5.0" -cssbeautifier = ">=1.14.4,<2.0.0" -html-tag-names = ">=0.1.2,<0.2.0" -html-void-elements = ">=0.1.0,<0.2.0" -jsbeautifier = ">=1.14.4,<2.0.0" -json5 = ">=0.9.11,<0.10.0" -pathspec = ">=0.11.0,<0.12.0" -PyYAML = ">=6.0,<7.0" -regex = ">=2023.0.0,<2024.0.0" -tomli = {version = ">=2.0.1,<3.0.0", markers = "python_version < \"3.11\""} -tqdm = ">=4.62.2,<5.0.0" - -[[package]] -name = "editorconfig" -version = "0.12.3" -description = "EditorConfig File Locator and Interpreter for Python" -category = "dev" optional = false python-versions = "*" files = [ - {file = "EditorConfig-0.12.3-py3-none-any.whl", hash = "sha256:6b0851425aa875b08b16789ee0eeadbd4ab59666e9ebe728e526314c4a2e52c1"}, - {file = "EditorConfig-0.12.3.tar.gz", hash = "sha256:57f8ce78afcba15c8b18d46b5170848c88d56fd38f05c2ec60dbbfcb8996e89e"}, + {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"}, + {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"}, ] [[package]] name = "elementpath" -version = "4.1.5" +version = "4.4.0" description = "XPath 1.0/2.0/3.0/3.1 parsers and selectors for ElementTree and lxml" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "elementpath-4.1.5-py3-none-any.whl", hash = "sha256:2ac1a2fb31eb22bbbf817f8cf6752f844513216263f0e3892c8e79782fe4bb55"}, - {file = "elementpath-4.1.5.tar.gz", hash = "sha256:c2d6dc524b29ef751ecfc416b0627668119d8812441c555d7471da41d4bacb8d"}, + {file = "elementpath-4.4.0-py3-none-any.whl", hash = "sha256:cda092281afe508ece1bf65373905b30196c9426f3730cfea46059e103a131bd"}, + {file = "elementpath-4.4.0.tar.gz", hash = "sha256:dfc4b8ca3d87966dcb0df40b5b6d04a98f053683271930fad9e7fa000924dfb2"}, ] [package.extras] @@ -856,14 +761,13 @@ dev = ["Sphinx", "coverage", "flake8", "lxml", "lxml-stubs", "memory-profiler", [[package]] name = "exceptiongroup" -version = "1.1.3" +version = "1.2.2" description = "Backport of PEP 654 (exception groups)" -category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"}, - {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"}, + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, ] [package.extras] @@ -871,40 +775,37 @@ test = ["pytest (>=6)"] [[package]] name = "filelock" -version = "3.12.4" +version = "3.15.4" description = "A platform independent file lock." -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "filelock-3.12.4-py3-none-any.whl", hash = "sha256:08c21d87ded6e2b9da6728c3dff51baf1dcecf973b768ef35bcbc3447edb9ad4"}, - {file = "filelock-3.12.4.tar.gz", hash = "sha256:2e6f249f1f3654291606e046b09f1fd5eac39b360664c27f5aad072012f8bcbd"}, + {file = "filelock-3.15.4-py3-none-any.whl", hash = "sha256:6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7"}, + {file = "filelock-3.15.4.tar.gz", hash = "sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb"}, ] [package.extras] -docs = ["furo (>=2023.7.26)", "sphinx (>=7.1.2)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.3)", "diff-cover (>=7.7)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-timeout (>=2.1)"] -typing = ["typing-extensions (>=4.7.1)"] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-asyncio (>=0.21)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)", "virtualenv (>=20.26.2)"] +typing = ["typing-extensions (>=4.8)"] [[package]] name = "flask" -version = "2.3.3" +version = "3.0.3" description = "A simple framework for building complex web applications." -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "flask-2.3.3-py3-none-any.whl", hash = "sha256:f69fcd559dc907ed196ab9df0e48471709175e696d6e698dd4dbe940f96ce66b"}, - {file = "flask-2.3.3.tar.gz", hash = "sha256:09c347a92aa7ff4a8e7f3206795f30d826654baf38b873d0744cd571ca609efc"}, + {file = "flask-3.0.3-py3-none-any.whl", hash = "sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3"}, + {file = "flask-3.0.3.tar.gz", hash = "sha256:ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842"}, ] [package.dependencies] blinker = ">=1.6.2" click = ">=8.1.3" -importlib-metadata = {version = ">=3.6.0", markers = "python_version < \"3.10\""} itsdangerous = ">=2.1.2" Jinja2 = ">=3.1.2" -Werkzeug = ">=2.3.7" +Werkzeug = ">=3.0.0" [package.extras] async = ["asgiref (>=3.2)"] @@ -912,96 +813,95 @@ dotenv = ["python-dotenv"] [[package]] name = "flask-apscheduler" -version = "1.13.0" +version = "1.13.1" description = "Adds APScheduler support to Flask" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "Flask-APScheduler-1.13.0.tar.gz", hash = "sha256:19555d6761990f110678aa584ab3ad0e7e698238e6ff60d8f38ab1322bda14c2"}, + {file = "Flask-APScheduler-1.13.1.tar.gz", hash = "sha256:b929846f026fb339b76360b0e4fc75da78b75c6d08625715bd0d37949bd607da"}, ] [package.dependencies] apscheduler = ">=3.2.0,<4.0.0" -flask = ">=2.2.5,<3.0.0" +flask = ">=2.2.5,<4.0.0" python-dateutil = ">=2.4.2" [[package]] -name = "Flask-Assets" -version = "2.0" +name = "flask-assets" +version = "2.1.0" description = "Asset management for Flask, to compress and merge CSS and Javascript files." -category = "main" optional = false python-versions = "*" -files = [] -develop = false +files = [ + {file = "Flask-Assets-2.1.0.tar.gz", hash = "sha256:f84d6532ffe59c9ff352885e8740ff4da25c0bcfacd805f0a806815e44354813"}, + {file = "Flask_Assets-2.1.0-py3-none-any.whl", hash = "sha256:a56c476b15f84701712cc3b4b4a001ebbe62b1dcbe81c23f96fbe6f261b75324"}, +] [package.dependencies] Flask = ">=0.8" webassets = ">=2.0" -[package.source] -type = "git" -url = "https://github.com/christopherpickering/flask-assets.git" -reference = "HEAD" -resolved_reference = "8433cc30fd4dff046a95dd02e26a3e901595be21" - [[package]] name = "flask-caching" -version = "2.0.2" +version = "2.3.0" description = "Adds caching support to Flask applications." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "Flask-Caching-2.0.2.tar.gz", hash = "sha256:24b60c552d59a9605cc1b6a42c56cdb39a82a28dab4532bbedb9222ae54ecb4e"}, - {file = "Flask_Caching-2.0.2-py3-none-any.whl", hash = "sha256:19571f2570e9b8dd9dd9d2f49d7cbee69c14ebe8cc001100b1eb98c379dd80ad"}, + {file = "Flask_Caching-2.3.0-py3-none-any.whl", hash = "sha256:51771c75682e5abc1483b78b96d9131d7941dc669b073852edfa319dd4e29b6e"}, + {file = "flask_caching-2.3.0.tar.gz", hash = "sha256:d7e4ca64a33b49feb339fcdd17e6ba25f5e01168cf885e53790e885f83a4d2cf"}, ] [package.dependencies] cachelib = ">=0.9.0,<0.10.0" -Flask = "<3" +Flask = "*" [[package]] name = "flask-compress" -version = "1.14" -description = "Compress responses in your Flask app with gzip, deflate or brotli." -category = "main" +version = "1.15" +description = "Compress responses in your Flask app with gzip, deflate, brotli or zstandard." optional = false python-versions = "*" files = [ - {file = "Flask-Compress-1.14.tar.gz", hash = "sha256:e46528f37b91857012be38e24e65db1a248662c3dc32ee7808b5986bf1d123ee"}, - {file = "Flask_Compress-1.14-py3-none-any.whl", hash = "sha256:b86c9808f0f38ea2246c9730972cf978f2cdf6a9a1a69102ba81e07891e6b26c"}, + {file = "Flask_Compress-1.15-py3-none-any.whl", hash = "sha256:5d6efe3584c89516c3ab9d94adabe08c218517b957a9bd5cd0c3955dd3834c51"}, + {file = "flask_compress-1.15.tar.gz", hash = "sha256:b7b66cd5d08fc46bbcc71561e13ca64321590b0ca4c172f8001bf5374f8f5c58"}, ] [package.dependencies] brotli = {version = "*", markers = "platform_python_implementation != \"PyPy\""} brotlicffi = {version = "*", markers = "platform_python_implementation == \"PyPy\""} flask = "*" +zstandard = [ + {version = "*", markers = "platform_python_implementation != \"PyPy\""}, + {version = "*", extras = ["cffi"], markers = "platform_python_implementation == \"PyPy\""}, +] [[package]] name = "flask-debugtoolbar" -version = "0.13.1" +version = "0.15.1" description = "A toolbar overlay for debugging Flask applications." -category = "dev" optional = false -python-versions = ">=2.7" +python-versions = ">=3.7" files = [ - {file = "Flask-DebugToolbar-0.13.1.tar.gz", hash = "sha256:0c26aa013a9813b8886857bf0ec24d28ab494114a264baf06c951cadc4dd0dae"}, - {file = "Flask_DebugToolbar-0.13.1-py3-none-any.whl", hash = "sha256:491c737f321830c06a2835784acf1fc8488fd257a0ef318810b3b6bed5f600d5"}, + {file = "Flask_DebugToolbar-0.15.1-py3-none-any.whl", hash = "sha256:f3043d96e9fb9bc3b13ee8a02a5ecc531974f2fdceefa19ce3ba4a700ad40f36"}, + {file = "flask_debugtoolbar-0.15.1.tar.gz", hash = "sha256:8c76666f1553641567da8d91c74fe92caa072cfc01429564aa5e109de10b1806"}, ] [package.dependencies] Blinker = "*" -Flask = ">=0.8" +Flask = ">=2.2.0" itsdangerous = "*" +MarkupSafe = "*" +packaging = "*" werkzeug = "*" +[package.extras] +docs = ["Pallets-Sphinx-Themes", "Sphinx (>=1.2.2)"] + [[package]] name = "flask-executor" version = "1.0.0" description = "An easy to use Flask wrapper for concurrent.futures" -category = "main" optional = false python-versions = "*" files = [ @@ -1019,7 +919,6 @@ test = ["flask-sqlalchemy", "pytest"] name = "flask-htmlmin" version = "2.2.1" description = "Minify flask text/html mime type responses" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1034,14 +933,13 @@ htmlmin = "*" [[package]] name = "flask-login" -version = "0.6.2" +version = "0.6.3" description = "User authentication and session management for Flask." -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "Flask-Login-0.6.2.tar.gz", hash = "sha256:c0a7baa9fdc448cdd3dd6f0939df72eec5177b2f7abe6cb82fc934d29caac9c3"}, - {file = "Flask_Login-0.6.2-py3-none-any.whl", hash = "sha256:1ef79843f5eddd0f143c2cd994c1b05ac83c0401dc6234c143495af9a939613f"}, + {file = "Flask-Login-0.6.3.tar.gz", hash = "sha256:5e23d14a607ef12806c699590b89d0f0e0d67baeec599d75947bf9c147330333"}, + {file = "Flask_Login-0.6.3-py3-none-any.whl", hash = "sha256:849b25b82a436bf830a054e74214074af59097171562ab10bfa999e6b78aae5d"}, ] [package.dependencies] @@ -1050,14 +948,13 @@ Werkzeug = ">=1.0.1" [[package]] name = "flask-migrate" -version = "4.0.5" +version = "4.0.7" description = "SQLAlchemy database migrations for Flask applications using Alembic." -category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "Flask-Migrate-4.0.5.tar.gz", hash = "sha256:d3f437a8b5f3849d1bb1b60e1b818efc564c66e3fefe90b62e5db08db295e1b1"}, - {file = "Flask_Migrate-4.0.5-py3-none-any.whl", hash = "sha256:613a2df703998e78716cace68cd83972960834424457f5b67f56e74fff950aef"}, + {file = "Flask-Migrate-4.0.7.tar.gz", hash = "sha256:dff7dd25113c210b069af280ea713b883f3840c1e3455274745d7355778c8622"}, + {file = "Flask_Migrate-4.0.7-py3-none-any.whl", hash = "sha256:5c532be17e7b43a223b7500d620edae33795df27c75811ddf32560f7d48ec617"}, ] [package.dependencies] @@ -1069,7 +966,6 @@ Flask-SQLAlchemy = ">=1.0" name = "flask-redis" version = "0.4.0" description = "A nice way to use Redis in your Flask app" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1089,7 +985,6 @@ tests = ["coverage", "pytest", "pytest-mock"] name = "flask-script" version = "2.0.6" description = "Scripting support for Flask" -category = "main" optional = false python-versions = "*" files = [ @@ -1100,27 +995,33 @@ files = [ Flask = "*" [[package]] -name = "flask-session2" -version = "1.3.1" -description = "Adds server-side session support to your Flask application" -category = "main" +name = "flask-session" +version = "0.8.0" +description = "Server-side session support for Flask" optional = false -python-versions = ">=3.7.2,<4.0.0" +python-versions = ">=3.8" files = [ - {file = "Flask-Session2-1.3.1.tar.gz", hash = "sha256:171e986d4e314795f448a527095e42df6abfba76c3e4ce5c8e4c61c857c59cb2"}, - {file = "Flask_Session2-1.3.1-py3-none-any.whl", hash = "sha256:6d1615dfc4b247759f31f89bf16aba96fa1294077e700771875abe952f291959"}, + {file = "flask_session-0.8.0-py3-none-any.whl", hash = "sha256:5dae6e9ddab334f8dc4dea4305af37851f4e7dc0f484caf3351184001195e3b7"}, + {file = "flask_session-0.8.0.tar.gz", hash = "sha256:20e045eb01103694e70be4a49f3a80dbb1b57296a22dc6f44bbf3f83ef0742ff"}, ] [package.dependencies] -cachelib = ">=0.9.0,<0.10.0" -Flask = ">=2.2.2,<3.0.0" -pytz = ">=2022.2.1,<2023.0.0" +cachelib = "*" +flask = ">=2.2" +msgspec = ">=0.18.6" + +[package.extras] +all = ["Flask-Session[cachelib,memcached,mongodb,redis,sqlalchemy]"] +cachelib = ["cachelib (>=0.10.2)"] +memcached = ["pymemcache"] +mongodb = ["pymongo (>=4.6.2)"] +redis = ["redis (>=5.0.3)"] +sqlalchemy = ["flask-sqlalchemy (>=3.0.5)"] [[package]] name = "flask-sqlalchemy" version = "3.1.1" description = "Add SQLAlchemy support to your Flask application." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1134,52 +1035,52 @@ sqlalchemy = ">=2.0.16" [[package]] name = "gevent" -version = "23.9.1" +version = "24.2.1" description = "Coroutine-based network library" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "gevent-23.9.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:a3c5e9b1f766a7a64833334a18539a362fb563f6c4682f9634dea72cbe24f771"}, - {file = "gevent-23.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b101086f109168b23fa3586fccd1133494bdb97f86920a24dc0b23984dc30b69"}, - {file = "gevent-23.9.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36a549d632c14684bcbbd3014a6ce2666c5f2a500f34d58d32df6c9ea38b6535"}, - {file = "gevent-23.9.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:272cffdf535978d59c38ed837916dfd2b5d193be1e9e5dcc60a5f4d5025dd98a"}, - {file = "gevent-23.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcb8612787a7f4626aa881ff15ff25439561a429f5b303048f0fca8a1c781c39"}, - {file = "gevent-23.9.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:d57737860bfc332b9b5aa438963986afe90f49645f6e053140cfa0fa1bdae1ae"}, - {file = "gevent-23.9.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5f3c781c84794926d853d6fb58554dc0dcc800ba25c41d42f6959c344b4db5a6"}, - {file = "gevent-23.9.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:dbb22a9bbd6a13e925815ce70b940d1578dbe5d4013f20d23e8a11eddf8d14a7"}, - {file = "gevent-23.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:707904027d7130ff3e59ea387dddceedb133cc742b00b3ffe696d567147a9c9e"}, - {file = "gevent-23.9.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:45792c45d60f6ce3d19651d7fde0bc13e01b56bb4db60d3f32ab7d9ec467374c"}, - {file = "gevent-23.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e24c2af9638d6c989caffc691a039d7c7022a31c0363da367c0d32ceb4a0648"}, - {file = "gevent-23.9.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e1ead6863e596a8cc2a03e26a7a0981f84b6b3e956101135ff6d02df4d9a6b07"}, - {file = "gevent-23.9.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65883ac026731ac112184680d1f0f1e39fa6f4389fd1fc0bf46cc1388e2599f9"}, - {file = "gevent-23.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf7af500da05363e66f122896012acb6e101a552682f2352b618e541c941a011"}, - {file = "gevent-23.9.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:c3e5d2fa532e4d3450595244de8ccf51f5721a05088813c1abd93ad274fe15e7"}, - {file = "gevent-23.9.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c84d34256c243b0a53d4335ef0bc76c735873986d478c53073861a92566a8d71"}, - {file = "gevent-23.9.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ada07076b380918829250201df1d016bdafb3acf352f35e5693b59dceee8dd2e"}, - {file = "gevent-23.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:921dda1c0b84e3d3b1778efa362d61ed29e2b215b90f81d498eb4d8eafcd0b7a"}, - {file = "gevent-23.9.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:ed7a048d3e526a5c1d55c44cb3bc06cfdc1947d06d45006cc4cf60dedc628904"}, - {file = "gevent-23.9.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7c1abc6f25f475adc33e5fc2dbcc26a732608ac5375d0d306228738a9ae14d3b"}, - {file = "gevent-23.9.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4368f341a5f51611411ec3fc62426f52ac3d6d42eaee9ed0f9eebe715c80184e"}, - {file = "gevent-23.9.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:52b4abf28e837f1865a9bdeef58ff6afd07d1d888b70b6804557e7908032e599"}, - {file = "gevent-23.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:52e9f12cd1cda96603ce6b113d934f1aafb873e2c13182cf8e86d2c5c41982ea"}, - {file = "gevent-23.9.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:de350fde10efa87ea60d742901e1053eb2127ebd8b59a7d3b90597eb4e586599"}, - {file = "gevent-23.9.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:fde6402c5432b835fbb7698f1c7f2809c8d6b2bd9d047ac1f5a7c1d5aa569303"}, - {file = "gevent-23.9.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:dd6c32ab977ecf7c7b8c2611ed95fa4aaebd69b74bf08f4b4960ad516861517d"}, - {file = "gevent-23.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:455e5ee8103f722b503fa45dedb04f3ffdec978c1524647f8ba72b4f08490af1"}, - {file = "gevent-23.9.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:7ccf0fd378257cb77d91c116e15c99e533374a8153632c48a3ecae7f7f4f09fe"}, - {file = "gevent-23.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d163d59f1be5a4c4efcdd13c2177baaf24aadf721fdf2e1af9ee54a998d160f5"}, - {file = "gevent-23.9.1-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7532c17bc6c1cbac265e751b95000961715adef35a25d2b0b1813aa7263fb397"}, - {file = "gevent-23.9.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:78eebaf5e73ff91d34df48f4e35581ab4c84e22dd5338ef32714264063c57507"}, - {file = "gevent-23.9.1-cp38-cp38-win32.whl", hash = "sha256:f632487c87866094546a74eefbca2c74c1d03638b715b6feb12e80120960185a"}, - {file = "gevent-23.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:62d121344f7465e3739989ad6b91f53a6ca9110518231553fe5846dbe1b4518f"}, - {file = "gevent-23.9.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:bf456bd6b992eb0e1e869e2fd0caf817f0253e55ca7977fd0e72d0336a8c1c6a"}, - {file = "gevent-23.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43daf68496c03a35287b8b617f9f91e0e7c0d042aebcc060cadc3f049aadd653"}, - {file = "gevent-23.9.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:7c28e38dcde327c217fdafb9d5d17d3e772f636f35df15ffae2d933a5587addd"}, - {file = "gevent-23.9.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:fae8d5b5b8fa2a8f63b39f5447168b02db10c888a3e387ed7af2bd1b8612e543"}, - {file = "gevent-23.9.1-cp39-cp39-win32.whl", hash = "sha256:2c7b5c9912378e5f5ccf180d1fdb1e83f42b71823483066eddbe10ef1a2fcaa2"}, - {file = "gevent-23.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:a2898b7048771917d85a1d548fd378e8a7b2ca963db8e17c6d90c76b495e0e2b"}, - {file = "gevent-23.9.1.tar.gz", hash = "sha256:72c002235390d46f94938a96920d8856d4ffd9ddf62a303a0d7c118894097e34"}, + {file = "gevent-24.2.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:6f947a9abc1a129858391b3d9334c45041c08a0f23d14333d5b844b6e5c17a07"}, + {file = "gevent-24.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bde283313daf0b34a8d1bab30325f5cb0f4e11b5869dbe5bc61f8fe09a8f66f3"}, + {file = "gevent-24.2.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5a1df555431f5cd5cc189a6ee3544d24f8c52f2529134685f1e878c4972ab026"}, + {file = "gevent-24.2.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:14532a67f7cb29fb055a0e9b39f16b88ed22c66b96641df8c04bdc38c26b9ea5"}, + {file = "gevent-24.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd23df885318391856415e20acfd51a985cba6919f0be78ed89f5db9ff3a31cb"}, + {file = "gevent-24.2.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:ca80b121bbec76d7794fcb45e65a7eca660a76cc1a104ed439cdbd7df5f0b060"}, + {file = "gevent-24.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b9913c45d1be52d7a5db0c63977eebb51f68a2d5e6fd922d1d9b5e5fd758cc98"}, + {file = "gevent-24.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:918cdf8751b24986f915d743225ad6b702f83e1106e08a63b736e3a4c6ead789"}, + {file = "gevent-24.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:3d5325ccfadfd3dcf72ff88a92fb8fc0b56cacc7225f0f4b6dcf186c1a6eeabc"}, + {file = "gevent-24.2.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:03aa5879acd6b7076f6a2a307410fb1e0d288b84b03cdfd8c74db8b4bc882fc5"}, + {file = "gevent-24.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8bb35ce57a63c9a6896c71a285818a3922d8ca05d150fd1fe49a7f57287b836"}, + {file = "gevent-24.2.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d7f87c2c02e03d99b95cfa6f7a776409083a9e4d468912e18c7680437b29222c"}, + {file = "gevent-24.2.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:968581d1717bbcf170758580f5f97a2925854943c45a19be4d47299507db2eb7"}, + {file = "gevent-24.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7899a38d0ae7e817e99adb217f586d0a4620e315e4de577444ebeeed2c5729be"}, + {file = "gevent-24.2.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:f5e8e8d60e18d5f7fd49983f0c4696deeddaf6e608fbab33397671e2fcc6cc91"}, + {file = "gevent-24.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fbfdce91239fe306772faab57597186710d5699213f4df099d1612da7320d682"}, + {file = "gevent-24.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cdf66977a976d6a3cfb006afdf825d1482f84f7b81179db33941f2fc9673bb1d"}, + {file = "gevent-24.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:1dffb395e500613e0452b9503153f8f7ba587c67dd4a85fc7cd7aa7430cb02cc"}, + {file = "gevent-24.2.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:6c47ae7d1174617b3509f5d884935e788f325eb8f1a7efc95d295c68d83cce40"}, + {file = "gevent-24.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7cac622e11b4253ac4536a654fe221249065d9a69feb6cdcd4d9af3503602e0"}, + {file = "gevent-24.2.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bf5b9c72b884c6f0c4ed26ef204ee1f768b9437330422492c319470954bc4cc7"}, + {file = "gevent-24.2.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5de3c676e57177b38857f6e3cdfbe8f38d1cd754b63200c0615eaa31f514b4f"}, + {file = "gevent-24.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4faf846ed132fd7ebfbbf4fde588a62d21faa0faa06e6f468b7faa6f436b661"}, + {file = "gevent-24.2.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:368a277bd9278ddb0fde308e6a43f544222d76ed0c4166e0d9f6b036586819d9"}, + {file = "gevent-24.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f8a04cf0c5b7139bc6368b461257d4a757ea2fe89b3773e494d235b7dd51119f"}, + {file = "gevent-24.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9d8d0642c63d453179058abc4143e30718b19a85cbf58c2744c9a63f06a1d388"}, + {file = "gevent-24.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:94138682e68ec197db42ad7442d3cf9b328069c3ad8e4e5022e6b5cd3e7ffae5"}, + {file = "gevent-24.2.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:8f4b8e777d39013595a7740b4463e61b1cfe5f462f1b609b28fbc1e4c4ff01e5"}, + {file = "gevent-24.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:141a2b24ad14f7b9576965c0c84927fc85f824a9bb19f6ec1e61e845d87c9cd8"}, + {file = "gevent-24.2.1-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:9202f22ef811053077d01f43cc02b4aaf4472792f9fd0f5081b0b05c926cca19"}, + {file = "gevent-24.2.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2955eea9c44c842c626feebf4459c42ce168685aa99594e049d03bedf53c2800"}, + {file = "gevent-24.2.1-cp38-cp38-win32.whl", hash = "sha256:44098038d5e2749b0784aabb27f1fcbb3f43edebedf64d0af0d26955611be8d6"}, + {file = "gevent-24.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:117e5837bc74a1673605fb53f8bfe22feb6e5afa411f524c835b2ddf768db0de"}, + {file = "gevent-24.2.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:2ae3a25ecce0a5b0cd0808ab716bfca180230112bb4bc89b46ae0061d62d4afe"}, + {file = "gevent-24.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7ceb59986456ce851160867ce4929edaffbd2f069ae25717150199f8e1548b8"}, + {file = "gevent-24.2.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:2e9ac06f225b696cdedbb22f9e805e2dd87bf82e8fa5e17756f94e88a9d37cf7"}, + {file = "gevent-24.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:90cbac1ec05b305a1b90ede61ef73126afdeb5a804ae04480d6da12c56378df1"}, + {file = "gevent-24.2.1-cp39-cp39-win32.whl", hash = "sha256:782a771424fe74bc7e75c228a1da671578c2ba4ddb2ca09b8f959abdf787331e"}, + {file = "gevent-24.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:3adfb96637f44010be8abd1b5e73b5070f851b817a0b182e601202f20fa06533"}, + {file = "gevent-24.2.1-pp310-pypy310_pp73-macosx_11_0_universal2.whl", hash = "sha256:7b00f8c9065de3ad226f7979154a7b27f3b9151c8055c162332369262fc025d8"}, + {file = "gevent-24.2.1.tar.gz", hash = "sha256:432fc76f680acf7cf188c2ee0f5d3ab73b63c1f03114c7cd8a34cebbe5aa2056"}, ] [package.dependencies] @@ -1196,130 +1097,104 @@ dnspython = ["dnspython (>=1.16.0,<2.0)", "idna"] docs = ["furo", "repoze.sphinx.autointerface", "sphinx", "sphinxcontrib-programoutput", "zope.schema"] monitor = ["psutil (>=5.7.0)"] recommended = ["cffi (>=1.12.2)", "dnspython (>=1.16.0,<2.0)", "idna", "psutil (>=5.7.0)"] -test = ["cffi (>=1.12.2)", "coverage (>=5.0)", "dnspython (>=1.16.0,<2.0)", "idna", "objgraph", "psutil (>=5.7.0)", "requests", "setuptools"] +test = ["cffi (>=1.12.2)", "coverage (>=5.0)", "dnspython (>=1.16.0,<2.0)", "idna", "objgraph", "psutil (>=5.7.0)", "requests"] [[package]] name = "greenlet" -version = "3.0.0rc3" +version = "3.0.3" description = "Lightweight in-process concurrent programming" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "greenlet-3.0.0rc3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a2affddff9b2f846f40799673e41b29f0500582415c860fca8f146858e9de1a"}, - {file = "greenlet-3.0.0rc3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dd00046dfd00767fce18f9933658d126652a500caf7af9dbfbd43818e4b484c2"}, - {file = "greenlet-3.0.0rc3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e787b00002cef3b98c7cf700fb85c2c01b0d202b1c6731706e5baa4b3325aa1e"}, - {file = "greenlet-3.0.0rc3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ffc7538bc66766a8b551888903d415773481c4bd13560a4fb24887222e3cc9"}, - {file = "greenlet-3.0.0rc3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dde5deb355b34bbf44b15789e27c56862f51f417207be49eedc58fce34681fe6"}, - {file = "greenlet-3.0.0rc3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1fb703a102a02361a0cc6a3d9a7958e1584fdeb536bd37ca9aca529d3356bedd"}, - {file = "greenlet-3.0.0rc3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f8661d14d3e07f2ceeb850e4cbcc7114bdf90a8dc82d63d37b08a50bb6955a77"}, - {file = "greenlet-3.0.0rc3-cp310-cp310-win_amd64.whl", hash = "sha256:997456b74efee91ceeb39d63818909da5dbb712a07f7742f4378986ac3473463"}, - {file = "greenlet-3.0.0rc3-cp310-universal2-macosx_11_0_x86_64.whl", hash = "sha256:d3cd3957af8cec1fcfd87d92ca71b7d434d798036e14ae878f9ab1e07d99da0d"}, - {file = "greenlet-3.0.0rc3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:895b689fc52a5bc402f8d624705110df5c265b1410ffe8e0769a66db9d2e7851"}, - {file = "greenlet-3.0.0rc3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a84a88422b5a0360fae57ad6b3b20fc17c9462880929810b0a26ee43aa05982e"}, - {file = "greenlet-3.0.0rc3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d79cf299ba1996d8a4f133b317e709a0a3ce87181308280e40664e12cb512c54"}, - {file = "greenlet-3.0.0rc3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef9789aea735004eba559c7919a73a3b475d0c28e2c1e9de464c6bc761bf69f4"}, - {file = "greenlet-3.0.0rc3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:66790e1537382e53bce64de3a695d1b12a04b00104df45f7ef472a10561936c2"}, - {file = "greenlet-3.0.0rc3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:68349987bf2ce274953f9f9b28458869bd8770a0c5461e1ef91d8107b1bae361"}, - {file = "greenlet-3.0.0rc3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30ffaa6c020a615c8f4be3abfc6029982fda026a3bf9a6dc7205afb033251506"}, - {file = "greenlet-3.0.0rc3-cp311-cp311-win_amd64.whl", hash = "sha256:864619b058f573058cd77f6944cf63d7f42157fe30be494798721bd8ac256d7b"}, - {file = "greenlet-3.0.0rc3-cp311-universal2-macosx_10_9_universal2.whl", hash = "sha256:7c887ecb55374d585d71ff8f9d07c137637694e88fa2b5d5b1450a05ece62ae9"}, - {file = "greenlet-3.0.0rc3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:686821157368c1c4ef53aa68e6801280010da92ab0e4265dad37003341fca6a1"}, - {file = "greenlet-3.0.0rc3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:242d56d2d5f6859f0f086ce62555a2c692c8053c89721d41fead5e1e8dffdb36"}, - {file = "greenlet-3.0.0rc3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81d653ae6c64b85ce4c7bccbea7b630de8799da751b73e55b4c68875b6eb19d6"}, - {file = "greenlet-3.0.0rc3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:beeb5cfbd8f3792c37db4e3c5665aa750d78bbdabe758161a34e7dfe27075e69"}, - {file = "greenlet-3.0.0rc3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:30daee988fc83078b016fa95a7a1f78a7c86534a44238748b9748675814eb1dc"}, - {file = "greenlet-3.0.0rc3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:977898b8c24159467c66ed1a8f62aacd33f3d85f852cf413d0d2e2a87a6b3091"}, - {file = "greenlet-3.0.0rc3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:097a2f75c79c3fa76fea2e5d48a637233722fe72a5ebb1213c55f0a0898f481c"}, - {file = "greenlet-3.0.0rc3-cp312-cp312-win_amd64.whl", hash = "sha256:5770d43b08dfa10f4460c1bd51f8c80e6f2c47611054e9fb80d4d7976d07e560"}, - {file = "greenlet-3.0.0rc3-cp312-universal2-macosx_10_9_universal2.whl", hash = "sha256:f33e7ff85775cb0ec6abb0950ffc631960bae5a203da38166fc3dfde826e0d0a"}, - {file = "greenlet-3.0.0rc3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07f6d1ce31a1db5102a42b4afa609af330edfd8a81d10faba3e47ae33a07cbdf"}, - {file = "greenlet-3.0.0rc3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86e651fa59263f7ff1d4657b086c48cfe7e26db2a36e2d74069f3b5aeab478e6"}, - {file = "greenlet-3.0.0rc3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef7c6e49a9a020d56349c6a769352709bfbe35d3ee7f98bd5efcac6cedbdc162"}, - {file = "greenlet-3.0.0rc3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5585bf8d1d2d3712010ee74988c2ed85c54b127b97f2778fbdcc5b3ea8e801a2"}, - {file = "greenlet-3.0.0rc3-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c706041cd92e1b9d2b602eaa31e94aad14453bdbf186ce77530f25167c173a0e"}, - {file = "greenlet-3.0.0rc3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:37213e72058d2e6231d18417adc63c698c040fbb47dc59a3fd633973214ab1ab"}, - {file = "greenlet-3.0.0rc3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:95bc6ec8dd73f8f36e9dfc61a7fa5a2819d1cd52d0bfdb70a43434d6b2aeb239"}, - {file = "greenlet-3.0.0rc3-cp37-cp37m-win32.whl", hash = "sha256:e83c4c7a0814dcfd7e2fe4b74a371f3ce489b62ff02e81d0c5cacc8ba4750395"}, - {file = "greenlet-3.0.0rc3-cp37-cp37m-win_amd64.whl", hash = "sha256:4c35608918f331256be199d3712552fa8a1d12f87ac171a86a31488c60d298f5"}, - {file = "greenlet-3.0.0rc3-cp37-universal2-macosx_11_0_x86_64.whl", hash = "sha256:215bdb33e85fd89fe55f9984dc6f0a96b5774bace663e1a6d051e65d66170ef8"}, - {file = "greenlet-3.0.0rc3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69db00f775ed9d233f53ef67c66ea40a7add0c0929eb528f633982e27595dd37"}, - {file = "greenlet-3.0.0rc3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5fcc7162944c2fedfb2253ca2171267e016a3b065c73369d0d4a27f601e7f162"}, - {file = "greenlet-3.0.0rc3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3c0082d7b83312c59127811367089f812f8f1386fad7e8cf321fd732b4a6ace6"}, - {file = "greenlet-3.0.0rc3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66f1131c17dba115ea7cb3b257b6751b3c4cfd324f2121447e2483f57abbbf3c"}, - {file = "greenlet-3.0.0rc3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0c5508582339090b99e2863a157fc2708ab9c8b5cd21619bdcb04edcdc6c28d"}, - {file = "greenlet-3.0.0rc3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f1c9ad8d6500f7b142a94054281d9628bc8652a14b0923d02e0dfd87392fbc74"}, - {file = "greenlet-3.0.0rc3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bd586284bbf18ca3068e1fcc67ef54538e1bb74cb605ebdac9e62048237839f5"}, - {file = "greenlet-3.0.0rc3-cp38-cp38-win32.whl", hash = "sha256:1c16f1bbaf9c75dfac3e52bb778d2fd6099fd5aa59fafa678eca5853eedd99ec"}, - {file = "greenlet-3.0.0rc3-cp38-cp38-win_amd64.whl", hash = "sha256:e388ceb55b8f3f388afea4d4a17a64b619040f0e8e9fa3e17e7c34f4d0fbe103"}, - {file = "greenlet-3.0.0rc3-cp38-universal2-macosx_11_0_x86_64.whl", hash = "sha256:68bd35ad9f99df0ef18836fd0fb34278dca6b3350bdcf1e8809822fc4f57a82e"}, - {file = "greenlet-3.0.0rc3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:256b748fc1e6c97012f217e0a403116cb0dd369bf1cff51c07a9c52899d4a8a8"}, - {file = "greenlet-3.0.0rc3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4936e6e051932848c4b237a874da8dbb47bfbb5ae5104497fb78c4f4cf184989"}, - {file = "greenlet-3.0.0rc3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a31b3a4bd10c540a7eb7d4b43d16779813ca4c79b615ed6d4ebf0e5a782d9fa0"}, - {file = "greenlet-3.0.0rc3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b6f8253fdb00e74b928ab5d04f88ddbc8beb0cc26aa978bb4a12c1513166d481"}, - {file = "greenlet-3.0.0rc3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2a7831d04a0f8a14645c010e3fb3fa36b8d2df304dd837948427ccfec2524ddf"}, - {file = "greenlet-3.0.0rc3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ae84d2f2658990f29df4ea753061b25c337bd70f805128af328098e5b8afc454"}, - {file = "greenlet-3.0.0rc3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cd51cc2528a2985f3bc0564c1b1ce5b2e6fa4ee9924503010428256fa95b0e3c"}, - {file = "greenlet-3.0.0rc3-cp39-cp39-win32.whl", hash = "sha256:e8698f341e78dd0f149511929e92d1507cc26647f047db13987169d244db10fb"}, - {file = "greenlet-3.0.0rc3-cp39-cp39-win_amd64.whl", hash = "sha256:f059457db4e2ae4a4fdae455453c5e5765aa08efcb804e2a106c69c31bd438ba"}, - {file = "greenlet-3.0.0rc3-cp39-universal2-macosx_11_0_x86_64.whl", hash = "sha256:c80cac2776df3dd08f27b7338f467a62ee6cb29668a8f4f408b8da1f981aae9e"}, - {file = "greenlet-3.0.0rc3.tar.gz", hash = "sha256:0df5c2ad154f457fd372e39723493b3df519330a4c1bff3ca901be66130f379b"}, + {file = "greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83"}, + {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405"}, + {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f"}, + {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb"}, + {file = "greenlet-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9"}, + {file = "greenlet-3.0.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379"}, + {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22"}, + {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3"}, + {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d"}, + {file = "greenlet-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728"}, + {file = "greenlet-3.0.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230"}, + {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf"}, + {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305"}, + {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6"}, + {file = "greenlet-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2"}, + {file = "greenlet-3.0.3-cp37-cp37m-macosx_11_0_universal2.whl", hash = "sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c"}, + {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41"}, + {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7"}, + {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6"}, + {file = "greenlet-3.0.3-cp37-cp37m-win32.whl", hash = "sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d"}, + {file = "greenlet-3.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67"}, + {file = "greenlet-3.0.3-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b"}, + {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4"}, + {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5"}, + {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da"}, + {file = "greenlet-3.0.3-cp38-cp38-win32.whl", hash = "sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3"}, + {file = "greenlet-3.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf"}, + {file = "greenlet-3.0.3-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61"}, + {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b"}, + {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6"}, + {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113"}, + {file = "greenlet-3.0.3-cp39-cp39-win32.whl", hash = "sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e"}, + {file = "greenlet-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067"}, + {file = "greenlet-3.0.3.tar.gz", hash = "sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491"}, ] [package.extras] -docs = ["Sphinx"] +docs = ["Sphinx", "furo"] test = ["objgraph", "psutil"] [[package]] name = "gunicorn" -version = "21.2.0" +version = "22.0.0" description = "WSGI HTTP Server for UNIX" -category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.7" files = [ - {file = "gunicorn-21.2.0-py3-none-any.whl", hash = "sha256:3213aa5e8c24949e792bcacfc176fef362e7aac80b76c56f6b5122bf350722f0"}, - {file = "gunicorn-21.2.0.tar.gz", hash = "sha256:88ec8bff1d634f98e61b9f65bc4bf3cd918a90806c6f5c48bc5603849ec81033"}, + {file = "gunicorn-22.0.0-py3-none-any.whl", hash = "sha256:350679f91b24062c86e386e198a15438d53a7a8207235a78ba1b53df4c4378d9"}, + {file = "gunicorn-22.0.0.tar.gz", hash = "sha256:4a0b436239ff76fb33f11c07a16482c521a7e09c1ce3cc293c2330afe01bec63"}, ] [package.dependencies] packaging = "*" [package.extras] -eventlet = ["eventlet (>=0.24.1)"] +eventlet = ["eventlet (>=0.24.1,!=0.36.0)"] gevent = ["gevent (>=1.4.0)"] setproctitle = ["setproctitle"] +testing = ["coverage", "eventlet", "gevent", "pytest", "pytest-cov"] tornado = ["tornado (>=0.2)"] -[[package]] -name = "html-tag-names" -version = "0.1.2" -description = "List of known HTML tag names" -category = "dev" -optional = false -python-versions = ">=3.7,<4.0" -files = [ - {file = "html-tag-names-0.1.2.tar.gz", hash = "sha256:04924aca48770f36b5a41c27e4d917062507be05118acb0ba869c97389084297"}, - {file = "html_tag_names-0.1.2-py3-none-any.whl", hash = "sha256:eeb69ef21078486b615241f0393a72b41352c5219ee648e7c61f5632d26f0420"}, -] - -[[package]] -name = "html-void-elements" -version = "0.1.0" -description = "List of HTML void tag names." -category = "dev" -optional = false -python-versions = ">=3.7,<4.0" -files = [ - {file = "html-void-elements-0.1.0.tar.gz", hash = "sha256:931b88f84cd606fee0b582c28fcd00e41d7149421fb673e1e1abd2f0c4f231f0"}, - {file = "html_void_elements-0.1.0-py3-none-any.whl", hash = "sha256:784cf39db03cdeb017320d9301009f8f3480f9d7b254d0974272e80e0cb5e0d2"}, -] - [[package]] name = "htmlmin" version = "0.1.12" description = "An HTML Minifier" -category = "main" optional = false python-versions = "*" files = [ @@ -1328,14 +1203,13 @@ files = [ [[package]] name = "identify" -version = "2.5.29" +version = "2.6.0" description = "File identification library for Python" -category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "identify-2.5.29-py2.py3-none-any.whl", hash = "sha256:24437fbf6f4d3fe6efd0eb9d67e24dd9106db99af5ceb27996a5f7895f24bf1b"}, - {file = "identify-2.5.29.tar.gz", hash = "sha256:d43d52b86b15918c137e3a74fff5224f60385cd0e9c38e99d07c257f02f151a5"}, + {file = "identify-2.6.0-py2.py3-none-any.whl", hash = "sha256:e79ae4406387a9d300332b5fd366d8994f1525e8414984e1a59e058b2eda2dd0"}, + {file = "identify-2.6.0.tar.gz", hash = "sha256:cb171c685bdc31bcc4c1734698736a7d5b6c8bf2e0c15117f4d469c8640ae5cf"}, ] [package.extras] @@ -1343,60 +1217,19 @@ license = ["ukkonen"] [[package]] name = "idna" -version = "3.4" +version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, -] - -[[package]] -name = "importlib-metadata" -version = "6.8.0" -description = "Read metadata from Python packages" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"}, - {file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"}, -] - -[package.dependencies] -zipp = ">=0.5" - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] - -[[package]] -name = "importlib-resources" -version = "6.0.1" -description = "Read resources from Python packages" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "importlib_resources-6.0.1-py3-none-any.whl", hash = "sha256:134832a506243891221b88b4ae1213327eea96ceb4e407a00d790bb0626f45cf"}, - {file = "importlib_resources-6.0.1.tar.gz", hash = "sha256:4359457e42708462b9626a04657c6208ad799ceb41e5c58c57ffa0e6a098a5d4"}, + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] -[package.dependencies] -zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff"] - [[package]] name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1408,7 +1241,6 @@ files = [ name = "is-safe-url" version = "1.0" description = "Django's is_safe_url() bundled as a standalone package." -category = "main" optional = false python-versions = "*" files = [ @@ -1420,7 +1252,6 @@ files = [ name = "isodate" version = "0.6.1" description = "An ISO 8601 date/time/duration parser and formatter" -category = "main" optional = false python-versions = "*" files = [ @@ -1433,39 +1264,33 @@ six = "*" [[package]] name = "isort" -version = "5.12.0" +version = "5.13.2" description = "A Python utility / library to sort Python imports." -category = "dev" optional = false python-versions = ">=3.8.0" files = [ - {file = "isort-5.12.0-py3-none-any.whl", hash = "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6"}, - {file = "isort-5.12.0.tar.gz", hash = "sha256:8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"}, + {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, + {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, ] [package.extras] -colors = ["colorama (>=0.4.3)"] -pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib"] -plugins = ["setuptools"] -requirements-deprecated-finder = ["pip-api", "pipreqs"] +colors = ["colorama (>=0.4.6)"] [[package]] name = "itsdangerous" -version = "2.1.2" +version = "2.2.0" description = "Safely pass data to untrusted environments and back." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "itsdangerous-2.1.2-py3-none-any.whl", hash = "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44"}, - {file = "itsdangerous-2.1.2.tar.gz", hash = "sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a"}, + {file = "itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef"}, + {file = "itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173"}, ] [[package]] name = "jaydebeapi" version = "1.2.3" description = "Use JDBC database drivers from Python 2/3 or Jython with a DB-API." -category = "main" optional = false python-versions = "*" files = [ @@ -1479,14 +1304,13 @@ JPype1 = {version = "*", markers = "python_version > \"2.7\" and platform_python [[package]] name = "jinja2" -version = "3.1.2" +version = "3.1.4" description = "A very fast and expressive template engine." -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, ] [package.dependencies] @@ -1497,33 +1321,34 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "jpype1" -version = "1.4.1" +version = "1.5.0" description = "A Python to Java bridge." -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "JPype1-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:233a6a1a9c7f3633e7d74c14039f7ea35df81e138241f1acc8f94f65a8bd086e"}, - {file = "JPype1-1.4.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0099e77c6e99af13089b1c89cd99681b485fbf74daa492ee38e35d90d6349ffc"}, - {file = "JPype1-1.4.1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:213f7154a7cc859dead7143cfee255bd3ce57938e0a5f2250b6768af0cef62c8"}, - {file = "JPype1-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:8d94013dfed3d1c7ee193e86393b2aea756a9910d222b7167ed493f9a0b1b3d5"}, - {file = "JPype1-1.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:34373696c3457f1d686639d928ef53b6a121203d9c0e651ed44dd3adf78bedb3"}, - {file = "JPype1-1.4.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7622d07408e6d9a89e9eb70d4a9a675e51d5411657ac434ccec23cc94b828d9c"}, - {file = "JPype1-1.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d960ce12c3913242f9e4a11e55afa9c38e1a5410d0a38cc5a21086415c38a02"}, - {file = "JPype1-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:5473a89d2cab327e38382fd69d1209517bad44158fb3ee9e699ebfeb5bc1cd51"}, - {file = "JPype1-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:d85489a27c58b1b21feb8601406319b6a51d233ae9fa27de9b24c4dfea560b22"}, - {file = "JPype1-1.4.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9ce364d26ccbf7a21e35737f62663ce8d3aeb4e4b0f05d7e71f6126a6eb81059"}, - {file = "JPype1-1.4.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b9e29a0ea763c16d0fb05528785d4ed0fa56a421d600eca87e43398b569d2dea"}, - {file = "JPype1-1.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:8c2fef2d0c298c8e69b2880ff866fa5db5f477ddd78ef310a357d697362c9f89"}, - {file = "JPype1-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6089cd28067d77e5b4a09e272525ecd70f838b92a7c08d91d4fa7d192ec3f3bb"}, - {file = "JPype1-1.4.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:24e601a31fb3b44decd5389ea87cbc39aaa0c61980c39b060561f9dc604f4cc5"}, - {file = "JPype1-1.4.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:000556d5839ffbe61c12f1fa41cbfd4e9a0abe103e0100febacc069d75defa8f"}, - {file = "JPype1-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:7039db1a522af55cf89f6a4a72120f8b074abcde2535543da34616640ecbb3c1"}, - {file = "JPype1-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bd8bd76bf8741fa20d44ded776e6a3ea7fe103bcab7156f53ba7a72c50b7dd2f"}, - {file = "JPype1-1.4.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d483a6c3e6cb19065e71d322c4742efcfafc44bf1a67ef8ef75f78626158c3d9"}, - {file = "JPype1-1.4.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:04ea4be3e9471bf62ccdeccc2417ad6b9a300effcc0e5f6af9534eafa14e3978"}, - {file = "JPype1-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:8692a7b14e807b224673010a648ab12415d3bc32323e351f03e6c64814ee319b"}, - {file = "JPype1-1.4.1.tar.gz", hash = "sha256:dc8ee854073474ad79ae168d90c2f6893854f58936cfa18f3587cadae0d3696d"}, + {file = "JPype1-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7b6b1af3f9e0033080e3532c2686a224cd14706f36c14ef36160a2a1db751a17"}, + {file = "JPype1-1.5.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0ed36803734b812c78ca9228dd3291128ac80b2a1d06c293d60b5c2f049040b4"}, + {file = "JPype1-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a02b2f05621c119d35f4acc501b4261eeb48a4af7cc13d9afc2e9eb316c4bd29"}, + {file = "JPype1-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:0b40c76e075d4fed2c83340bb30b7b95bbc396fd370c564c6b608faab00ea4ef"}, + {file = "JPype1-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:85a31b30b482eaf788b21af421e0750aa0be7758307314178143a76632b0ad04"}, + {file = "JPype1-1.5.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:20f0229d7aaa04c480a7fa271cbd161ded58cecd838ba52a4e01bea21b60a058"}, + {file = "JPype1-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ef976e0f3b2e9604469f449f30bb2031941a159a0637f4c16adb2c5076f3e81"}, + {file = "JPype1-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:2bc987205ff8d2d8e36dfbef05430e0638e85d4fee1166ba58ebfa6f7a67cdf8"}, + {file = "JPype1-1.5.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8714bfaf09d6877160bc7ac97812016ccb09f6d7ba5ea2a9f519178aefcca93f"}, + {file = "JPype1-1.5.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1696196a8b6ea2f8ad3280249014406de919088494b94a84581da01752d98dca"}, + {file = "JPype1-1.5.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8649b526eccb4047881ad60bdb1974eb71a09cdb7f8bda17c96fdc0f9a3f2d1e"}, + {file = "JPype1-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:9aafc00b00bf8c1b624081e5d4ab87f7752e6c7ee6a141cfc332250b05c6d42f"}, + {file = "JPype1-1.5.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccb9c786e9b709c6390c89e200036b2080bf668cce118561a0cfd74eae43903f"}, + {file = "JPype1-1.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa5a27cba59865f034259657fd322ca0a5cde82e691a1180c6a8040d2e0c0788"}, + {file = "JPype1-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cff64ac1980d899841cbc561b097eeec8106b34d70c42342b211b83005562f88"}, + {file = "JPype1-1.5.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:439e006a3a74bd26e15ab6bca873e3572087667b5525cb82244a1945dd607d80"}, + {file = "JPype1-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b437ce6fadaf5562576b2b5919fa0a5174a92f70a7d903f0faf8dff6f34199fa"}, + {file = "JPype1-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:a01eba1fdf5869e46dc7336a8ff2a97a66d209c8d5f23a64f7f23b70e55ffc0f"}, + {file = "JPype1-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e8d9bdd137e7cecabebd46ce7d3539fd53745018974d0bc3ec0a3634c2e53af5"}, + {file = "JPype1-1.5.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9f8f01474186bf69bf05dd9a5ef4d5b2159980cfc9d8da91e021d682cc32552"}, + {file = "JPype1-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7aa1469d75f9b310f709b61bb2faa4cef4cbd4d670531ad1d1bb53e29cfda05"}, + {file = "JPype1-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:6bfdc101c56cab0b6b16e974fd8cbb0b3f7f14178286b8b55413c5d82d5f2bea"}, + {file = "JPype1-1.5.0.tar.gz", hash = "sha256:425a6e1966afdd5848b60c2688bcaeb7e40ba504a686f1114589668e0631e878"}, ] [package.dependencies] @@ -1533,154 +1358,173 @@ packaging = "*" docs = ["readthedocs-sphinx-ext", "sphinx", "sphinx-rtd-theme"] tests = ["pytest"] -[[package]] -name = "jsbeautifier" -version = "1.14.9" -description = "JavaScript unobfuscator and beautifier." -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "jsbeautifier-1.14.9.tar.gz", hash = "sha256:c738ebc36b47bd94e4ca6dd17a9004c3cc74edad582ca1d60e0e5d5945a63cb9"}, -] - -[package.dependencies] -editorconfig = ">=0.12.2" -six = ">=1.13.0" - -[[package]] -name = "json5" -version = "0.9.14" -description = "A Python implementation of the JSON5 data format." -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "json5-0.9.14-py2.py3-none-any.whl", hash = "sha256:740c7f1b9e584a468dbb2939d8d458db3427f2c93ae2139d05f47e453eae964f"}, - {file = "json5-0.9.14.tar.gz", hash = "sha256:9ed66c3a6ca3510a976a9ef9b8c0787de24802724ab1860bc0153c7fdd589b02"}, -] - -[package.extras] -dev = ["hypothesis"] - [[package]] name = "lxml" -version = "4.9.3" +version = "5.2.2" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" -files = [ - {file = "lxml-4.9.3-cp27-cp27m-macosx_11_0_x86_64.whl", hash = "sha256:b0a545b46b526d418eb91754565ba5b63b1c0b12f9bd2f808c852d9b4b2f9b5c"}, - {file = "lxml-4.9.3-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:075b731ddd9e7f68ad24c635374211376aa05a281673ede86cbe1d1b3455279d"}, - {file = "lxml-4.9.3-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1e224d5755dba2f4a9498e150c43792392ac9b5380aa1b845f98a1618c94eeef"}, - {file = "lxml-4.9.3-cp27-cp27m-win32.whl", hash = "sha256:2c74524e179f2ad6d2a4f7caf70e2d96639c0954c943ad601a9e146c76408ed7"}, - {file = "lxml-4.9.3-cp27-cp27m-win_amd64.whl", hash = "sha256:4f1026bc732b6a7f96369f7bfe1a4f2290fb34dce00d8644bc3036fb351a4ca1"}, - {file = "lxml-4.9.3-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0781a98ff5e6586926293e59480b64ddd46282953203c76ae15dbbbf302e8bb"}, - {file = "lxml-4.9.3-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:cef2502e7e8a96fe5ad686d60b49e1ab03e438bd9123987994528febd569868e"}, - {file = "lxml-4.9.3-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:b86164d2cff4d3aaa1f04a14685cbc072efd0b4f99ca5708b2ad1b9b5988a991"}, - {file = "lxml-4.9.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:42871176e7896d5d45138f6d28751053c711ed4d48d8e30b498da155af39aebd"}, - {file = "lxml-4.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:ae8b9c6deb1e634ba4f1930eb67ef6e6bf6a44b6eb5ad605642b2d6d5ed9ce3c"}, - {file = "lxml-4.9.3-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:411007c0d88188d9f621b11d252cce90c4a2d1a49db6c068e3c16422f306eab8"}, - {file = "lxml-4.9.3-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:cd47b4a0d41d2afa3e58e5bf1f62069255aa2fd6ff5ee41604418ca925911d76"}, - {file = "lxml-4.9.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0e2cb47860da1f7e9a5256254b74ae331687b9672dfa780eed355c4c9c3dbd23"}, - {file = "lxml-4.9.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1247694b26342a7bf47c02e513d32225ededd18045264d40758abeb3c838a51f"}, - {file = "lxml-4.9.3-cp310-cp310-win32.whl", hash = "sha256:cdb650fc86227eba20de1a29d4b2c1bfe139dc75a0669270033cb2ea3d391b85"}, - {file = "lxml-4.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:97047f0d25cd4bcae81f9ec9dc290ca3e15927c192df17331b53bebe0e3ff96d"}, - {file = "lxml-4.9.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:1f447ea5429b54f9582d4b955f5f1985f278ce5cf169f72eea8afd9502973dd5"}, - {file = "lxml-4.9.3-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:57d6ba0ca2b0c462f339640d22882acc711de224d769edf29962b09f77129cbf"}, - {file = "lxml-4.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:9767e79108424fb6c3edf8f81e6730666a50feb01a328f4a016464a5893f835a"}, - {file = "lxml-4.9.3-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:71c52db65e4b56b8ddc5bb89fb2e66c558ed9d1a74a45ceb7dcb20c191c3df2f"}, - {file = "lxml-4.9.3-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:d73d8ecf8ecf10a3bd007f2192725a34bd62898e8da27eb9d32a58084f93962b"}, - {file = "lxml-4.9.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0a3d3487f07c1d7f150894c238299934a2a074ef590b583103a45002035be120"}, - {file = "lxml-4.9.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e28c51fa0ce5674be9f560c6761c1b441631901993f76700b1b30ca6c8378d6"}, - {file = "lxml-4.9.3-cp311-cp311-win32.whl", hash = "sha256:0bfd0767c5c1de2551a120673b72e5d4b628737cb05414f03c3277bf9bed3305"}, - {file = "lxml-4.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:25f32acefac14ef7bd53e4218fe93b804ef6f6b92ffdb4322bb6d49d94cad2bc"}, - {file = "lxml-4.9.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:d3ff32724f98fbbbfa9f49d82852b159e9784d6094983d9a8b7f2ddaebb063d4"}, - {file = "lxml-4.9.3-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:48d6ed886b343d11493129e019da91d4039826794a3e3027321c56d9e71505be"}, - {file = "lxml-4.9.3-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9a92d3faef50658dd2c5470af249985782bf754c4e18e15afb67d3ab06233f13"}, - {file = "lxml-4.9.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b4e4bc18382088514ebde9328da057775055940a1f2e18f6ad2d78aa0f3ec5b9"}, - {file = "lxml-4.9.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fc9b106a1bf918db68619fdcd6d5ad4f972fdd19c01d19bdb6bf63f3589a9ec5"}, - {file = "lxml-4.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:d37017287a7adb6ab77e1c5bee9bcf9660f90ff445042b790402a654d2ad81d8"}, - {file = "lxml-4.9.3-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56dc1f1ebccc656d1b3ed288f11e27172a01503fc016bcabdcbc0978b19352b7"}, - {file = "lxml-4.9.3-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:578695735c5a3f51569810dfebd05dd6f888147a34f0f98d4bb27e92b76e05c2"}, - {file = "lxml-4.9.3-cp35-cp35m-win32.whl", hash = "sha256:704f61ba8c1283c71b16135caf697557f5ecf3e74d9e453233e4771d68a1f42d"}, - {file = "lxml-4.9.3-cp35-cp35m-win_amd64.whl", hash = "sha256:c41bfca0bd3532d53d16fd34d20806d5c2b1ace22a2f2e4c0008570bf2c58833"}, - {file = "lxml-4.9.3-cp36-cp36m-macosx_11_0_x86_64.whl", hash = "sha256:64f479d719dc9f4c813ad9bb6b28f8390360660b73b2e4beb4cb0ae7104f1c12"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:dd708cf4ee4408cf46a48b108fb9427bfa00b9b85812a9262b5c668af2533ea5"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c31c7462abdf8f2ac0577d9f05279727e698f97ecbb02f17939ea99ae8daa98"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:e3cd95e10c2610c360154afdc2f1480aea394f4a4f1ea0a5eacce49640c9b190"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:4930be26af26ac545c3dffb662521d4e6268352866956672231887d18f0eaab2"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4aec80cde9197340bc353d2768e2a75f5f60bacda2bab72ab1dc499589b3878c"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:14e019fd83b831b2e61baed40cab76222139926b1fb5ed0e79225bc0cae14584"}, - {file = "lxml-4.9.3-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0c0850c8b02c298d3c7006b23e98249515ac57430e16a166873fc47a5d549287"}, - {file = "lxml-4.9.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:aca086dc5f9ef98c512bac8efea4483eb84abbf926eaeedf7b91479feb092458"}, - {file = "lxml-4.9.3-cp36-cp36m-win32.whl", hash = "sha256:50baa9c1c47efcaef189f31e3d00d697c6d4afda5c3cde0302d063492ff9b477"}, - {file = "lxml-4.9.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bef4e656f7d98aaa3486d2627e7d2df1157d7e88e7efd43a65aa5dd4714916cf"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:46f409a2d60f634fe550f7133ed30ad5321ae2e6630f13657fb9479506b00601"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:4c28a9144688aef80d6ea666c809b4b0e50010a2aca784c97f5e6bf143d9f129"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:141f1d1a9b663c679dc524af3ea1773e618907e96075262726c7612c02b149a4"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:53ace1c1fd5a74ef662f844a0413446c0629d151055340e9893da958a374f70d"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:17a753023436a18e27dd7769e798ce302963c236bc4114ceee5b25c18c52c693"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7d298a1bd60c067ea75d9f684f5f3992c9d6766fadbc0bcedd39750bf344c2f4"}, - {file = "lxml-4.9.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:081d32421db5df44c41b7f08a334a090a545c54ba977e47fd7cc2deece78809a"}, - {file = "lxml-4.9.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:23eed6d7b1a3336ad92d8e39d4bfe09073c31bfe502f20ca5116b2a334f8ec02"}, - {file = "lxml-4.9.3-cp37-cp37m-win32.whl", hash = "sha256:1509dd12b773c02acd154582088820893109f6ca27ef7291b003d0e81666109f"}, - {file = "lxml-4.9.3-cp37-cp37m-win_amd64.whl", hash = "sha256:120fa9349a24c7043854c53cae8cec227e1f79195a7493e09e0c12e29f918e52"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:4d2d1edbca80b510443f51afd8496be95529db04a509bc8faee49c7b0fb6d2cc"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:8d7e43bd40f65f7d97ad8ef5c9b1778943d02f04febef12def25f7583d19baac"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:71d66ee82e7417828af6ecd7db817913cb0cf9d4e61aa0ac1fde0583d84358db"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:6fc3c450eaa0b56f815c7b62f2b7fba7266c4779adcf1cece9e6deb1de7305ce"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:65299ea57d82fb91c7f019300d24050c4ddeb7c5a190e076b5f48a2b43d19c42"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:eadfbbbfb41b44034a4c757fd5d70baccd43296fb894dba0295606a7cf3124aa"}, - {file = "lxml-4.9.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3e9bdd30efde2b9ccfa9cb5768ba04fe71b018a25ea093379c857c9dad262c40"}, - {file = "lxml-4.9.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fcdd00edfd0a3001e0181eab3e63bd5c74ad3e67152c84f93f13769a40e073a7"}, - {file = "lxml-4.9.3-cp38-cp38-win32.whl", hash = "sha256:57aba1bbdf450b726d58b2aea5fe47c7875f5afb2c4a23784ed78f19a0462574"}, - {file = "lxml-4.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:92af161ecbdb2883c4593d5ed4815ea71b31fafd7fd05789b23100d081ecac96"}, - {file = "lxml-4.9.3-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:9bb6ad405121241e99a86efff22d3ef469024ce22875a7ae045896ad23ba2340"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:8ed74706b26ad100433da4b9d807eae371efaa266ffc3e9191ea436087a9d6a7"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fbf521479bcac1e25a663df882c46a641a9bff6b56dc8b0fafaebd2f66fb231b"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:303bf1edce6ced16bf67a18a1cf8339d0db79577eec5d9a6d4a80f0fb10aa2da"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:5515edd2a6d1a5a70bfcdee23b42ec33425e405c5b351478ab7dc9347228f96e"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:690dafd0b187ed38583a648076865d8c229661ed20e48f2335d68e2cf7dc829d"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b6420a005548ad52154c8ceab4a1290ff78d757f9e5cbc68f8c77089acd3c432"}, - {file = "lxml-4.9.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bb3bb49c7a6ad9d981d734ef7c7193bc349ac338776a0360cc671eaee89bcf69"}, - {file = "lxml-4.9.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d27be7405547d1f958b60837dc4c1007da90b8b23f54ba1f8b728c78fdb19d50"}, - {file = "lxml-4.9.3-cp39-cp39-win32.whl", hash = "sha256:8df133a2ea5e74eef5e8fc6f19b9e085f758768a16e9877a60aec455ed2609b2"}, - {file = "lxml-4.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:4dd9a263e845a72eacb60d12401e37c616438ea2e5442885f65082c276dfb2b2"}, - {file = "lxml-4.9.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6689a3d7fd13dc687e9102a27e98ef33730ac4fe37795d5036d18b4d527abd35"}, - {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:f6bdac493b949141b733c5345b6ba8f87a226029cbabc7e9e121a413e49441e0"}, - {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:05186a0f1346ae12553d66df1cfce6f251589fea3ad3da4f3ef4e34b2d58c6a3"}, - {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c2006f5c8d28dee289f7020f721354362fa304acbaaf9745751ac4006650254b"}, - {file = "lxml-4.9.3-pp38-pypy38_pp73-macosx_11_0_x86_64.whl", hash = "sha256:5c245b783db29c4e4fbbbfc9c5a78be496c9fea25517f90606aa1f6b2b3d5f7b"}, - {file = "lxml-4.9.3-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:4fb960a632a49f2f089d522f70496640fdf1218f1243889da3822e0a9f5f3ba7"}, - {file = "lxml-4.9.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:50670615eaf97227d5dc60de2dc99fb134a7130d310d783314e7724bf163f75d"}, - {file = "lxml-4.9.3-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:9719fe17307a9e814580af1f5c6e05ca593b12fb7e44fe62450a5384dbf61b4b"}, - {file = "lxml-4.9.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:3331bece23c9ee066e0fb3f96c61322b9e0f54d775fccefff4c38ca488de283a"}, - {file = "lxml-4.9.3-pp39-pypy39_pp73-macosx_11_0_x86_64.whl", hash = "sha256:ed667f49b11360951e201453fc3967344d0d0263aa415e1619e85ae7fd17b4e0"}, - {file = "lxml-4.9.3-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:8b77946fd508cbf0fccd8e400a7f71d4ac0e1595812e66025bac475a8e811694"}, - {file = "lxml-4.9.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:e4da8ca0c0c0aea88fd46be8e44bd49716772358d648cce45fe387f7b92374a7"}, - {file = "lxml-4.9.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fe4bda6bd4340caa6e5cf95e73f8fea5c4bfc55763dd42f1b50a94c1b4a2fbd4"}, - {file = "lxml-4.9.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:f3df3db1d336b9356dd3112eae5f5c2b8b377f3bc826848567f10bfddfee77e9"}, - {file = "lxml-4.9.3.tar.gz", hash = "sha256:48628bd53a426c9eb9bc066a923acaa0878d1e86129fd5359aee99285f4eed9c"}, +optional = false +python-versions = ">=3.6" +files = [ + {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:364d03207f3e603922d0d3932ef363d55bbf48e3647395765f9bfcbdf6d23632"}, + {file = "lxml-5.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50127c186f191b8917ea2fb8b206fbebe87fd414a6084d15568c27d0a21d60db"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74e4f025ef3db1c6da4460dd27c118d8cd136d0391da4e387a15e48e5c975147"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:981a06a3076997adf7c743dcd0d7a0415582661e2517c7d961493572e909aa1d"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aef5474d913d3b05e613906ba4090433c515e13ea49c837aca18bde190853dff"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e275ea572389e41e8b039ac076a46cb87ee6b8542df3fff26f5baab43713bca"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5b65529bb2f21ac7861a0e94fdbf5dc0daab41497d18223b46ee8515e5ad297"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bcc98f911f10278d1daf14b87d65325851a1d29153caaf146877ec37031d5f36"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:b47633251727c8fe279f34025844b3b3a3e40cd1b198356d003aa146258d13a2"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:fbc9d316552f9ef7bba39f4edfad4a734d3d6f93341232a9dddadec4f15d425f"}, + {file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:13e69be35391ce72712184f69000cda04fc89689429179bc4c0ae5f0b7a8c21b"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3b6a30a9ab040b3f545b697cb3adbf3696c05a3a68aad172e3fd7ca73ab3c835"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:a233bb68625a85126ac9f1fc66d24337d6e8a0f9207b688eec2e7c880f012ec0"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:dfa7c241073d8f2b8e8dbc7803c434f57dbb83ae2a3d7892dd068d99e96efe2c"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1a7aca7964ac4bb07680d5c9d63b9d7028cace3e2d43175cb50bba8c5ad33316"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae4073a60ab98529ab8a72ebf429f2a8cc612619a8c04e08bed27450d52103c0"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ffb2be176fed4457e445fe540617f0252a72a8bc56208fd65a690fdb1f57660b"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e290d79a4107d7d794634ce3e985b9ae4f920380a813717adf61804904dc4393"}, + {file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:96e85aa09274955bb6bd483eaf5b12abadade01010478154b0ec70284c1b1526"}, + {file = "lxml-5.2.2-cp310-cp310-win32.whl", hash = "sha256:f956196ef61369f1685d14dad80611488d8dc1ef00be57c0c5a03064005b0f30"}, + {file = "lxml-5.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:875a3f90d7eb5c5d77e529080d95140eacb3c6d13ad5b616ee8095447b1d22e7"}, + {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:45f9494613160d0405682f9eee781c7e6d1bf45f819654eb249f8f46a2c22545"}, + {file = "lxml-5.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b0b3f2df149efb242cee2ffdeb6674b7f30d23c9a7af26595099afaf46ef4e88"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d28cb356f119a437cc58a13f8135ab8a4c8ece18159eb9194b0d269ec4e28083"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:657a972f46bbefdbba2d4f14413c0d079f9ae243bd68193cb5061b9732fa54c1"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b9ea10063efb77a965a8d5f4182806fbf59ed068b3c3fd6f30d2ac7bee734"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:07542787f86112d46d07d4f3c4e7c760282011b354d012dc4141cc12a68cef5f"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:303f540ad2dddd35b92415b74b900c749ec2010e703ab3bfd6660979d01fd4ed"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2eb2227ce1ff998faf0cd7fe85bbf086aa41dfc5af3b1d80867ecfe75fb68df3"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:1d8a701774dfc42a2f0b8ccdfe7dbc140500d1049e0632a611985d943fcf12df"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:56793b7a1a091a7c286b5f4aa1fe4ae5d1446fe742d00cdf2ffb1077865db10d"}, + {file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eb00b549b13bd6d884c863554566095bf6fa9c3cecb2e7b399c4bc7904cb33b5"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a2569a1f15ae6c8c64108a2cd2b4a858fc1e13d25846be0666fc144715e32ab"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:8cf85a6e40ff1f37fe0f25719aadf443686b1ac7652593dc53c7ef9b8492b115"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:d237ba6664b8e60fd90b8549a149a74fcc675272e0e95539a00522e4ca688b04"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0b3f5016e00ae7630a4b83d0868fca1e3d494c78a75b1c7252606a3a1c5fc2ad"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23441e2b5339bc54dc949e9e675fa35efe858108404ef9aa92f0456929ef6fe8"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2fb0ba3e8566548d6c8e7dd82a8229ff47bd8fb8c2da237607ac8e5a1b8312e5"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:79d1fb9252e7e2cfe4de6e9a6610c7cbb99b9708e2c3e29057f487de5a9eaefa"}, + {file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6dcc3d17eac1df7859ae01202e9bb11ffa8c98949dcbeb1069c8b9a75917e01b"}, + {file = "lxml-5.2.2-cp311-cp311-win32.whl", hash = "sha256:4c30a2f83677876465f44c018830f608fa3c6a8a466eb223535035fbc16f3438"}, + {file = "lxml-5.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:49095a38eb333aaf44c06052fd2ec3b8f23e19747ca7ec6f6c954ffea6dbf7be"}, + {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7429e7faa1a60cad26ae4227f4dd0459efde239e494c7312624ce228e04f6391"}, + {file = "lxml-5.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:50ccb5d355961c0f12f6cf24b7187dbabd5433f29e15147a67995474f27d1776"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc911208b18842a3a57266d8e51fc3cfaccee90a5351b92079beed912a7914c2"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33ce9e786753743159799fdf8e92a5da351158c4bfb6f2db0bf31e7892a1feb5"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec87c44f619380878bd49ca109669c9f221d9ae6883a5bcb3616785fa8f94c97"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08ea0f606808354eb8f2dfaac095963cb25d9d28e27edcc375d7b30ab01abbf6"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75a9632f1d4f698b2e6e2e1ada40e71f369b15d69baddb8968dcc8e683839b18"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74da9f97daec6928567b48c90ea2c82a106b2d500f397eeb8941e47d30b1ca85"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:0969e92af09c5687d769731e3f39ed62427cc72176cebb54b7a9d52cc4fa3b73"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:9164361769b6ca7769079f4d426a41df6164879f7f3568be9086e15baca61466"}, + {file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d26a618ae1766279f2660aca0081b2220aca6bd1aa06b2cf73f07383faf48927"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab67ed772c584b7ef2379797bf14b82df9aa5f7438c5b9a09624dd834c1c1aaf"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:3d1e35572a56941b32c239774d7e9ad724074d37f90c7a7d499ab98761bd80cf"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:8268cbcd48c5375f46e000adb1390572c98879eb4f77910c6053d25cc3ac2c67"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e282aedd63c639c07c3857097fc0e236f984ceb4089a8b284da1c526491e3f3d"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfdc2bfe69e9adf0df4915949c22a25b39d175d599bf98e7ddf620a13678585"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4aefd911793b5d2d7a921233a54c90329bf3d4a6817dc465f12ffdfe4fc7b8fe"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:8b8df03a9e995b6211dafa63b32f9d405881518ff1ddd775db4e7b98fb545e1c"}, + {file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f11ae142f3a322d44513de1018b50f474f8f736bc3cd91d969f464b5bfef8836"}, + {file = "lxml-5.2.2-cp312-cp312-win32.whl", hash = "sha256:16a8326e51fcdffc886294c1e70b11ddccec836516a343f9ed0f82aac043c24a"}, + {file = "lxml-5.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:bbc4b80af581e18568ff07f6395c02114d05f4865c2812a1f02f2eaecf0bfd48"}, + {file = "lxml-5.2.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e3d9d13603410b72787579769469af730c38f2f25505573a5888a94b62b920f8"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38b67afb0a06b8575948641c1d6d68e41b83a3abeae2ca9eed2ac59892b36706"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c689d0d5381f56de7bd6966a4541bff6e08bf8d3871bbd89a0c6ab18aa699573"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:cf2a978c795b54c539f47964ec05e35c05bd045db5ca1e8366988c7f2fe6b3ce"}, + {file = "lxml-5.2.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:739e36ef7412b2bd940f75b278749106e6d025e40027c0b94a17ef7968d55d56"}, + {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d8bbcd21769594dbba9c37d3c819e2d5847656ca99c747ddb31ac1701d0c0ed9"}, + {file = "lxml-5.2.2-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:2304d3c93f2258ccf2cf7a6ba8c761d76ef84948d87bf9664e14d203da2cd264"}, + {file = "lxml-5.2.2-cp36-cp36m-win32.whl", hash = "sha256:02437fb7308386867c8b7b0e5bc4cd4b04548b1c5d089ffb8e7b31009b961dc3"}, + {file = "lxml-5.2.2-cp36-cp36m-win_amd64.whl", hash = "sha256:edcfa83e03370032a489430215c1e7783128808fd3e2e0a3225deee278585196"}, + {file = "lxml-5.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:28bf95177400066596cdbcfc933312493799382879da504633d16cf60bba735b"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a745cc98d504d5bd2c19b10c79c61c7c3df9222629f1b6210c0368177589fb8"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b590b39ef90c6b22ec0be925b211298e810b4856909c8ca60d27ffbca6c12e6"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b336b0416828022bfd5a2e3083e7f5ba54b96242159f83c7e3eebaec752f1716"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:c2faf60c583af0d135e853c86ac2735ce178f0e338a3c7f9ae8f622fd2eb788c"}, + {file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:4bc6cb140a7a0ad1f7bc37e018d0ed690b7b6520ade518285dc3171f7a117905"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7ff762670cada8e05b32bf1e4dc50b140790909caa8303cfddc4d702b71ea184"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:57f0a0bbc9868e10ebe874e9f129d2917750adf008fe7b9c1598c0fbbfdde6a6"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:a6d2092797b388342c1bc932077ad232f914351932353e2e8706851c870bca1f"}, + {file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:60499fe961b21264e17a471ec296dcbf4365fbea611bf9e303ab69db7159ce61"}, + {file = "lxml-5.2.2-cp37-cp37m-win32.whl", hash = "sha256:d9b342c76003c6b9336a80efcc766748a333573abf9350f4094ee46b006ec18f"}, + {file = "lxml-5.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b16db2770517b8799c79aa80f4053cd6f8b716f21f8aca962725a9565ce3ee40"}, + {file = "lxml-5.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7ed07b3062b055d7a7f9d6557a251cc655eed0b3152b76de619516621c56f5d3"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f60fdd125d85bf9c279ffb8e94c78c51b3b6a37711464e1f5f31078b45002421"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a7e24cb69ee5f32e003f50e016d5fde438010c1022c96738b04fc2423e61706"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23cfafd56887eaed93d07bc4547abd5e09d837a002b791e9767765492a75883f"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:19b4e485cd07b7d83e3fe3b72132e7df70bfac22b14fe4bf7a23822c3a35bff5"}, + {file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7ce7ad8abebe737ad6143d9d3bf94b88b93365ea30a5b81f6877ec9c0dee0a48"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e49b052b768bb74f58c7dda4e0bdf7b79d43a9204ca584ffe1fb48a6f3c84c66"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d14a0d029a4e176795cef99c056d58067c06195e0c7e2dbb293bf95c08f772a3"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:be49ad33819d7dcc28a309b86d4ed98e1a65f3075c6acd3cd4fe32103235222b"}, + {file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a6d17e0370d2516d5bb9062c7b4cb731cff921fc875644c3d751ad857ba9c5b1"}, + {file = "lxml-5.2.2-cp38-cp38-win32.whl", hash = "sha256:5b8c041b6265e08eac8a724b74b655404070b636a8dd6d7a13c3adc07882ef30"}, + {file = "lxml-5.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:f61efaf4bed1cc0860e567d2ecb2363974d414f7f1f124b1df368bbf183453a6"}, + {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fb91819461b1b56d06fa4bcf86617fac795f6a99d12239fb0c68dbeba41a0a30"}, + {file = "lxml-5.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d4ed0c7cbecde7194cd3228c044e86bf73e30a23505af852857c09c24e77ec5d"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54401c77a63cc7d6dc4b4e173bb484f28a5607f3df71484709fe037c92d4f0ed"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:625e3ef310e7fa3a761d48ca7ea1f9d8718a32b1542e727d584d82f4453d5eeb"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:519895c99c815a1a24a926d5b60627ce5ea48e9f639a5cd328bda0515ea0f10c"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c7079d5eb1c1315a858bbf180000757db8ad904a89476653232db835c3114001"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:343ab62e9ca78094f2306aefed67dcfad61c4683f87eee48ff2fd74902447726"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:cd9e78285da6c9ba2d5c769628f43ef66d96ac3085e59b10ad4f3707980710d3"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:546cf886f6242dff9ec206331209db9c8e1643ae642dea5fdbecae2453cb50fd"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:02f6a8eb6512fdc2fd4ca10a49c341c4e109aa6e9448cc4859af5b949622715a"}, + {file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:339ee4a4704bc724757cd5dd9dc8cf4d00980f5d3e6e06d5847c1b594ace68ab"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0a028b61a2e357ace98b1615fc03f76eb517cc028993964fe08ad514b1e8892d"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f90e552ecbad426eab352e7b2933091f2be77115bb16f09f78404861c8322981"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:d83e2d94b69bf31ead2fa45f0acdef0757fa0458a129734f59f67f3d2eb7ef32"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a02d3c48f9bb1e10c7788d92c0c7db6f2002d024ab6e74d6f45ae33e3d0288a3"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6d68ce8e7b2075390e8ac1e1d3a99e8b6372c694bbe612632606d1d546794207"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:453d037e09a5176d92ec0fd282e934ed26d806331a8b70ab431a81e2fbabf56d"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:3b019d4ee84b683342af793b56bb35034bd749e4cbdd3d33f7d1107790f8c472"}, + {file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cb3942960f0beb9f46e2a71a3aca220d1ca32feb5a398656be934320804c0df9"}, + {file = "lxml-5.2.2-cp39-cp39-win32.whl", hash = "sha256:ac6540c9fff6e3813d29d0403ee7a81897f1d8ecc09a8ff84d2eea70ede1cdbf"}, + {file = "lxml-5.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:610b5c77428a50269f38a534057444c249976433f40f53e3b47e68349cca1425"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b537bd04d7ccd7c6350cdaaaad911f6312cbd61e6e6045542f781c7f8b2e99d2"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4820c02195d6dfb7b8508ff276752f6b2ff8b64ae5d13ebe02e7667e035000b9"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a09f6184f17a80897172863a655467da2b11151ec98ba8d7af89f17bf63dae"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:76acba4c66c47d27c8365e7c10b3d8016a7da83d3191d053a58382311a8bf4e1"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b128092c927eaf485928cec0c28f6b8bead277e28acf56800e972aa2c2abd7a2"}, + {file = "lxml-5.2.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ae791f6bd43305aade8c0e22f816b34f3b72b6c820477aab4d18473a37e8090b"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a2f6a1bc2460e643785a2cde17293bd7a8f990884b822f7bca47bee0a82fc66b"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e8d351ff44c1638cb6e980623d517abd9f580d2e53bfcd18d8941c052a5a009"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bec4bd9133420c5c52d562469c754f27c5c9e36ee06abc169612c959bd7dbb07"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:55ce6b6d803890bd3cc89975fca9de1dff39729b43b73cb15ddd933b8bc20484"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:8ab6a358d1286498d80fe67bd3d69fcbc7d1359b45b41e74c4a26964ca99c3f8"}, + {file = "lxml-5.2.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:06668e39e1f3c065349c51ac27ae430719d7806c026fec462e5693b08b95696b"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9cd5323344d8ebb9fb5e96da5de5ad4ebab993bbf51674259dbe9d7a18049525"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89feb82ca055af0fe797a2323ec9043b26bc371365847dbe83c7fd2e2f181c34"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e481bba1e11ba585fb06db666bfc23dbe181dbafc7b25776156120bf12e0d5a6"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d6c6ea6a11ca0ff9cd0390b885984ed31157c168565702959c25e2191674a14"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3d98de734abee23e61f6b8c2e08a88453ada7d6486dc7cdc82922a03968928db"}, + {file = "lxml-5.2.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:69ab77a1373f1e7563e0fb5a29a8440367dec051da6c7405333699d07444f511"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:34e17913c431f5ae01d8658dbf792fdc457073dcdfbb31dc0cc6ab256e664a8d"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05f8757b03208c3f50097761be2dea0aba02e94f0dc7023ed73a7bb14ff11eb0"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a520b4f9974b0a0a6ed73c2154de57cdfd0c8800f4f15ab2b73238ffed0b36e"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5e097646944b66207023bc3c634827de858aebc226d5d4d6d16f0b77566ea182"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b5e4ef22ff25bfd4ede5f8fb30f7b24446345f3e79d9b7455aef2836437bc38a"}, + {file = "lxml-5.2.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ff69a9a0b4b17d78170c73abe2ab12084bdf1691550c5629ad1fe7849433f324"}, + {file = "lxml-5.2.2.tar.gz", hash = "sha256:bb2dc4898180bea79863d5487e5f9c7c34297414bad54bcd0f0852aee9cfdb87"}, ] [package.extras] cssselect = ["cssselect (>=0.7)"] +html-clean = ["lxml-html-clean"] html5 = ["html5lib"] htmlsoup = ["BeautifulSoup4"] -source = ["Cython (>=0.29.35)"] +source = ["Cython (>=3.0.10)"] [[package]] name = "mako" -version = "1.2.4" +version = "1.3.5" description = "A super-fast templating language that borrows the best ideas from the existing templating languages." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "Mako-1.2.4-py3-none-any.whl", hash = "sha256:c97c79c018b9165ac9922ae4f32da095ffd3c4e6872b45eded42926deea46818"}, - {file = "Mako-1.2.4.tar.gz", hash = "sha256:d60a3903dc3bb01a18ad6a89cdbe2e4eadc69c0bc8ef1e3773ba53d44c3f7a34"}, + {file = "Mako-1.3.5-py3-none-any.whl", hash = "sha256:260f1dbc3a519453a9c856dedfe4beb4e50bd5a26d96386cb6c80856556bb91a"}, + {file = "Mako-1.3.5.tar.gz", hash = "sha256:48dbc20568c1d276a2698b36d968fa76161bf127194907ea6fc594fa81f943bc"}, ] [package.dependencies] @@ -1695,7 +1539,6 @@ testing = ["pytest"] name = "mando" version = "0.7.1" description = "Create Python CLI apps with little to no effort at all!" -category = "dev" optional = false python-versions = "*" files = [ @@ -1711,69 +1554,129 @@ restructuredtext = ["rst2ansi"] [[package]] name = "markupsafe" -version = "2.1.3" +version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win32.whl", hash = "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431"}, - {file = "MarkupSafe-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, - {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win32.whl", hash = "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0"}, - {file = "MarkupSafe-2.1.3-cp37-cp37m-win_amd64.whl", hash = "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win32.whl", hash = "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5"}, - {file = "MarkupSafe-2.1.3-cp38-cp38-win_amd64.whl", hash = "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win32.whl", hash = "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"}, - {file = "MarkupSafe-2.1.3-cp39-cp39-win_amd64.whl", hash = "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba"}, - {file = "MarkupSafe-2.1.3.tar.gz", hash = "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, +] + +[[package]] +name = "msgspec" +version = "0.18.6" +description = "A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML." +optional = false +python-versions = ">=3.8" +files = [ + {file = "msgspec-0.18.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:77f30b0234eceeff0f651119b9821ce80949b4d667ad38f3bfed0d0ebf9d6d8f"}, + {file = "msgspec-0.18.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1a76b60e501b3932782a9da039bd1cd552b7d8dec54ce38332b87136c64852dd"}, + {file = "msgspec-0.18.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06acbd6edf175bee0e36295d6b0302c6de3aaf61246b46f9549ca0041a9d7177"}, + {file = "msgspec-0.18.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40a4df891676d9c28a67c2cc39947c33de516335680d1316a89e8f7218660410"}, + {file = "msgspec-0.18.6-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a6896f4cd5b4b7d688018805520769a8446df911eb93b421c6c68155cdf9dd5a"}, + {file = "msgspec-0.18.6-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3ac4dd63fd5309dd42a8c8c36c1563531069152be7819518be0a9d03be9788e4"}, + {file = "msgspec-0.18.6-cp310-cp310-win_amd64.whl", hash = "sha256:fda4c357145cf0b760000c4ad597e19b53adf01382b711f281720a10a0fe72b7"}, + {file = "msgspec-0.18.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e77e56ffe2701e83a96e35770c6adb655ffc074d530018d1b584a8e635b4f36f"}, + {file = "msgspec-0.18.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d5351afb216b743df4b6b147691523697ff3a2fc5f3d54f771e91219f5c23aaa"}, + {file = "msgspec-0.18.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3232fabacef86fe8323cecbe99abbc5c02f7698e3f5f2e248e3480b66a3596b"}, + {file = "msgspec-0.18.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3b524df6ea9998bbc99ea6ee4d0276a101bcc1aa8d14887bb823914d9f60d07"}, + {file = "msgspec-0.18.6-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:37f67c1d81272131895bb20d388dd8d341390acd0e192a55ab02d4d6468b434c"}, + {file = "msgspec-0.18.6-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d0feb7a03d971c1c0353de1a8fe30bb6579c2dc5ccf29b5f7c7ab01172010492"}, + {file = "msgspec-0.18.6-cp311-cp311-win_amd64.whl", hash = "sha256:41cf758d3f40428c235c0f27bc6f322d43063bc32da7b9643e3f805c21ed57b4"}, + {file = "msgspec-0.18.6-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d86f5071fe33e19500920333c11e2267a31942d18fed4d9de5bc2fbab267d28c"}, + {file = "msgspec-0.18.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce13981bfa06f5eb126a3a5a38b1976bddb49a36e4f46d8e6edecf33ccf11df1"}, + {file = "msgspec-0.18.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e97dec6932ad5e3ee1e3c14718638ba333befc45e0661caa57033cd4cc489466"}, + {file = "msgspec-0.18.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad237100393f637b297926cae1868b0d500f764ccd2f0623a380e2bcfb2809ca"}, + {file = "msgspec-0.18.6-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db1d8626748fa5d29bbd15da58b2d73af25b10aa98abf85aab8028119188ed57"}, + {file = "msgspec-0.18.6-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:d70cb3d00d9f4de14d0b31d38dfe60c88ae16f3182988246a9861259c6722af6"}, + {file = "msgspec-0.18.6-cp312-cp312-win_amd64.whl", hash = "sha256:1003c20bfe9c6114cc16ea5db9c5466e49fae3d7f5e2e59cb70693190ad34da0"}, + {file = "msgspec-0.18.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f7d9faed6dfff654a9ca7d9b0068456517f63dbc3aa704a527f493b9200b210a"}, + {file = "msgspec-0.18.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9da21f804c1a1471f26d32b5d9bc0480450ea77fbb8d9db431463ab64aaac2cf"}, + {file = "msgspec-0.18.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46eb2f6b22b0e61c137e65795b97dc515860bf6ec761d8fb65fdb62aa094ba61"}, + {file = "msgspec-0.18.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8355b55c80ac3e04885d72db515817d9fbb0def3bab936bba104e99ad22cf46"}, + {file = "msgspec-0.18.6-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9080eb12b8f59e177bd1eb5c21e24dd2ba2fa88a1dbc9a98e05ad7779b54c681"}, + {file = "msgspec-0.18.6-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cc001cf39becf8d2dcd3f413a4797c55009b3a3cdbf78a8bf5a7ca8fdb76032c"}, + {file = "msgspec-0.18.6-cp38-cp38-win_amd64.whl", hash = "sha256:fac5834e14ac4da1fca373753e0c4ec9c8069d1fe5f534fa5208453b6065d5be"}, + {file = "msgspec-0.18.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:974d3520fcc6b824a6dedbdf2b411df31a73e6e7414301abac62e6b8d03791b4"}, + {file = "msgspec-0.18.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fd62e5818731a66aaa8e9b0a1e5543dc979a46278da01e85c3c9a1a4f047ef7e"}, + {file = "msgspec-0.18.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7481355a1adcf1f08dedd9311193c674ffb8bf7b79314b4314752b89a2cf7f1c"}, + {file = "msgspec-0.18.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6aa85198f8f154cf35d6f979998f6dadd3dc46a8a8c714632f53f5d65b315c07"}, + {file = "msgspec-0.18.6-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e24539b25c85c8f0597274f11061c102ad6b0c56af053373ba4629772b407be"}, + {file = "msgspec-0.18.6-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c61ee4d3be03ea9cd089f7c8e36158786cd06e51fbb62529276452bbf2d52ece"}, + {file = "msgspec-0.18.6-cp39-cp39-win_amd64.whl", hash = "sha256:b5c390b0b0b7da879520d4ae26044d74aeee5144f83087eb7842ba59c02bc090"}, + {file = "msgspec-0.18.6.tar.gz", hash = "sha256:a59fc3b4fcdb972d09138cb516dbde600c99d07c38fd9372a6ef500d2d031b4e"}, ] +[package.extras] +dev = ["attrs", "coverage", "furo", "gcovr", "ipython", "msgpack", "mypy", "pre-commit", "pyright", "pytest", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "tomli", "tomli-w"] +doc = ["furo", "ipython", "sphinx", "sphinx-copybutton", "sphinx-design"] +test = ["attrs", "msgpack", "mypy", "pyright", "pytest", "pyyaml", "tomli", "tomli-w"] +toml = ["tomli", "tomli-w"] +yaml = ["pyyaml"] + [[package]] name = "msrest" version = "0.7.1" description = "AutoRest swagger generator Python client runtime." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1793,60 +1696,55 @@ async = ["aiodns", "aiohttp (>=3.0)"] [[package]] name = "mypy" -version = "0.991" +version = "1.11.0" description = "Optional static typing for Python" -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mypy-0.991-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7d17e0a9707d0772f4a7b878f04b4fd11f6f5bcb9b3813975a9b13c9332153ab"}, - {file = "mypy-0.991-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0714258640194d75677e86c786e80ccf294972cc76885d3ebbb560f11db0003d"}, - {file = "mypy-0.991-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0c8f3be99e8a8bd403caa8c03be619544bc2c77a7093685dcf308c6b109426c6"}, - {file = "mypy-0.991-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc9ec663ed6c8f15f4ae9d3c04c989b744436c16d26580eaa760ae9dd5d662eb"}, - {file = "mypy-0.991-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4307270436fd7694b41f913eb09210faff27ea4979ecbcd849e57d2da2f65305"}, - {file = "mypy-0.991-cp310-cp310-win_amd64.whl", hash = "sha256:901c2c269c616e6cb0998b33d4adbb4a6af0ac4ce5cd078afd7bc95830e62c1c"}, - {file = "mypy-0.991-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d13674f3fb73805ba0c45eb6c0c3053d218aa1f7abead6e446d474529aafc372"}, - {file = "mypy-0.991-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1c8cd4fb70e8584ca1ed5805cbc7c017a3d1a29fb450621089ffed3e99d1857f"}, - {file = "mypy-0.991-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:209ee89fbb0deed518605edddd234af80506aec932ad28d73c08f1400ef80a33"}, - {file = "mypy-0.991-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37bd02ebf9d10e05b00d71302d2c2e6ca333e6c2a8584a98c00e038db8121f05"}, - {file = "mypy-0.991-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:26efb2fcc6b67e4d5a55561f39176821d2adf88f2745ddc72751b7890f3194ad"}, - {file = "mypy-0.991-cp311-cp311-win_amd64.whl", hash = "sha256:3a700330b567114b673cf8ee7388e949f843b356a73b5ab22dd7cff4742a5297"}, - {file = "mypy-0.991-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:1f7d1a520373e2272b10796c3ff721ea1a0712288cafaa95931e66aa15798813"}, - {file = "mypy-0.991-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:641411733b127c3e0dab94c45af15fea99e4468f99ac88b39efb1ad677da5711"}, - {file = "mypy-0.991-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:3d80e36b7d7a9259b740be6d8d906221789b0d836201af4234093cae89ced0cd"}, - {file = "mypy-0.991-cp37-cp37m-win_amd64.whl", hash = "sha256:e62ebaad93be3ad1a828a11e90f0e76f15449371ffeecca4a0a0b9adc99abcef"}, - {file = "mypy-0.991-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b86ce2c1866a748c0f6faca5232059f881cda6dda2a893b9a8373353cfe3715a"}, - {file = "mypy-0.991-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ac6e503823143464538efda0e8e356d871557ef60ccd38f8824a4257acc18d93"}, - {file = "mypy-0.991-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0cca5adf694af539aeaa6ac633a7afe9bbd760df9d31be55ab780b77ab5ae8bf"}, - {file = "mypy-0.991-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a12c56bf73cdab116df96e4ff39610b92a348cc99a1307e1da3c3768bbb5b135"}, - {file = "mypy-0.991-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:652b651d42f155033a1967739788c436491b577b6a44e4c39fb340d0ee7f0d70"}, - {file = "mypy-0.991-cp38-cp38-win_amd64.whl", hash = "sha256:4175593dc25d9da12f7de8de873a33f9b2b8bdb4e827a7cae952e5b1a342e243"}, - {file = "mypy-0.991-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:98e781cd35c0acf33eb0295e8b9c55cdbef64fcb35f6d3aa2186f289bed6e80d"}, - {file = "mypy-0.991-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6d7464bac72a85cb3491c7e92b5b62f3dcccb8af26826257760a552a5e244aa5"}, - {file = "mypy-0.991-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c9166b3f81a10cdf9b49f2d594b21b31adadb3d5e9db9b834866c3258b695be3"}, - {file = "mypy-0.991-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8472f736a5bfb159a5e36740847808f6f5b659960115ff29c7cecec1741c648"}, - {file = "mypy-0.991-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e80e758243b97b618cdf22004beb09e8a2de1af481382e4d84bc52152d1c476"}, - {file = "mypy-0.991-cp39-cp39-win_amd64.whl", hash = "sha256:74e259b5c19f70d35fcc1ad3d56499065c601dfe94ff67ae48b85596b9ec1461"}, - {file = "mypy-0.991-py3-none-any.whl", hash = "sha256:de32edc9b0a7e67c2775e574cb061a537660e51210fbf6006b0b36ea695ae9bb"}, - {file = "mypy-0.991.tar.gz", hash = "sha256:3c0165ba8f354a6d9881809ef29f1a9318a236a6d81c690094c5df32107bde06"}, -] - -[package.dependencies] -mypy-extensions = ">=0.4.3" + {file = "mypy-1.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3824187c99b893f90c845bab405a585d1ced4ff55421fdf5c84cb7710995229"}, + {file = "mypy-1.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:96f8dbc2c85046c81bcddc246232d500ad729cb720da4e20fce3b542cab91287"}, + {file = "mypy-1.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a5d8d8dd8613a3e2be3eae829ee891b6b2de6302f24766ff06cb2875f5be9c6"}, + {file = "mypy-1.11.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72596a79bbfb195fd41405cffa18210af3811beb91ff946dbcb7368240eed6be"}, + {file = "mypy-1.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:35ce88b8ed3a759634cb4eb646d002c4cef0a38f20565ee82b5023558eb90c00"}, + {file = "mypy-1.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:98790025861cb2c3db8c2f5ad10fc8c336ed2a55f4daf1b8b3f877826b6ff2eb"}, + {file = "mypy-1.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:25bcfa75b9b5a5f8d67147a54ea97ed63a653995a82798221cca2a315c0238c1"}, + {file = "mypy-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bea2a0e71c2a375c9fa0ede3d98324214d67b3cbbfcbd55ac8f750f85a414e3"}, + {file = "mypy-1.11.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d2b3d36baac48e40e3064d2901f2fbd2a2d6880ec6ce6358825c85031d7c0d4d"}, + {file = "mypy-1.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:d8e2e43977f0e09f149ea69fd0556623919f816764e26d74da0c8a7b48f3e18a"}, + {file = "mypy-1.11.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1d44c1e44a8be986b54b09f15f2c1a66368eb43861b4e82573026e04c48a9e20"}, + {file = "mypy-1.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cea3d0fb69637944dd321f41bc896e11d0fb0b0aa531d887a6da70f6e7473aba"}, + {file = "mypy-1.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a83ec98ae12d51c252be61521aa5731f5512231d0b738b4cb2498344f0b840cd"}, + {file = "mypy-1.11.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7b73a856522417beb78e0fb6d33ef89474e7a622db2653bc1285af36e2e3e3d"}, + {file = "mypy-1.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:f2268d9fcd9686b61ab64f077be7ffbc6fbcdfb4103e5dd0cc5eaab53a8886c2"}, + {file = "mypy-1.11.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:940bfff7283c267ae6522ef926a7887305945f716a7704d3344d6d07f02df850"}, + {file = "mypy-1.11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:14f9294528b5f5cf96c721f231c9f5b2733164e02c1c018ed1a0eff8a18005ac"}, + {file = "mypy-1.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7b54c27783991399046837df5c7c9d325d921394757d09dbcbf96aee4649fe9"}, + {file = "mypy-1.11.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:65f190a6349dec29c8d1a1cd4aa71284177aee5949e0502e6379b42873eddbe7"}, + {file = "mypy-1.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:dbe286303241fea8c2ea5466f6e0e6a046a135a7e7609167b07fd4e7baf151bf"}, + {file = "mypy-1.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:104e9c1620c2675420abd1f6c44bab7dd33cc85aea751c985006e83dcd001095"}, + {file = "mypy-1.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f006e955718ecd8d159cee9932b64fba8f86ee6f7728ca3ac66c3a54b0062abe"}, + {file = "mypy-1.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:becc9111ca572b04e7e77131bc708480cc88a911adf3d0239f974c034b78085c"}, + {file = "mypy-1.11.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6801319fe76c3f3a3833f2b5af7bd2c17bb93c00026a2a1b924e6762f5b19e13"}, + {file = "mypy-1.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:c1a184c64521dc549324ec6ef7cbaa6b351912be9cb5edb803c2808a0d7e85ac"}, + {file = "mypy-1.11.0-py3-none-any.whl", hash = "sha256:56913ec8c7638b0091ef4da6fcc9136896914a9d60d54670a75880c3e5b99ace"}, + {file = "mypy-1.11.0.tar.gz", hash = "sha256:93743608c7348772fdc717af4aeee1997293a1ad04bc0ea6efa15bf65385c538"}, +] + +[package.dependencies] +mypy-extensions = ">=1.0.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = ">=3.10" +typing-extensions = ">=4.6.0" [package.extras] dmypy = ["psutil (>=4.0)"] install-types = ["pip"] -python2 = ["typed-ast (>=1.4.0,<2)"] +mypyc = ["setuptools (>=50)"] reports = ["lxml"] [[package]] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1856,24 +1754,19 @@ files = [ [[package]] name = "nodeenv" -version = "1.8.0" +version = "1.9.1" description = "Node.js virtual environment builder" -category = "dev" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ - {file = "nodeenv-1.8.0-py2.py3-none-any.whl", hash = "sha256:df865724bb3c3adc86b3876fa209771517b0cfe596beff01a92700e0e8be4cec"}, - {file = "nodeenv-1.8.0.tar.gz", hash = "sha256:d51e0c37e64fbf47d017feac3145cdbb58836d7eee8c6f6d3b6880c5456227d2"}, + {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"}, + {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"}, ] -[package.dependencies] -setuptools = "*" - [[package]] name = "oauthlib" version = "3.2.2" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1888,26 +1781,24 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] [[package]] name = "packaging" -version = "23.1" +version = "24.1" description = "Core utilities for Python packages" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, - {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, ] [[package]] name = "paramiko" -version = "3.3.1" +version = "3.4.0" description = "SSH2 protocol library" -category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "paramiko-3.3.1-py3-none-any.whl", hash = "sha256:b7bc5340a43de4287bbe22fe6de728aa2c22468b2a849615498dd944c2f275eb"}, - {file = "paramiko-3.3.1.tar.gz", hash = "sha256:6a3777a961ac86dbef375c5f5b8d50014a1a96d0fd7f054a43bc880134b0ff77"}, + {file = "paramiko-3.4.0-py3-none-any.whl", hash = "sha256:43f0b51115a896f9c00f59618023484cb3a14b98bbceab43394a39c6739b7ee7"}, + {file = "paramiko-3.4.0.tar.gz", hash = "sha256:aac08f26a31dc4dffd92821527d1682d99d52f9ef6851968114a8728f3c274d3"}, ] [package.dependencies] @@ -1922,21 +1813,19 @@ invoke = ["invoke (>=2.0)"] [[package]] name = "pathspec" -version = "0.11.2" +version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, - {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] [[package]] name = "pathvalidate" version = "3.2.0" description = "pathvalidate is a Python library to sanitize/validate a string such as filenames/file-paths/etc." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1950,30 +1839,29 @@ test = ["Faker (>=1.0.8)", "allpairspy (>=2)", "click (>=6.2)", "pytest (>=6.0.1 [[package]] name = "platformdirs" -version = "3.10.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "main" +version = "4.2.2" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, - {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, + {file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"}, + {file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"}, ] [package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] +docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"] +type = ["mypy (>=1.8)"] [[package]] name = "pluggy" -version = "1.3.0" +version = "1.5.0" description = "plugin and hook calling mechanisms for python" -category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "pluggy-1.3.0-py3-none-any.whl", hash = "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"}, - {file = "pluggy-1.3.0.tar.gz", hash = "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] [package.extras] @@ -1982,14 +1870,13 @@ testing = ["pytest", "pytest-benchmark"] [[package]] name = "pre-commit" -version = "3.4.0" +version = "3.7.1" description = "A framework for managing and maintaining multi-language pre-commit hooks." -category = "dev" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "pre_commit-3.4.0-py2.py3-none-any.whl", hash = "sha256:96d529a951f8b677f730a7212442027e8ba53f9b04d217c4c67dc56c393ad945"}, - {file = "pre_commit-3.4.0.tar.gz", hash = "sha256:6bbd5129a64cad4c0dfaeeb12cd8f7ea7e15b77028d985341478c8af3c759522"}, + {file = "pre_commit-3.7.1-py2.py3-none-any.whl", hash = "sha256:fae36fd1d7ad7d6a5a1c0b0d5adb2ed1a3bda5a21bf6c3e5372073d7a11cd4c5"}, + {file = "pre_commit-3.7.1.tar.gz", hash = "sha256:8ca3ad567bc78a4972a3f1a477e94a79d4597e8140a6e0b651c5e33899c3654a"}, ] [package.dependencies] @@ -2001,26 +1888,28 @@ virtualenv = ">=20.10.0" [[package]] name = "psutil" -version = "5.9.5" +version = "6.0.0" description = "Cross-platform lib for process and system monitoring in Python." -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "psutil-5.9.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:be8929ce4313f9f8146caad4272f6abb8bf99fc6cf59344a3167ecd74f4f203f"}, - {file = "psutil-5.9.5-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ab8ed1a1d77c95453db1ae00a3f9c50227ebd955437bcf2a574ba8adbf6a74d5"}, - {file = "psutil-5.9.5-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:4aef137f3345082a3d3232187aeb4ac4ef959ba3d7c10c33dd73763fbc063da4"}, - {file = "psutil-5.9.5-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:ea8518d152174e1249c4f2a1c89e3e6065941df2fa13a1ab45327716a23c2b48"}, - {file = "psutil-5.9.5-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:acf2aef9391710afded549ff602b5887d7a2349831ae4c26be7c807c0a39fac4"}, - {file = "psutil-5.9.5-cp27-none-win32.whl", hash = "sha256:5b9b8cb93f507e8dbaf22af6a2fd0ccbe8244bf30b1baad6b3954e935157ae3f"}, - {file = "psutil-5.9.5-cp27-none-win_amd64.whl", hash = "sha256:8c5f7c5a052d1d567db4ddd231a9d27a74e8e4a9c3f44b1032762bd7b9fdcd42"}, - {file = "psutil-5.9.5-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3c6f686f4225553615612f6d9bc21f1c0e305f75d7d8454f9b46e901778e7217"}, - {file = "psutil-5.9.5-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7a7dd9997128a0d928ed4fb2c2d57e5102bb6089027939f3b722f3a210f9a8da"}, - {file = "psutil-5.9.5-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89518112647f1276b03ca97b65cc7f64ca587b1eb0278383017c2a0dcc26cbe4"}, - {file = "psutil-5.9.5-cp36-abi3-win32.whl", hash = "sha256:104a5cc0e31baa2bcf67900be36acde157756b9c44017b86b2c049f11957887d"}, - {file = "psutil-5.9.5-cp36-abi3-win_amd64.whl", hash = "sha256:b258c0c1c9d145a1d5ceffab1134441c4c5113b2417fafff7315a917a026c3c9"}, - {file = "psutil-5.9.5-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:c607bb3b57dc779d55e1554846352b4e358c10fff3abf3514a7a6601beebdb30"}, - {file = "psutil-5.9.5.tar.gz", hash = "sha256:5410638e4df39c54d957fc51ce03048acd8e6d60abc0f5107af51e5fb566eb3c"}, +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +files = [ + {file = "psutil-6.0.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a021da3e881cd935e64a3d0a20983bda0bb4cf80e4f74fa9bfcb1bc5785360c6"}, + {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:1287c2b95f1c0a364d23bc6f2ea2365a8d4d9b726a3be7294296ff7ba97c17f0"}, + {file = "psutil-6.0.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:a9a3dbfb4de4f18174528d87cc352d1f788b7496991cca33c6996f40c9e3c92c"}, + {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6ec7588fb3ddaec7344a825afe298db83fe01bfaaab39155fa84cf1c0d6b13c3"}, + {file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:1e7c870afcb7d91fdea2b37c24aeb08f98b6d67257a5cb0a8bc3ac68d0f1a68c"}, + {file = "psutil-6.0.0-cp27-none-win32.whl", hash = "sha256:02b69001f44cc73c1c5279d02b30a817e339ceb258ad75997325e0e6169d8b35"}, + {file = "psutil-6.0.0-cp27-none-win_amd64.whl", hash = "sha256:21f1fb635deccd510f69f485b87433460a603919b45e2a324ad65b0cc74f8fb1"}, + {file = "psutil-6.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c588a7e9b1173b6e866756dde596fd4cad94f9399daf99ad8c3258b3cb2b47a0"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ed2440ada7ef7d0d608f20ad89a04ec47d2d3ab7190896cd62ca5fc4fe08bf0"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fd9a97c8e94059b0ef54a7d4baf13b405011176c3b6ff257c247cae0d560ecd"}, + {file = "psutil-6.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e8d0054fc88153ca0544f5c4d554d42e33df2e009c4ff42284ac9ebdef4132"}, + {file = "psutil-6.0.0-cp36-cp36m-win32.whl", hash = "sha256:fc8c9510cde0146432bbdb433322861ee8c3efbf8589865c8bf8d21cb30c4d14"}, + {file = "psutil-6.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:34859b8d8f423b86e4385ff3665d3f4d94be3cdf48221fbe476e883514fdb71c"}, + {file = "psutil-6.0.0-cp37-abi3-win32.whl", hash = "sha256:a495580d6bae27291324fe60cea0b5a7c23fa36a7cd35035a16d93bdcf076b9d"}, + {file = "psutil-6.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:33ea5e1c975250a720b3a6609c490db40dae5d83a4eb315170c4fe0d8b1f34b3"}, + {file = "psutil-6.0.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:ffe7fc9b6b36beadc8c322f84e1caff51e8703b88eee1da46d1e3a6ae11b4fd0"}, + {file = "psutil-6.0.0.tar.gz", hash = "sha256:8faae4f310b6d969fa26ca0545338b21f73c6b15db7c4a8d934a5482faa818f2"}, ] [package.extras] @@ -2028,118 +1917,125 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] [[package]] name = "psycopg2-binary" -version = "2.9.7" +version = "2.9.9" description = "psycopg2 - Python-PostgreSQL Database Adapter" -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "psycopg2-binary-2.9.7.tar.gz", hash = "sha256:1b918f64a51ffe19cd2e230b3240ba481330ce1d4b7875ae67305bd1d37b041c"}, - {file = "psycopg2_binary-2.9.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ea5f8ee87f1eddc818fc04649d952c526db4426d26bab16efbe5a0c52b27d6ab"}, - {file = "psycopg2_binary-2.9.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2993ccb2b7e80844d534e55e0f12534c2871952f78e0da33c35e648bf002bbff"}, - {file = "psycopg2_binary-2.9.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dbbc3c5d15ed76b0d9db7753c0db40899136ecfe97d50cbde918f630c5eb857a"}, - {file = "psycopg2_binary-2.9.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:692df8763b71d42eb8343f54091368f6f6c9cfc56dc391858cdb3c3ef1e3e584"}, - {file = "psycopg2_binary-2.9.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9dcfd5d37e027ec393a303cc0a216be564b96c80ba532f3d1e0d2b5e5e4b1e6e"}, - {file = "psycopg2_binary-2.9.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17cc17a70dfb295a240db7f65b6d8153c3d81efb145d76da1e4a096e9c5c0e63"}, - {file = "psycopg2_binary-2.9.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e5666632ba2b0d9757b38fc17337d84bdf932d38563c5234f5f8c54fd01349c9"}, - {file = "psycopg2_binary-2.9.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7db7b9b701974c96a88997d458b38ccb110eba8f805d4b4f74944aac48639b42"}, - {file = "psycopg2_binary-2.9.7-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c82986635a16fb1fa15cd5436035c88bc65c3d5ced1cfaac7f357ee9e9deddd4"}, - {file = "psycopg2_binary-2.9.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4fe13712357d802080cfccbf8c6266a3121dc0e27e2144819029095ccf708372"}, - {file = "psycopg2_binary-2.9.7-cp310-cp310-win32.whl", hash = "sha256:122641b7fab18ef76b18860dd0c772290566b6fb30cc08e923ad73d17461dc63"}, - {file = "psycopg2_binary-2.9.7-cp310-cp310-win_amd64.whl", hash = "sha256:f8651cf1f144f9ee0fa7d1a1df61a9184ab72962531ca99f077bbdcba3947c58"}, - {file = "psycopg2_binary-2.9.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4ecc15666f16f97709106d87284c136cdc82647e1c3f8392a672616aed3c7151"}, - {file = "psycopg2_binary-2.9.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3fbb1184c7e9d28d67671992970718c05af5f77fc88e26fd7136613c4ece1f89"}, - {file = "psycopg2_binary-2.9.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a7968fd20bd550431837656872c19575b687f3f6f98120046228e451e4064df"}, - {file = "psycopg2_binary-2.9.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:094af2e77a1976efd4956a031028774b827029729725e136514aae3cdf49b87b"}, - {file = "psycopg2_binary-2.9.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:26484e913d472ecb6b45937ea55ce29c57c662066d222fb0fbdc1fab457f18c5"}, - {file = "psycopg2_binary-2.9.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f309b77a7c716e6ed9891b9b42953c3ff7d533dc548c1e33fddc73d2f5e21f9"}, - {file = "psycopg2_binary-2.9.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6d92e139ca388ccfe8c04aacc163756e55ba4c623c6ba13d5d1595ed97523e4b"}, - {file = "psycopg2_binary-2.9.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:2df562bb2e4e00ee064779902d721223cfa9f8f58e7e52318c97d139cf7f012d"}, - {file = "psycopg2_binary-2.9.7-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:4eec5d36dbcfc076caab61a2114c12094c0b7027d57e9e4387b634e8ab36fd44"}, - {file = "psycopg2_binary-2.9.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1011eeb0c51e5b9ea1016f0f45fa23aca63966a4c0afcf0340ccabe85a9f65bd"}, - {file = "psycopg2_binary-2.9.7-cp311-cp311-win32.whl", hash = "sha256:ded8e15f7550db9e75c60b3d9fcbc7737fea258a0f10032cdb7edc26c2a671fd"}, - {file = "psycopg2_binary-2.9.7-cp311-cp311-win_amd64.whl", hash = "sha256:8a136c8aaf6615653450817a7abe0fc01e4ea720ae41dfb2823eccae4b9062a3"}, - {file = "psycopg2_binary-2.9.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2dec5a75a3a5d42b120e88e6ed3e3b37b46459202bb8e36cd67591b6e5feebc1"}, - {file = "psycopg2_binary-2.9.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc10da7e7df3380426521e8c1ed975d22df678639da2ed0ec3244c3dc2ab54c8"}, - {file = "psycopg2_binary-2.9.7-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee919b676da28f78f91b464fb3e12238bd7474483352a59c8a16c39dfc59f0c5"}, - {file = "psycopg2_binary-2.9.7-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb1c0e682138f9067a58fc3c9a9bf1c83d8e08cfbee380d858e63196466d5c86"}, - {file = "psycopg2_binary-2.9.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00d8db270afb76f48a499f7bb8fa70297e66da67288471ca873db88382850bf4"}, - {file = "psycopg2_binary-2.9.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:9b0c2b466b2f4d89ccc33784c4ebb1627989bd84a39b79092e560e937a11d4ac"}, - {file = "psycopg2_binary-2.9.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:51d1b42d44f4ffb93188f9b39e6d1c82aa758fdb8d9de65e1ddfe7a7d250d7ad"}, - {file = "psycopg2_binary-2.9.7-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:11abdbfc6f7f7dea4a524b5f4117369b0d757725798f1593796be6ece20266cb"}, - {file = "psycopg2_binary-2.9.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:f02f4a72cc3ab2565c6d9720f0343cb840fb2dc01a2e9ecb8bc58ccf95dc5c06"}, - {file = "psycopg2_binary-2.9.7-cp37-cp37m-win32.whl", hash = "sha256:81d5dd2dd9ab78d31a451e357315f201d976c131ca7d43870a0e8063b6b7a1ec"}, - {file = "psycopg2_binary-2.9.7-cp37-cp37m-win_amd64.whl", hash = "sha256:62cb6de84d7767164a87ca97e22e5e0a134856ebcb08f21b621c6125baf61f16"}, - {file = "psycopg2_binary-2.9.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:59f7e9109a59dfa31efa022e94a244736ae401526682de504e87bd11ce870c22"}, - {file = "psycopg2_binary-2.9.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:95a7a747bdc3b010bb6a980f053233e7610276d55f3ca506afff4ad7749ab58a"}, - {file = "psycopg2_binary-2.9.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c721ee464e45ecf609ff8c0a555018764974114f671815a0a7152aedb9f3343"}, - {file = "psycopg2_binary-2.9.7-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4f37bbc6588d402980ffbd1f3338c871368fb4b1cfa091debe13c68bb3852b3"}, - {file = "psycopg2_binary-2.9.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac83ab05e25354dad798401babaa6daa9577462136ba215694865394840e31f8"}, - {file = "psycopg2_binary-2.9.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:024eaeb2a08c9a65cd5f94b31ace1ee3bb3f978cd4d079406aef85169ba01f08"}, - {file = "psycopg2_binary-2.9.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1c31c2606ac500dbd26381145684d87730a2fac9a62ebcfbaa2b119f8d6c19f4"}, - {file = "psycopg2_binary-2.9.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:42a62ef0e5abb55bf6ffb050eb2b0fcd767261fa3faf943a4267539168807522"}, - {file = "psycopg2_binary-2.9.7-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:7952807f95c8eba6a8ccb14e00bf170bb700cafcec3924d565235dffc7dc4ae8"}, - {file = "psycopg2_binary-2.9.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e02bc4f2966475a7393bd0f098e1165d470d3fa816264054359ed4f10f6914ea"}, - {file = "psycopg2_binary-2.9.7-cp38-cp38-win32.whl", hash = "sha256:fdca0511458d26cf39b827a663d7d87db6f32b93efc22442a742035728603d5f"}, - {file = "psycopg2_binary-2.9.7-cp38-cp38-win_amd64.whl", hash = "sha256:d0b16e5bb0ab78583f0ed7ab16378a0f8a89a27256bb5560402749dbe8a164d7"}, - {file = "psycopg2_binary-2.9.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6822c9c63308d650db201ba22fe6648bd6786ca6d14fdaf273b17e15608d0852"}, - {file = "psycopg2_binary-2.9.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8f94cb12150d57ea433e3e02aabd072205648e86f1d5a0a692d60242f7809b15"}, - {file = "psycopg2_binary-2.9.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5ee89587696d808c9a00876065d725d4ae606f5f7853b961cdbc348b0f7c9a1"}, - {file = "psycopg2_binary-2.9.7-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad5ec10b53cbb57e9a2e77b67e4e4368df56b54d6b00cc86398578f1c635f329"}, - {file = "psycopg2_binary-2.9.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:642df77484b2dcaf87d4237792246d8068653f9e0f5c025e2c692fc56b0dda70"}, - {file = "psycopg2_binary-2.9.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6a8b575ac45af1eaccbbcdcf710ab984fd50af048fe130672377f78aaff6fc1"}, - {file = "psycopg2_binary-2.9.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f955aa50d7d5220fcb6e38f69ea126eafecd812d96aeed5d5f3597f33fad43bb"}, - {file = "psycopg2_binary-2.9.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ad26d4eeaa0d722b25814cce97335ecf1b707630258f14ac4d2ed3d1d8415265"}, - {file = "psycopg2_binary-2.9.7-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:ced63c054bdaf0298f62681d5dcae3afe60cbae332390bfb1acf0e23dcd25fc8"}, - {file = "psycopg2_binary-2.9.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2b04da24cbde33292ad34a40db9832a80ad12de26486ffeda883413c9e1b1d5e"}, - {file = "psycopg2_binary-2.9.7-cp39-cp39-win32.whl", hash = "sha256:18f12632ab516c47c1ac4841a78fddea6508a8284c7cf0f292cb1a523f2e2379"}, - {file = "psycopg2_binary-2.9.7-cp39-cp39-win_amd64.whl", hash = "sha256:eb3b8d55924a6058a26db69fb1d3e7e32695ff8b491835ba9f479537e14dcf9f"}, + {file = "psycopg2-binary-2.9.9.tar.gz", hash = "sha256:7f01846810177d829c7692f1f5ada8096762d9172af1b1a28d4ab5b77c923c1c"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c2470da5418b76232f02a2fcd2229537bb2d5a7096674ce61859c3229f2eb202"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c6af2a6d4b7ee9615cbb162b0738f6e1fd1f5c3eda7e5da17861eacf4c717ea7"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:75723c3c0fbbf34350b46a3199eb50638ab22a0228f93fb472ef4d9becc2382b"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83791a65b51ad6ee6cf0845634859d69a038ea9b03d7b26e703f94c7e93dbcf9"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0ef4854e82c09e84cc63084a9e4ccd6d9b154f1dbdd283efb92ecd0b5e2b8c84"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ed1184ab8f113e8d660ce49a56390ca181f2981066acc27cf637d5c1e10ce46e"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d2997c458c690ec2bc6b0b7ecbafd02b029b7b4283078d3b32a852a7ce3ddd98"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:b58b4710c7f4161b5e9dcbe73bb7c62d65670a87df7bcce9e1faaad43e715245"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:0c009475ee389757e6e34611d75f6e4f05f0cf5ebb76c6037508318e1a1e0d7e"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8dbf6d1bc73f1d04ec1734bae3b4fb0ee3cb2a493d35ede9badbeb901fb40f6f"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-win32.whl", hash = "sha256:3f78fd71c4f43a13d342be74ebbc0666fe1f555b8837eb113cb7416856c79682"}, + {file = "psycopg2_binary-2.9.9-cp310-cp310-win_amd64.whl", hash = "sha256:876801744b0dee379e4e3c38b76fc89f88834bb15bf92ee07d94acd06ec890a0"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ee825e70b1a209475622f7f7b776785bd68f34af6e7a46e2e42f27b659b5bc26"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1ea665f8ce695bcc37a90ee52de7a7980be5161375d42a0b6c6abedbf0d81f0f"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:143072318f793f53819048fdfe30c321890af0c3ec7cb1dfc9cc87aa88241de2"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c332c8d69fb64979ebf76613c66b985414927a40f8defa16cf1bc028b7b0a7b0"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7fc5a5acafb7d6ccca13bfa8c90f8c51f13d8fb87d95656d3950f0158d3ce53"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:977646e05232579d2e7b9c59e21dbe5261f403a88417f6a6512e70d3f8a046be"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b6356793b84728d9d50ead16ab43c187673831e9d4019013f1402c41b1db9b27"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bc7bb56d04601d443f24094e9e31ae6deec9ccb23581f75343feebaf30423359"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:77853062a2c45be16fd6b8d6de2a99278ee1d985a7bd8b103e97e41c034006d2"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:78151aa3ec21dccd5cdef6c74c3e73386dcdfaf19bced944169697d7ac7482fc"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-win32.whl", hash = "sha256:dc4926288b2a3e9fd7b50dc6a1909a13bbdadfc67d93f3374d984e56f885579d"}, + {file = "psycopg2_binary-2.9.9-cp311-cp311-win_amd64.whl", hash = "sha256:b76bedd166805480ab069612119ea636f5ab8f8771e640ae103e05a4aae3e417"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:8532fd6e6e2dc57bcb3bc90b079c60de896d2128c5d9d6f24a63875a95a088cf"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0605eaed3eb239e87df0d5e3c6489daae3f7388d455d0c0b4df899519c6a38d"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f8544b092a29a6ddd72f3556a9fcf249ec412e10ad28be6a0c0d948924f2212"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2d423c8d8a3c82d08fe8af900ad5b613ce3632a1249fd6a223941d0735fce493"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e5afae772c00980525f6d6ecf7cbca55676296b580c0e6abb407f15f3706996"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e6f98446430fdf41bd36d4faa6cb409f5140c1c2cf58ce0bbdaf16af7d3f119"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c77e3d1862452565875eb31bdb45ac62502feabbd53429fdc39a1cc341d681ba"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:cb16c65dcb648d0a43a2521f2f0a2300f40639f6f8c1ecbc662141e4e3e1ee07"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:911dda9c487075abd54e644ccdf5e5c16773470a6a5d3826fda76699410066fb"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:57fede879f08d23c85140a360c6a77709113efd1c993923c59fde17aa27599fe"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-win32.whl", hash = "sha256:64cf30263844fa208851ebb13b0732ce674d8ec6a0c86a4e160495d299ba3c93"}, + {file = "psycopg2_binary-2.9.9-cp312-cp312-win_amd64.whl", hash = "sha256:81ff62668af011f9a48787564ab7eded4e9fb17a4a6a74af5ffa6a457400d2ab"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2293b001e319ab0d869d660a704942c9e2cce19745262a8aba2115ef41a0a42a"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03ef7df18daf2c4c07e2695e8cfd5ee7f748a1d54d802330985a78d2a5a6dca9"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a602ea5aff39bb9fac6308e9c9d82b9a35c2bf288e184a816002c9fae930b77"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8359bf4791968c5a78c56103702000105501adb557f3cf772b2c207284273984"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:275ff571376626195ab95a746e6a04c7df8ea34638b99fc11160de91f2fef503"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:f9b5571d33660d5009a8b3c25dc1db560206e2d2f89d3df1cb32d72c0d117d52"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:420f9bbf47a02616e8554e825208cb947969451978dceb77f95ad09c37791dae"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:4154ad09dac630a0f13f37b583eae260c6aa885d67dfbccb5b02c33f31a6d420"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:a148c5d507bb9b4f2030a2025c545fccb0e1ef317393eaba42e7eabd28eb6041"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-win32.whl", hash = "sha256:68fc1f1ba168724771e38bee37d940d2865cb0f562380a1fb1ffb428b75cb692"}, + {file = "psycopg2_binary-2.9.9-cp37-cp37m-win_amd64.whl", hash = "sha256:281309265596e388ef483250db3640e5f414168c5a67e9c665cafce9492eda2f"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:60989127da422b74a04345096c10d416c2b41bd7bf2a380eb541059e4e999980"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:246b123cc54bb5361588acc54218c8c9fb73068bf227a4a531d8ed56fa3ca7d6"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34eccd14566f8fe14b2b95bb13b11572f7c7d5c36da61caf414d23b91fcc5d94"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18d0ef97766055fec15b5de2c06dd8e7654705ce3e5e5eed3b6651a1d2a9a152"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d3f82c171b4ccd83bbaf35aa05e44e690113bd4f3b7b6cc54d2219b132f3ae55"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ead20f7913a9c1e894aebe47cccf9dc834e1618b7aa96155d2091a626e59c972"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ca49a8119c6cbd77375ae303b0cfd8c11f011abbbd64601167ecca18a87e7cdd"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:323ba25b92454adb36fa425dc5cf6f8f19f78948cbad2e7bc6cdf7b0d7982e59"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:1236ed0952fbd919c100bc839eaa4a39ebc397ed1c08a97fc45fee2a595aa1b3"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:729177eaf0aefca0994ce4cffe96ad3c75e377c7b6f4efa59ebf003b6d398716"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-win32.whl", hash = "sha256:804d99b24ad523a1fe18cc707bf741670332f7c7412e9d49cb5eab67e886b9b5"}, + {file = "psycopg2_binary-2.9.9-cp38-cp38-win_amd64.whl", hash = "sha256:a6cdcc3ede532f4a4b96000b6362099591ab4a3e913d70bcbac2b56c872446f7"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:72dffbd8b4194858d0941062a9766f8297e8868e1dd07a7b36212aaa90f49472"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:30dcc86377618a4c8f3b72418df92e77be4254d8f89f14b8e8f57d6d43603c0f"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31a34c508c003a4347d389a9e6fcc2307cc2150eb516462a7a17512130de109e"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:15208be1c50b99203fe88d15695f22a5bed95ab3f84354c494bcb1d08557df67"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1873aade94b74715be2246321c8650cabf5a0d098a95bab81145ffffa4c13876"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a58c98a7e9c021f357348867f537017057c2ed7f77337fd914d0bedb35dace7"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4686818798f9194d03c9129a4d9a702d9e113a89cb03bffe08c6cf799e053291"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:ebdc36bea43063116f0486869652cb2ed7032dbc59fbcb4445c4862b5c1ecf7f"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:ca08decd2697fdea0aea364b370b1249d47336aec935f87b8bbfd7da5b2ee9c1"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ac05fb791acf5e1a3e39402641827780fe44d27e72567a000412c648a85ba860"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-win32.whl", hash = "sha256:9dba73be7305b399924709b91682299794887cbbd88e38226ed9f6712eabee90"}, + {file = "psycopg2_binary-2.9.9-cp39-cp39-win_amd64.whl", hash = "sha256:f7ae5d65ccfbebdfa761585228eb4d0df3a8b15cfb53bd953e713e09fbb12957"}, ] [[package]] name = "pyasn1" -version = "0.5.0" +version = "0.6.0" description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" -category = "main" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +python-versions = ">=3.8" files = [ - {file = "pyasn1-0.5.0-py2.py3-none-any.whl", hash = "sha256:87a2121042a1ac9358cabcaf1d07680ff97ee6404333bacca15f76aa8ad01a57"}, - {file = "pyasn1-0.5.0.tar.gz", hash = "sha256:97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde"}, + {file = "pyasn1-0.6.0-py2.py3-none-any.whl", hash = "sha256:cca4bb0f2df5504f02f6f8a775b6e416ff9b0b3b16f7ee80b5a3153d9b804473"}, + {file = "pyasn1-0.6.0.tar.gz", hash = "sha256:3a35ab2c4b5ef98e17dfdec8ab074046fbda76e281c5a706ccd82328cfc8f64c"}, ] [[package]] name = "pyasn1-modules" -version = "0.3.0" +version = "0.4.0" description = "A collection of ASN.1-based protocols modules" -category = "main" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +python-versions = ">=3.8" files = [ - {file = "pyasn1_modules-0.3.0-py2.py3-none-any.whl", hash = "sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d"}, - {file = "pyasn1_modules-0.3.0.tar.gz", hash = "sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c"}, + {file = "pyasn1_modules-0.4.0-py3-none-any.whl", hash = "sha256:be04f15b66c206eed667e0bb5ab27e2b1855ea54a842e5037738099e8ca4ae0b"}, + {file = "pyasn1_modules-0.4.0.tar.gz", hash = "sha256:831dbcea1b177b28c9baddf4c6d1013c24c3accd14a1873fffaa6a2e905f17b6"}, ] [package.dependencies] -pyasn1 = ">=0.4.6,<0.6.0" +pyasn1 = ">=0.4.6,<0.7.0" [[package]] name = "pycparser" -version = "2.21" +version = "2.22" description = "C parser in Python" -category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.8" files = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, ] [[package]] name = "pynacl" version = "1.5.0" description = "Python binding to the Networking and Cryptography (NaCl) library" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2164,109 +2060,100 @@ tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"] [[package]] name = "pyodbc" -version = "4.0.39" -description = "DB API Module for ODBC" -category = "main" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" -files = [ - {file = "pyodbc-4.0.39-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:74af348dbaee4885998858daf50c8964e767629ecf6c195868b016367b0bb861"}, - {file = "pyodbc-4.0.39-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0f5901b57eaef0761f4cf02bca8e7c63f589fd0fd723a79f6ccf1ea1275372e5"}, - {file = "pyodbc-4.0.39-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0db69478d00fcd8d0b9bdde8aca0b0eada341fd6ed8c2da84b594b928c84106"}, - {file = "pyodbc-4.0.39-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5faf2870e9d434c6a85c6adc1cdff55c0e376273baf480f06d9848025405688"}, - {file = "pyodbc-4.0.39-cp310-cp310-win32.whl", hash = "sha256:62bb6d7d0d25dc75d1445e539f946461c9c5a3643ae14676b240f71794ea004f"}, - {file = "pyodbc-4.0.39-cp310-cp310-win_amd64.whl", hash = "sha256:8eb5547282dc73a7784ce7b99584f68687dd85543538ca6f70cffaa6310676e7"}, - {file = "pyodbc-4.0.39-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:530c1ac37ead782803b44fb1934ba4c68ed4a6969f7475cb8bc04ae1da14486e"}, - {file = "pyodbc-4.0.39-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1f7fb65191926308f09ce75ae7ccecf89310232ee50cdea74edf17ee04a9b068"}, - {file = "pyodbc-4.0.39-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ec009180fcd7c8197f45d083e6670623d8dfe198a457ca2a50ebb1bafe4107f"}, - {file = "pyodbc-4.0.39-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:400e911d54980098c6badadecc82385fc0d6a9057db525d63d2652317df43efe"}, - {file = "pyodbc-4.0.39-cp311-cp311-win32.whl", hash = "sha256:f792677b88e1dde12dab46de8647620fc8171742c02780d51744f7b1b2135dbc"}, - {file = "pyodbc-4.0.39-cp311-cp311-win_amd64.whl", hash = "sha256:3d9d70e1635d35ba3aee3df216ec8e35f2824909f43331c0112b17f460a93923"}, - {file = "pyodbc-4.0.39-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c1a59096f1784d0cda3d0b8f393849f05515c46a10016edb6da1b1960d039800"}, - {file = "pyodbc-4.0.39-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b3467157661615d5c30893efa1069b55c9ffa434097fc3ae3739e740d83d2ec"}, - {file = "pyodbc-4.0.39-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af027a60e84274ea08fad1c75991d37a5f1f6e8bcd30f6bda20db99f0cdfbc7d"}, - {file = "pyodbc-4.0.39-cp36-cp36m-win32.whl", hash = "sha256:64c1de1263281de7b5ce585b0352746ab1a483453017a8589f838a79cbe3d6d9"}, - {file = "pyodbc-4.0.39-cp36-cp36m-win_amd64.whl", hash = "sha256:27d1b3c3159673b44c97c878f9d8056901d45f747ce2e0b4d5d99f0fb6949dc7"}, - {file = "pyodbc-4.0.39-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:efccc11dff6fba684a74ae1030c92ff8b82429d7f00e0a50aa2ac6f56621cd9f"}, - {file = "pyodbc-4.0.39-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea08e9379c08663d7260e2b8a6c451f56d36c17291af735191089f8e29ad9578"}, - {file = "pyodbc-4.0.39-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b36fe804d367d01ad81077fa524a36e667aabc3945e32564c7ef9595b28edfa9"}, - {file = "pyodbc-4.0.39-cp37-cp37m-win32.whl", hash = "sha256:72d364e52f6ca2417881a23834b3a36733c09e0dcd4760f49a6b864218d98d92"}, - {file = "pyodbc-4.0.39-cp37-cp37m-win_amd64.whl", hash = "sha256:39f6c56022c764309aa7552c0eb2c58fbb5902ab5d2010d42b021c0b205aa609"}, - {file = "pyodbc-4.0.39-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ebcb900fcaf19ca2bc38632218c5d48c666fcc19fe38b08cde001917f4581456"}, - {file = "pyodbc-4.0.39-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a3e133621ac2dad22d0870a8521c7e82d4270e24ce02451d64e7eb6a40ad0941"}, - {file = "pyodbc-4.0.39-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05a0912e852ebddaffa8f235b0f3974475021dd8eb604eb46ea67af06efe1239"}, - {file = "pyodbc-4.0.39-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6353044b99c763aeec7ca1760b4340298504d8ee544fdcab3c380a2abec15b78"}, - {file = "pyodbc-4.0.39-cp38-cp38-win32.whl", hash = "sha256:a591a1cf3c251a9c7c1642cfb3774119bf3512f3be56151247238f8a7b22b336"}, - {file = "pyodbc-4.0.39-cp38-cp38-win_amd64.whl", hash = "sha256:8553eaef9f8ec333bbddff6eadf0d322dda34b37f4bab19f0658eb532037840c"}, - {file = "pyodbc-4.0.39-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9253e746c5c94bf61e3e9adb08fb7688d413cb68c06ebb287ec233387534760a"}, - {file = "pyodbc-4.0.39-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a6f4067f46aaa78e77e8a15ade81eb21fb344563d245fb2d9a0aaa553c367cbd"}, - {file = "pyodbc-4.0.39-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdf5a27e6587d1762f7f0e35d6f0309f09019bf3e19ca9177a4b765121f3f106"}, - {file = "pyodbc-4.0.39-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe4ee87b88867867f582dd0c1236cd982508db359a6cbb5e91623ceb6c83e60a"}, - {file = "pyodbc-4.0.39-cp39-cp39-win32.whl", hash = "sha256:42649ed57d09c04aa197bdd4fe0aa9ca319790b7aa86d0b0784cc70e78c426e5"}, - {file = "pyodbc-4.0.39-cp39-cp39-win_amd64.whl", hash = "sha256:305c7d6337e2d4c8350677cc641b343fc0197b7b9bc167815c66b64545c67a53"}, - {file = "pyodbc-4.0.39.tar.gz", hash = "sha256:e528bb70dd6d6299ee429868925df0866e3e919c772b9eff79c8e17920d8f116"}, +version = "5.1.0" +description = "DB API module for ODBC" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pyodbc-5.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:02fe9821711a2d14415eaeb4deab471d2c8b7034b107e524e414c0e133c42248"}, + {file = "pyodbc-5.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2cbdbd019756285dc44bc35238a3ed8dfaa454e8c8b2c3462f1710cfeebfb290"}, + {file = "pyodbc-5.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84df3bbce9bafe65abd25788d55c9f1da304f6115d70f25758ff8c85f3ce0517"}, + {file = "pyodbc-5.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:218bb75d4bc67075529a65ce8ec7daeed1d83c33dd7410450fbf68d43d184d28"}, + {file = "pyodbc-5.1.0-cp310-cp310-win32.whl", hash = "sha256:eae576b3b67d21d6f237e18bb5f3df8323a2258f52c3e3afeef79269704072a9"}, + {file = "pyodbc-5.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:c3b65343557f4c7753204e06f4c82c97ed212a636501f4bc27c5ce0e549eb3e8"}, + {file = "pyodbc-5.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aa6f46377da303bf79bcb4b559899507df4b2559f30dcfdf191358ee4b99f3ab"}, + {file = "pyodbc-5.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b19d7f44cfee89901e482f554a88177e83fae76b03c3f830e0023a195d840220"}, + {file = "pyodbc-5.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c36448322f8d6479d87c528cf52401a6ea4f509b9637750b67340382b4e1b40"}, + {file = "pyodbc-5.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c5e0cb79222aad4b31a3602e39b242683c29c6221a16ed43f45f18fd0b73659"}, + {file = "pyodbc-5.1.0-cp311-cp311-win32.whl", hash = "sha256:92caed9d445815ed3f7e5a1249e29a4600ebc1e99404df81b6ed7671074c9227"}, + {file = "pyodbc-5.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:a1bd14633e91b7a9814f4fd944c9ebb89fb7f1fd4710c4e3999b5ef041536347"}, + {file = "pyodbc-5.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d3d9cc4af703c4817b6e604315910b0cf5dcb68056d52b25ca072dd59c52dcbc"}, + {file = "pyodbc-5.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:406b8fa2133a7b6a713aa5187dba2d08cf763b5884606bed77610a7660fdfabe"}, + {file = "pyodbc-5.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8488c3818f12207650836c5c6f7352f9ff9f56a05a05512145995e497c0bbb1"}, + {file = "pyodbc-5.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0df69e3a500791b70b5748c68a79483b24428e4c16027b56aa0305e95c143a4"}, + {file = "pyodbc-5.1.0-cp312-cp312-win32.whl", hash = "sha256:aa4e02d3a9bf819394510b726b25f1566f8b3f0891ca400ad2d4c8b86b535b78"}, + {file = "pyodbc-5.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:33f4984af38872e7bdec78007a34e4d43ae72bf9d0bae3344e79d9d0db157c0e"}, + {file = "pyodbc-5.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:29425e2d366e7f5828b76c7993f412a3db4f18bd5bcee00186c00b5a5965e205"}, + {file = "pyodbc-5.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a2bbd2e75c77dee9f3cd100c3246110abaeb9af3f7fa304ccc2934ff9c6a4fa4"}, + {file = "pyodbc-5.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3602136a936bc0c1bb9722eb2fbf2042b3ff1ddccdc4688e514b82d4b831563b"}, + {file = "pyodbc-5.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bed1c843565d3a4fd8c332ebceaf33efe817657a0505eacb97dd1b786a985b0b"}, + {file = "pyodbc-5.1.0-cp38-cp38-win32.whl", hash = "sha256:735f6da3762e5856b5580be0ed96bb946948346ebd1e526d5169a5513626a67a"}, + {file = "pyodbc-5.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:c5bb4e43f6c72f5fa2c634570e0d761767d8ea49f39205229b812fb4d3fe05aa"}, + {file = "pyodbc-5.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:33f0f1d7764cefef6f787936bd6359670828a6086be67518ab951f1f7f503cda"}, + {file = "pyodbc-5.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:be3b1c36c31ec7d73d0b34a8ad8743573763fadd8f2bceef1e84408252b48dce"}, + {file = "pyodbc-5.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e71a51c252b503b4d753e21ed31e640015fc0d00202d42ea42f2396fcc924b4a"}, + {file = "pyodbc-5.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af5282cc8b667af97d76f4955250619a53f25486cbb6b1f45a06b781006ffa0b"}, + {file = "pyodbc-5.1.0-cp39-cp39-win32.whl", hash = "sha256:96b2a8dc27693a517e3aad3944a7faa8be95d40d7ec1eda51a1885162eedfa33"}, + {file = "pyodbc-5.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:e738c5eedb4a0cbab20cc008882f49b106054499db56864057c2530ff208cf32"}, + {file = "pyodbc-5.1.0.tar.gz", hash = "sha256:397feee44561a6580be08cedbe986436859563f4bb378f48224655c8e987ea60"}, ] [[package]] name = "pyopenssl" -version = "23.2.0" +version = "24.2.1" description = "Python wrapper module around the OpenSSL library" -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "pyOpenSSL-23.2.0-py3-none-any.whl", hash = "sha256:24f0dc5227396b3e831f4c7f602b950a5e9833d292c8e4a2e06b709292806ae2"}, - {file = "pyOpenSSL-23.2.0.tar.gz", hash = "sha256:276f931f55a452e7dea69c7173e984eb2a4407ce413c918aa34b55f82f9b8bac"}, + {file = "pyOpenSSL-24.2.1-py3-none-any.whl", hash = "sha256:967d5719b12b243588573f39b0c677637145c7a1ffedcd495a487e58177fbb8d"}, + {file = "pyopenssl-24.2.1.tar.gz", hash = "sha256:4247f0dbe3748d560dcbb2ff3ea01af0f9a1a001ef5f7c4c647956ed8cbf0e95"}, ] [package.dependencies] -cryptography = ">=38.0.0,<40.0.0 || >40.0.0,<40.0.1 || >40.0.1,<42" +cryptography = ">=41.0.5,<44" [package.extras] -docs = ["sphinx (!=5.2.0,!=5.2.0.post0)", "sphinx-rtd-theme"] -test = ["flaky", "pretend", "pytest (>=3.0.1)"] +docs = ["sphinx (!=5.2.0,!=5.2.0.post0,!=7.2.5)", "sphinx-rtd-theme"] +test = ["pretend", "pytest (>=3.0.1)", "pytest-rerunfailures"] [[package]] name = "pyproject-api" -version = "1.6.1" +version = "1.7.1" description = "API to interact with the python pyproject.toml based projects" -category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "pyproject_api-1.6.1-py3-none-any.whl", hash = "sha256:4c0116d60476b0786c88692cf4e325a9814965e2469c5998b830bba16b183675"}, - {file = "pyproject_api-1.6.1.tar.gz", hash = "sha256:1817dc018adc0d1ff9ca1ed8c60e1623d5aaca40814b953af14a9cf9a5cae538"}, + {file = "pyproject_api-1.7.1-py3-none-any.whl", hash = "sha256:2dc1654062c2b27733d8fd4cdda672b22fe8741ef1dde8e3a998a9547b071eeb"}, + {file = "pyproject_api-1.7.1.tar.gz", hash = "sha256:7ebc6cd10710f89f4cf2a2731710a98abce37ebff19427116ff2174c9236a827"}, ] [package.dependencies] -packaging = ">=23.1" +packaging = ">=24.1" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} [package.extras] -docs = ["furo (>=2023.8.19)", "sphinx (<7.2)", "sphinx-autodoc-typehints (>=1.24)"] -testing = ["covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "setuptools (>=68.1.2)", "wheel (>=0.41.2)"] +docs = ["furo (>=2024.5.6)", "sphinx-autodoc-typehints (>=2.2.1)"] +testing = ["covdefaults (>=2.3)", "pytest (>=8.2.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "setuptools (>=70.1)"] [[package]] name = "pysaml2" -version = "7.3.1" +version = "7.5.0" description = "Python implementation of SAML Version 2 Standard" -category = "main" optional = false -python-versions = ">=3.6.2,<4.0.0" +python-versions = ">=3.9,<4.0" files = [ - {file = "pysaml2-7.3.1-py3-none-any.whl", hash = "sha256:2cc66e7a371d3f5ff9601f0ed93b5276cca816fce82bb38447d5a0651f2f5193"}, - {file = "pysaml2-7.3.1.tar.gz", hash = "sha256:eab22d187c6dd7707c58b5bb1688f9b8e816427667fc99d77f54399e15cd0a0a"}, + {file = "pysaml2-7.5.0-py3-none-any.whl", hash = "sha256:bc6627cc344476a83c757f440a73fda1369f13b6fda1b4e16bca63ffbabb5318"}, + {file = "pysaml2-7.5.0.tar.gz", hash = "sha256:f36871d4e5ee857c6b85532e942550d2cf90ea4ee943d75eb681044bbc4f54f7"}, ] [package.dependencies] cryptography = ">=3.1" defusedxml = "*" -importlib-resources = {version = "*", markers = "python_version < \"3.9\""} pyopenssl = "*" python-dateutil = "*" pytz = "*" requests = ">=2,<3" -xmlschema = ">=1.2.1" +xmlschema = ">=2,<3" [package.extras] s2repoze = ["paste", "repoze.who", "zope.interface"] @@ -2275,7 +2162,6 @@ s2repoze = ["paste", "repoze.who", "zope.interface"] name = "pysmb" version = "1.2.9.1" description = "pysmb is an experimental SMB/CIFS library written in Python to support file sharing between Windows and Linux machines" -category = "main" optional = false python-versions = "*" files = [ @@ -2288,14 +2174,13 @@ tqdm = "*" [[package]] name = "pytest" -version = "7.4.2" +version = "8.3.1" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.4.2-py3-none-any.whl", hash = "sha256:1d881c6124e08ff0a1bb75ba3ec0bfd8b5354a01c194ddd5a0a870a48d99b002"}, - {file = "pytest-7.4.2.tar.gz", hash = "sha256:a766259cfab564a2ad52cb1aae1b881a75c3eb7e34ca3779697c23ed47c47069"}, + {file = "pytest-8.3.1-py3-none-any.whl", hash = "sha256:e9600ccf4f563976e2c99fa02c7624ab938296551f280835ee6516df8bc4ae8c"}, + {file = "pytest-8.3.1.tar.gz", hash = "sha256:7e8e5c5abd6e93cb1cc151f23e57adc31fcf8cfd2a3ff2da63e23f732de35db6"}, ] [package.dependencies] @@ -2303,22 +2188,21 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} +pluggy = ">=1.5,<2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-cov" -version = "4.1.0" +version = "5.0.0" description = "Pytest plugin for measuring coverage." -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, - {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, + {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, + {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, ] [package.dependencies] @@ -2326,18 +2210,17 @@ coverage = {version = ">=5.2.1", extras = ["toml"]} pytest = ">=4.6" [package.extras] -testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] [[package]] name = "python-dateutil" -version = "2.8.2" +version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, ] [package.dependencies] @@ -2345,25 +2228,23 @@ six = ">=1.5" [[package]] name = "python-gnupg" -version = "0.5.1" +version = "0.5.2" description = "A wrapper for the Gnu Privacy Guard (GPG or GnuPG)" -category = "main" optional = false python-versions = "*" files = [ - {file = "python-gnupg-0.5.1.tar.gz", hash = "sha256:5674bad4e93876c0b0d3197e314d7f942d39018bf31e2b833f6788a6813c3fb8"}, - {file = "python_gnupg-0.5.1-py2.py3-none-any.whl", hash = "sha256:bf9b2d9032ef38139b7d64184176cd0b293eaeae6e4f93f50e304c7051174482"}, + {file = "python-gnupg-0.5.2.tar.gz", hash = "sha256:01d8013931c9fa3f45824bbea7054c03d6e11f258a72e7e086e168dbcb91854c"}, + {file = "python_gnupg-0.5.2-py2.py3-none-any.whl", hash = "sha256:72ce142af6da7f07e433fef148b445fb3e07854acd2f88739008838745c0e9f5"}, ] [[package]] name = "python-ldap" -version = "3.4.3" +version = "3.4.4" description = "Python modules for implementing LDAP clients" -category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "python-ldap-3.4.3.tar.gz", hash = "sha256:ab26c519a0ef2a443a2a10391fa3c5cb52d7871323399db949ebfaa9f25ee2a0"}, + {file = "python-ldap-3.4.4.tar.gz", hash = "sha256:7edb0accec4e037797705f3a05cbf36a9fde50d08c8f67f2aef99a2628fab828"}, ] [package.dependencies] @@ -2372,15 +2253,14 @@ pyasn1_modules = ">=0.1.5" [[package]] name = "python3-saml" -version = "1.15.0" +version = "1.16.0" description = "Saml Python Toolkit. Add SAML support to your Python software using this library" -category = "main" optional = false python-versions = "*" files = [ - {file = "python3-saml-1.15.0.tar.gz", hash = "sha256:8c68b31739471faffb93dcdfe3bcab375b9d6a0459cab7fa9cb0d7d874ecf0b0"}, - {file = "python3_saml-1.15.0-py2-none-any.whl", hash = "sha256:3a76a17c6a2384313c5cdb450ea8b2e6d098f30836ee3dddbfe8e870903971d2"}, - {file = "python3_saml-1.15.0-py3-none-any.whl", hash = "sha256:cc0458351ddaa08270ebe29ffaf9e1a41dbd285ba43a176cbd70907af5944c66"}, + {file = "python3-saml-1.16.0.tar.gz", hash = "sha256:97c9669aecabc283c6e5fb4eb264f446b6e006f5267d01c9734f9d8bffdac133"}, + {file = "python3_saml-1.16.0-py2-none-any.whl", hash = "sha256:c49097863c278ff669a337a96c46dc1f25d16307b4bb2679d2d1733cc4f5176a"}, + {file = "python3_saml-1.16.0-py3-none-any.whl", hash = "sha256:20b97d11b04f01ee22e98f4a38242e2fea2e28fbc7fbc9bdd57cab5ac7fc2d0d"}, ] [package.dependencies] @@ -2393,21 +2273,19 @@ test = ["coverage (>=4.5.2)", "flake8 (>=3.6.0,<=5.0.0)", "freezegun (>=0.3.11,< [[package]] name = "pytz" -version = "2022.7.1" +version = "2024.1" description = "World timezone definitions, modern and historical" -category = "main" optional = false python-versions = "*" files = [ - {file = "pytz-2022.7.1-py2.py3-none-any.whl", hash = "sha256:78f4f37d8198e0627c5f1143240bb0206b8691d8d7ac6d78fee88b78733f8c4a"}, - {file = "pytz-2022.7.1.tar.gz", hash = "sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0"}, + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, ] [[package]] name = "pytz-deprecation-shim" version = "0.1.0.post0" description = "Shims to make deprecation of pytz easier" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -2416,14 +2294,12 @@ files = [ ] [package.dependencies] -"backports.zoneinfo" = {version = "*", markers = "python_version >= \"3.6\" and python_version < \"3.9\""} tzdata = {version = "*", markers = "python_version >= \"3.6\""} [[package]] name = "pyyaml" version = "6.0.1" description = "YAML parser and emitter for Python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2445,6 +2321,7 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, @@ -2483,7 +2360,6 @@ files = [ name = "radon" version = "6.0.1" description = "Code Metrics in Python" -category = "dev" optional = false python-versions = "*" files = [ @@ -2500,51 +2376,73 @@ toml = ["tomli (>=2.0.1)"] [[package]] name = "rcssmin" -version = "1.1.1" +version = "1.1.2" description = "CSS Minifier" -category = "main" optional = false python-versions = "*" files = [ - {file = "rcssmin-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:d4e263fa9428704fd94c2cb565c7519ca1d225217943f71caffe6741ab5b9df1"}, - {file = "rcssmin-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:c7278c1c25bb90d8e554df92cfb3b6a1195004ead50f764653d3093933ee0877"}, - {file = "rcssmin-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f15673e97f0a68b4c378c4d15b088fe96d60bc106d278c88829923118833c20f"}, - {file = "rcssmin-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d0afc6e7b64ef30d6dcde88830ec1a237b9f16a39f920a8fd159928684ccf8db"}, - {file = "rcssmin-1.1.1-cp310-cp310-manylinux1_i686.whl", hash = "sha256:705c9112d0ed54ea40aecf97e7fd29bdf0f1c46d278a32d8f957f31dde90778a"}, - {file = "rcssmin-1.1.1-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:f7a1fcdbafaacac0530da04edca4a44303baab430ea42e7d59aece4b3f3e9a51"}, - {file = "rcssmin-1.1.1-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:cf74d7ea5e191f0f344b354eed8b7c83eeafbd9a97bec3a579c3d26edf11b005"}, - {file = "rcssmin-1.1.1-cp311-cp311-manylinux1_i686.whl", hash = "sha256:908fe072efd2432fb0975a61124609a8e05021367f6a3463d45f5e3e74c4fdda"}, - {file = "rcssmin-1.1.1-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:35da6a6999e9e2c5b0e691b42ed56cc479373e0ecab33ef5277dfecce625e44a"}, - {file = "rcssmin-1.1.1-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:e923c105100ab70abde1c01d3196ddd6b07255e32073685542be4e3a60870c8e"}, - {file = "rcssmin-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:868215e1fd0e92a6122e0ed5973dfc7bb8330fe1e92274d05b2585253b38c0ca"}, - {file = "rcssmin-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:c7728e3b546b1b6ea08cab721e8e21409dbcc11b881d0b87d10b0be8930af2a2"}, - {file = "rcssmin-1.1.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:271e3d2f8614a6d4637ed8fff3d90007f03e2a654cd9444f37d888797662ba72"}, - {file = "rcssmin-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:42576d95dfad53d77df2e68dfdec95b89b10fad320f241f1af3ca1438578254a"}, - {file = "rcssmin-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:79421230dd67c37ec61ed9892813d2b839b68f2f48ef55c75f976e81701d60b4"}, - {file = "rcssmin-1.1.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:8fcfd10ae2a1c4ce231a33013f2539e07c3836bf17cc945cc25cc30bf8e68e45"}, - {file = "rcssmin-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:c30f8bc839747b6da59274e0c6e4361915d66532e26448d589cb2b1846d7bf11"}, - {file = "rcssmin-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:ee386bec6d62f8c814d65c011d604a7c82d24aa3f718facd66e850eea8d6a5a1"}, - {file = "rcssmin-1.1.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8a26fec3c1e6b7a3765ccbaccc20fbb5c0ed3422cc381e01a2607f08d7621c44"}, - {file = "rcssmin-1.1.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:a04d58a2a21e9a089306d3f99c4b12bf5b656a79c198ef2321e80f8fd9afab06"}, - {file = "rcssmin-1.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:914e589f40573035006913861ed2adc28fbe70082a8b6bff5be7ee430b7b5c2e"}, - {file = "rcssmin-1.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:a417735d4023d47d048a6288c88dbceadd20abaaf65a11bb4fda1e8458057019"}, - {file = "rcssmin-1.1.1.tar.gz", hash = "sha256:4f9400b4366d29f5f5446f58e78549afa8338e6a59740c73115e9f6ac413dc64"}, + {file = "rcssmin-1.1.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:0101a55992ded00220d38ebaf003d0858c1e6e8b365df6f18f9d7a2cdc5574b3"}, + {file = "rcssmin-1.1.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9d7a5c6a08948ae5d7e1422ac34031fc05242786e6b600b37948412ee16f3655"}, + {file = "rcssmin-1.1.2-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:5f602bcaa457680a89904c10d1a539ffae5d4de08ec61a2044efc93c9a743860"}, + {file = "rcssmin-1.1.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d9384421d8cb516202349da7b6502d77df14860fa710f91dbe0b03b3b895dda3"}, + {file = "rcssmin-1.1.2-cp310-cp310-manylinux1_i686.whl", hash = "sha256:d40964dc7fbd74be30b1ef5543bb75c479a53d53362ecccba3f1a5de6453faca"}, + {file = "rcssmin-1.1.2-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:c9a55657a3d11c5901259b14f941ed7eec118cd5a4416535102eda491de6753f"}, + {file = "rcssmin-1.1.2-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:065b7f85902c87011951b1d084fa694099d70feb6bef1c3e89456a1a0668c73b"}, + {file = "rcssmin-1.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b37db48eacf5b8ad09ee14eb25db8cc7176ce2339c1028499547858c152a936a"}, + {file = "rcssmin-1.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:f1468ccbfe16a2b4cff5bc0d330488bb496f71b542d26bd2005b2ab05a295752"}, + {file = "rcssmin-1.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b3577e4955b89324cd8214ae8e9c2ce452197ea2f789527538cf41e662930495"}, + {file = "rcssmin-1.1.2-cp311-cp311-manylinux1_i686.whl", hash = "sha256:83dd2c3f7b70fae9c97bab99fd7a709dc852f0bc3e7482f8cfb378e0c5f1aed8"}, + {file = "rcssmin-1.1.2-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:2219d704f27006ecd17ef4b5744cac5f68a276be0889b114130660fb798f3583"}, + {file = "rcssmin-1.1.2-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:a5e758c8db03a57fef847542bf14d96da75913cc0e2495540c018943c1f2d142"}, + {file = "rcssmin-1.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a0e353ecbfde3dba0a6579a674fc1dcdc1ff7e47ceff3b29beb6e235b53a981c"}, + {file = "rcssmin-1.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:140d1c0ba21fb8c3a2bafae164540a6816e8ec3492bea6ace0c52eebd2cf303f"}, + {file = "rcssmin-1.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef0d472d8f6b8271fef3e388f98085a257703a635556a3ea77287616ab594ea9"}, + {file = "rcssmin-1.1.2-cp312-cp312-manylinux1_i686.whl", hash = "sha256:e58a54e63f79c996284240ec2dfb2992e8b90ad8941b1c70997e256b65940de7"}, + {file = "rcssmin-1.1.2-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:657324bfb76fa9e97badabe26af97a1622446f33c9073dd0510c7c7e8c7b96da"}, + {file = "rcssmin-1.1.2-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:fdffd58868a752cac0400249ce21bddf55e00d3206f8885d4a3aca1dab487070"}, + {file = "rcssmin-1.1.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:82aad2c3526055956fba537ab067ad937b3f57a1bd13c89bf691fced9c24c89d"}, + {file = "rcssmin-1.1.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3a860a1f4304e9813900f70fe6b1d429aff73a6fa30ef07f345f68d0a4e33abc"}, + {file = "rcssmin-1.1.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0451a2c7e7c1ff893ecb7820de862f2ea6336cc69d473ecb0206212e49c817fc"}, + {file = "rcssmin-1.1.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:283b5931eb25e159c0c37bba0717cf3ada2ff77a2827337790cd3921d33ae1eb"}, + {file = "rcssmin-1.1.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4cf7de426fbcce30df31261c1ce84d06fb2ae2f239b0c16ab7e9e083e0462432"}, + {file = "rcssmin-1.1.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:47d4d5d67f9ab8f18a6412f8eff843612ebddfff131260fd25a0b273a3d3b1a0"}, + {file = "rcssmin-1.1.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:ce4fce4b3f0cf3621f13f6b8aebbe6c90de3587e383d13dbc7c4c1576f27fda8"}, + {file = "rcssmin-1.1.2-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:3ab50d50ecbfa41d8984b545871df447c90a0c55e16a594e0c97057eb694a7af"}, + {file = "rcssmin-1.1.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8eddfed4ac175a97eb228a289f820ff1bffcc3db7c63345e4590a49de7051244"}, + {file = "rcssmin-1.1.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:bc2d0ccf449f3f4c385789c9e7898f77fa40f88211cc7d385502f5ea11bc36f4"}, + {file = "rcssmin-1.1.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:754c3cab791da42cabfd430289dd991183d2e97f6c36a758ac4fd83c6998cb77"}, + {file = "rcssmin-1.1.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:997d3f6defd707f8a7bd39cedb765cedbf9c790ed0bc1f1c8fb65f4026007021"}, + {file = "rcssmin-1.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:9c9688d42654f06535a2a052a0c2f02989b9052149f6cd3263ed320a10379657"}, + {file = "rcssmin-1.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a8856db4529e524a632478d88f34d075ec7e772804257d9b99071b8bdd5f3733"}, + {file = "rcssmin-1.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d59a28d6819ad43ed660dfcdf297593f04e8bc227d7abd9548f12a16d6e645f1"}, + {file = "rcssmin-1.1.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:d1c9efc26682ff610194a0c56b0f192355136e066ff78683806778f0bc5e5093"}, + {file = "rcssmin-1.1.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:e5f08c79991c8ee0aa7064aa58ae92b0811d4a84948636ec0219b39d257470aa"}, + {file = "rcssmin-1.1.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:2d39b277a568f6208a4beea237c2d1188bd680deaff39f3742278462645a87ed"}, + {file = "rcssmin-1.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2b6a19926f7257ebb7d23040bb0ace05fa43dff7b60d8a9c35bfdf551fa57686"}, + {file = "rcssmin-1.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:69283a445483ac439af10ca9f50463c3770ef79a99833af7d5105c75f8ab3c5d"}, + {file = "rcssmin-1.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a8e4c1bfa110d450970df60d904feab71c287e777a3cf522fd20e766483c8ce4"}, + {file = "rcssmin-1.1.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:19e48f7f66a3fa329215a02b3a952737b0b12f9976cd79ff2c236f96960d71d1"}, + {file = "rcssmin-1.1.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:e3ad642a1bfcbbddc3c36ad4c5676ef53267dd7c193c746a2f6670fe5bd03a60"}, + {file = "rcssmin-1.1.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:20f8592341960b031967f7ada165e6c8077dfc01eb4092fb970a5a4e64506695"}, + {file = "rcssmin-1.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1c1d9a24132f4c48d080a59c20fce99a4fd9c393eb63f9779f2497ae28992de1"}, + {file = "rcssmin-1.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:50576521c1e08e8f137225b8a6e8ae88e867f53dfd82c537616591c67f112aad"}, + {file = "rcssmin-1.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f363c9d242e1afce4fafbbf6bed52452464b19199e66075bed606764f31ca329"}, + {file = "rcssmin-1.1.2.tar.gz", hash = "sha256:bc75eb75bd6d345c0c51fd80fc487ddd6f9fd409dd7861b3fe98dee85018e1e9"}, ] [[package]] name = "redis" -version = "5.0.0" +version = "5.0.7" description = "Python client for Redis database and key-value store" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "redis-5.0.0-py3-none-any.whl", hash = "sha256:06570d0b2d84d46c21defc550afbaada381af82f5b83e5b3777600e05d8e2ed0"}, - {file = "redis-5.0.0.tar.gz", hash = "sha256:5cea6c0d335c9a7332a460ed8729ceabb4d0c489c7285b0a86dbbf8a017bd120"}, + {file = "redis-5.0.7-py3-none-any.whl", hash = "sha256:0e479e24da960c690be5d9b96d21f7b918a98c0cf49af3b6fafaa0753f93a0db"}, + {file = "redis-5.0.7.tar.gz", hash = "sha256:8f611490b93c8109b50adc317b31bfd84fff31def3475b92e7e80bf39f48175b"}, ] [package.dependencies] -async-timeout = {version = ">=4.0.2", markers = "python_full_version <= \"3.11.2\""} +async-timeout = {version = ">=4.0.3", markers = "python_full_version < \"3.11.3\""} [package.extras] hiredis = ["hiredis (>=1.0.0)"] @@ -2552,107 +2450,96 @@ ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==20.0.1)", "requests (>=2.26.0)" [[package]] name = "regex" -version = "2023.8.8" +version = "2024.5.15" description = "Alternative regular expression module, to replace re." -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "regex-2023.8.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:88900f521c645f784260a8d346e12a1590f79e96403971241e64c3a265c8ecdb"}, - {file = "regex-2023.8.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3611576aff55918af2697410ff0293d6071b7e00f4b09e005d614686ac4cd57c"}, - {file = "regex-2023.8.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8a0ccc8f2698f120e9e5742f4b38dc944c38744d4bdfc427616f3a163dd9de5"}, - {file = "regex-2023.8.8-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c662a4cbdd6280ee56f841f14620787215a171c4e2d1744c9528bed8f5816c96"}, - {file = "regex-2023.8.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cf0633e4a1b667bfe0bb10b5e53fe0d5f34a6243ea2530eb342491f1adf4f739"}, - {file = "regex-2023.8.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:551ad543fa19e94943c5b2cebc54c73353ffff08228ee5f3376bd27b3d5b9800"}, - {file = "regex-2023.8.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54de2619f5ea58474f2ac211ceea6b615af2d7e4306220d4f3fe690c91988a61"}, - {file = "regex-2023.8.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5ec4b3f0aebbbe2fc0134ee30a791af522a92ad9f164858805a77442d7d18570"}, - {file = "regex-2023.8.8-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3ae646c35cb9f820491760ac62c25b6d6b496757fda2d51be429e0e7b67ae0ab"}, - {file = "regex-2023.8.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ca339088839582d01654e6f83a637a4b8194d0960477b9769d2ff2cfa0fa36d2"}, - {file = "regex-2023.8.8-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:d9b6627408021452dcd0d2cdf8da0534e19d93d070bfa8b6b4176f99711e7f90"}, - {file = "regex-2023.8.8-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:bd3366aceedf274f765a3a4bc95d6cd97b130d1dda524d8f25225d14123c01db"}, - {file = "regex-2023.8.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7aed90a72fc3654fba9bc4b7f851571dcc368120432ad68b226bd593f3f6c0b7"}, - {file = "regex-2023.8.8-cp310-cp310-win32.whl", hash = "sha256:80b80b889cb767cc47f31d2b2f3dec2db8126fbcd0cff31b3925b4dc6609dcdb"}, - {file = "regex-2023.8.8-cp310-cp310-win_amd64.whl", hash = "sha256:b82edc98d107cbc7357da7a5a695901b47d6eb0420e587256ba3ad24b80b7d0b"}, - {file = "regex-2023.8.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1e7d84d64c84ad97bf06f3c8cb5e48941f135ace28f450d86af6b6512f1c9a71"}, - {file = "regex-2023.8.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ce0f9fbe7d295f9922c0424a3637b88c6c472b75eafeaff6f910494a1fa719ef"}, - {file = "regex-2023.8.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06c57e14ac723b04458df5956cfb7e2d9caa6e9d353c0b4c7d5d54fcb1325c46"}, - {file = "regex-2023.8.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e7a9aaa5a1267125eef22cef3b63484c3241aaec6f48949b366d26c7250e0357"}, - {file = "regex-2023.8.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b7408511fca48a82a119d78a77c2f5eb1b22fe88b0d2450ed0756d194fe7a9a"}, - {file = "regex-2023.8.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14dc6f2d88192a67d708341f3085df6a4f5a0c7b03dec08d763ca2cd86e9f559"}, - {file = "regex-2023.8.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48c640b99213643d141550326f34f0502fedb1798adb3c9eb79650b1ecb2f177"}, - {file = "regex-2023.8.8-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0085da0f6c6393428bf0d9c08d8b1874d805bb55e17cb1dfa5ddb7cfb11140bf"}, - {file = "regex-2023.8.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:964b16dcc10c79a4a2be9f1273fcc2684a9eedb3906439720598029a797b46e6"}, - {file = "regex-2023.8.8-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7ce606c14bb195b0e5108544b540e2c5faed6843367e4ab3deb5c6aa5e681208"}, - {file = "regex-2023.8.8-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:40f029d73b10fac448c73d6eb33d57b34607f40116e9f6e9f0d32e9229b147d7"}, - {file = "regex-2023.8.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3b8e6ea6be6d64104d8e9afc34c151926f8182f84e7ac290a93925c0db004bfd"}, - {file = "regex-2023.8.8-cp311-cp311-win32.whl", hash = "sha256:942f8b1f3b223638b02df7df79140646c03938d488fbfb771824f3d05fc083a8"}, - {file = "regex-2023.8.8-cp311-cp311-win_amd64.whl", hash = "sha256:51d8ea2a3a1a8fe4f67de21b8b93757005213e8ac3917567872f2865185fa7fb"}, - {file = "regex-2023.8.8-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e951d1a8e9963ea51efd7f150450803e3b95db5939f994ad3d5edac2b6f6e2b4"}, - {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:704f63b774218207b8ccc6c47fcef5340741e5d839d11d606f70af93ee78e4d4"}, - {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22283c769a7b01c8ac355d5be0715bf6929b6267619505e289f792b01304d898"}, - {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:91129ff1bb0619bc1f4ad19485718cc623a2dc433dff95baadbf89405c7f6b57"}, - {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de35342190deb7b866ad6ba5cbcccb2d22c0487ee0cbb251efef0843d705f0d4"}, - {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b993b6f524d1e274a5062488a43e3f9f8764ee9745ccd8e8193df743dbe5ee61"}, - {file = "regex-2023.8.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3026cbcf11d79095a32d9a13bbc572a458727bd5b1ca332df4a79faecd45281c"}, - {file = "regex-2023.8.8-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:293352710172239bf579c90a9864d0df57340b6fd21272345222fb6371bf82b3"}, - {file = "regex-2023.8.8-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:d909b5a3fff619dc7e48b6b1bedc2f30ec43033ba7af32f936c10839e81b9217"}, - {file = "regex-2023.8.8-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:3d370ff652323c5307d9c8e4c62efd1956fb08051b0e9210212bc51168b4ff56"}, - {file = "regex-2023.8.8-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:b076da1ed19dc37788f6a934c60adf97bd02c7eea461b73730513921a85d4235"}, - {file = "regex-2023.8.8-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:e9941a4ada58f6218694f382e43fdd256e97615db9da135e77359da257a7168b"}, - {file = "regex-2023.8.8-cp36-cp36m-win32.whl", hash = "sha256:a8c65c17aed7e15a0c824cdc63a6b104dfc530f6fa8cb6ac51c437af52b481c7"}, - {file = "regex-2023.8.8-cp36-cp36m-win_amd64.whl", hash = "sha256:aadf28046e77a72f30dcc1ab185639e8de7f4104b8cb5c6dfa5d8ed860e57236"}, - {file = "regex-2023.8.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:423adfa872b4908843ac3e7a30f957f5d5282944b81ca0a3b8a7ccbbfaa06103"}, - {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ae594c66f4a7e1ea67232a0846649a7c94c188d6c071ac0210c3e86a5f92109"}, - {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e51c80c168074faa793685656c38eb7a06cbad7774c8cbc3ea05552d615393d8"}, - {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:09b7f4c66aa9d1522b06e31a54f15581c37286237208df1345108fcf4e050c18"}, - {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e73e5243af12d9cd6a9d6a45a43570dbe2e5b1cdfc862f5ae2b031e44dd95a8"}, - {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:941460db8fe3bd613db52f05259c9336f5a47ccae7d7def44cc277184030a116"}, - {file = "regex-2023.8.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f0ccf3e01afeb412a1a9993049cb160d0352dba635bbca7762b2dc722aa5742a"}, - {file = "regex-2023.8.8-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:2e9216e0d2cdce7dbc9be48cb3eacb962740a09b011a116fd7af8c832ab116ca"}, - {file = "regex-2023.8.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:5cd9cd7170459b9223c5e592ac036e0704bee765706445c353d96f2890e816c8"}, - {file = "regex-2023.8.8-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:4873ef92e03a4309b3ccd8281454801b291b689f6ad45ef8c3658b6fa761d7ac"}, - {file = "regex-2023.8.8-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:239c3c2a339d3b3ddd51c2daef10874410917cd2b998f043c13e2084cb191684"}, - {file = "regex-2023.8.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1005c60ed7037be0d9dea1f9c53cc42f836188227366370867222bda4c3c6bd7"}, - {file = "regex-2023.8.8-cp37-cp37m-win32.whl", hash = "sha256:e6bd1e9b95bc5614a7a9c9c44fde9539cba1c823b43a9f7bc11266446dd568e3"}, - {file = "regex-2023.8.8-cp37-cp37m-win_amd64.whl", hash = "sha256:9a96edd79661e93327cfeac4edec72a4046e14550a1d22aa0dd2e3ca52aec921"}, - {file = "regex-2023.8.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f2181c20ef18747d5f4a7ea513e09ea03bdd50884a11ce46066bb90fe4213675"}, - {file = "regex-2023.8.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a2ad5add903eb7cdde2b7c64aaca405f3957ab34f16594d2b78d53b8b1a6a7d6"}, - {file = "regex-2023.8.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9233ac249b354c54146e392e8a451e465dd2d967fc773690811d3a8c240ac601"}, - {file = "regex-2023.8.8-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:920974009fb37b20d32afcdf0227a2e707eb83fe418713f7a8b7de038b870d0b"}, - {file = "regex-2023.8.8-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd2b6c5dfe0929b6c23dde9624483380b170b6e34ed79054ad131b20203a1a63"}, - {file = "regex-2023.8.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:96979d753b1dc3b2169003e1854dc67bfc86edf93c01e84757927f810b8c3c93"}, - {file = "regex-2023.8.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ae54a338191e1356253e7883d9d19f8679b6143703086245fb14d1f20196be9"}, - {file = "regex-2023.8.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2162ae2eb8b079622176a81b65d486ba50b888271302190870b8cc488587d280"}, - {file = "regex-2023.8.8-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c884d1a59e69e03b93cf0dfee8794c63d7de0ee8f7ffb76e5f75be8131b6400a"}, - {file = "regex-2023.8.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:cf9273e96f3ee2ac89ffcb17627a78f78e7516b08f94dc435844ae72576a276e"}, - {file = "regex-2023.8.8-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:83215147121e15d5f3a45d99abeed9cf1fe16869d5c233b08c56cdf75f43a504"}, - {file = "regex-2023.8.8-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:3f7454aa427b8ab9101f3787eb178057c5250478e39b99540cfc2b889c7d0586"}, - {file = "regex-2023.8.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f0640913d2c1044d97e30d7c41728195fc37e54d190c5385eacb52115127b882"}, - {file = "regex-2023.8.8-cp38-cp38-win32.whl", hash = "sha256:0c59122ceccb905a941fb23b087b8eafc5290bf983ebcb14d2301febcbe199c7"}, - {file = "regex-2023.8.8-cp38-cp38-win_amd64.whl", hash = "sha256:c12f6f67495ea05c3d542d119d270007090bad5b843f642d418eb601ec0fa7be"}, - {file = "regex-2023.8.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:82cd0a69cd28f6cc3789cc6adeb1027f79526b1ab50b1f6062bbc3a0ccb2dbc3"}, - {file = "regex-2023.8.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bb34d1605f96a245fc39790a117ac1bac8de84ab7691637b26ab2c5efb8f228c"}, - {file = "regex-2023.8.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:987b9ac04d0b38ef4f89fbc035e84a7efad9cdd5f1e29024f9289182c8d99e09"}, - {file = "regex-2023.8.8-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9dd6082f4e2aec9b6a0927202c85bc1b09dcab113f97265127c1dc20e2e32495"}, - {file = "regex-2023.8.8-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7eb95fe8222932c10d4436e7a6f7c99991e3fdd9f36c949eff16a69246dee2dc"}, - {file = "regex-2023.8.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7098c524ba9f20717a56a8d551d2ed491ea89cbf37e540759ed3b776a4f8d6eb"}, - {file = "regex-2023.8.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b694430b3f00eb02c594ff5a16db30e054c1b9589a043fe9174584c6efa8033"}, - {file = "regex-2023.8.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b2aeab3895d778155054abea5238d0eb9a72e9242bd4b43f42fd911ef9a13470"}, - {file = "regex-2023.8.8-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:988631b9d78b546e284478c2ec15c8a85960e262e247b35ca5eaf7ee22f6050a"}, - {file = "regex-2023.8.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:67ecd894e56a0c6108ec5ab1d8fa8418ec0cff45844a855966b875d1039a2e34"}, - {file = "regex-2023.8.8-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:14898830f0a0eb67cae2bbbc787c1a7d6e34ecc06fbd39d3af5fe29a4468e2c9"}, - {file = "regex-2023.8.8-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:f2200e00b62568cfd920127782c61bc1c546062a879cdc741cfcc6976668dfcf"}, - {file = "regex-2023.8.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9691a549c19c22d26a4f3b948071e93517bdf86e41b81d8c6ac8a964bb71e5a6"}, - {file = "regex-2023.8.8-cp39-cp39-win32.whl", hash = "sha256:6ab2ed84bf0137927846b37e882745a827458689eb969028af8032b1b3dac78e"}, - {file = "regex-2023.8.8-cp39-cp39-win_amd64.whl", hash = "sha256:5543c055d8ec7801901e1193a51570643d6a6ab8751b1f7dd9af71af467538bb"}, - {file = "regex-2023.8.8.tar.gz", hash = "sha256:fcbdc5f2b0f1cd0f6a56cdb46fe41d2cce1e644e3b68832f3eeebc5fb0f7712e"}, + {file = "regex-2024.5.15-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a81e3cfbae20378d75185171587cbf756015ccb14840702944f014e0d93ea09f"}, + {file = "regex-2024.5.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7b59138b219ffa8979013be7bc85bb60c6f7b7575df3d56dc1e403a438c7a3f6"}, + {file = "regex-2024.5.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0bd000c6e266927cb7a1bc39d55be95c4b4f65c5be53e659537537e019232b1"}, + {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5eaa7ddaf517aa095fa8da0b5015c44d03da83f5bd49c87961e3c997daed0de7"}, + {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba68168daedb2c0bab7fd7e00ced5ba90aebf91024dea3c88ad5063c2a562cca"}, + {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6e8d717bca3a6e2064fc3a08df5cbe366369f4b052dcd21b7416e6d71620dca1"}, + {file = "regex-2024.5.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1337b7dbef9b2f71121cdbf1e97e40de33ff114801263b275aafd75303bd62b5"}, + {file = "regex-2024.5.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9ebd0a36102fcad2f03696e8af4ae682793a5d30b46c647eaf280d6cfb32796"}, + {file = "regex-2024.5.15-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9efa1a32ad3a3ea112224897cdaeb6aa00381627f567179c0314f7b65d354c62"}, + {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1595f2d10dff3d805e054ebdc41c124753631b6a471b976963c7b28543cf13b0"}, + {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b802512f3e1f480f41ab5f2cfc0e2f761f08a1f41092d6718868082fc0d27143"}, + {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a0981022dccabca811e8171f913de05720590c915b033b7e601f35ce4ea7019f"}, + {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:19068a6a79cf99a19ccefa44610491e9ca02c2be3305c7760d3831d38a467a6f"}, + {file = "regex-2024.5.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1b5269484f6126eee5e687785e83c6b60aad7663dafe842b34691157e5083e53"}, + {file = "regex-2024.5.15-cp310-cp310-win32.whl", hash = "sha256:ada150c5adfa8fbcbf321c30c751dc67d2f12f15bd183ffe4ec7cde351d945b3"}, + {file = "regex-2024.5.15-cp310-cp310-win_amd64.whl", hash = "sha256:ac394ff680fc46b97487941f5e6ae49a9f30ea41c6c6804832063f14b2a5a145"}, + {file = "regex-2024.5.15-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f5b1dff3ad008dccf18e652283f5e5339d70bf8ba7c98bf848ac33db10f7bc7a"}, + {file = "regex-2024.5.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c6a2b494a76983df8e3d3feea9b9ffdd558b247e60b92f877f93a1ff43d26656"}, + {file = "regex-2024.5.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a32b96f15c8ab2e7d27655969a23895eb799de3665fa94349f3b2fbfd547236f"}, + {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10002e86e6068d9e1c91eae8295ef690f02f913c57db120b58fdd35a6bb1af35"}, + {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec54d5afa89c19c6dd8541a133be51ee1017a38b412b1321ccb8d6ddbeb4cf7d"}, + {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10e4ce0dca9ae7a66e6089bb29355d4432caed736acae36fef0fdd7879f0b0cb"}, + {file = "regex-2024.5.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e507ff1e74373c4d3038195fdd2af30d297b4f0950eeda6f515ae3d84a1770f"}, + {file = "regex-2024.5.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d1f059a4d795e646e1c37665b9d06062c62d0e8cc3c511fe01315973a6542e40"}, + {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0721931ad5fe0dda45d07f9820b90b2148ccdd8e45bb9e9b42a146cb4f695649"}, + {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:833616ddc75ad595dee848ad984d067f2f31be645d603e4d158bba656bbf516c"}, + {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:287eb7f54fc81546346207c533ad3c2c51a8d61075127d7f6d79aaf96cdee890"}, + {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:19dfb1c504781a136a80ecd1fff9f16dddf5bb43cec6871778c8a907a085bb3d"}, + {file = "regex-2024.5.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:119af6e56dce35e8dfb5222573b50c89e5508d94d55713c75126b753f834de68"}, + {file = "regex-2024.5.15-cp311-cp311-win32.whl", hash = "sha256:1c1c174d6ec38d6c8a7504087358ce9213d4332f6293a94fbf5249992ba54efa"}, + {file = "regex-2024.5.15-cp311-cp311-win_amd64.whl", hash = "sha256:9e717956dcfd656f5055cc70996ee2cc82ac5149517fc8e1b60261b907740201"}, + {file = "regex-2024.5.15-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:632b01153e5248c134007209b5c6348a544ce96c46005d8456de1d552455b014"}, + {file = "regex-2024.5.15-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e64198f6b856d48192bf921421fdd8ad8eb35e179086e99e99f711957ffedd6e"}, + {file = "regex-2024.5.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68811ab14087b2f6e0fc0c2bae9ad689ea3584cad6917fc57be6a48bbd012c49"}, + {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8ec0c2fea1e886a19c3bee0cd19d862b3aa75dcdfb42ebe8ed30708df64687a"}, + {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d0c0c0003c10f54a591d220997dd27d953cd9ccc1a7294b40a4be5312be8797b"}, + {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2431b9e263af1953c55abbd3e2efca67ca80a3de8a0437cb58e2421f8184717a"}, + {file = "regex-2024.5.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a605586358893b483976cffc1723fb0f83e526e8f14c6e6614e75919d9862cf"}, + {file = "regex-2024.5.15-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:391d7f7f1e409d192dba8bcd42d3e4cf9e598f3979cdaed6ab11288da88cb9f2"}, + {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9ff11639a8d98969c863d4617595eb5425fd12f7c5ef6621a4b74b71ed8726d5"}, + {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4eee78a04e6c67e8391edd4dad3279828dd66ac4b79570ec998e2155d2e59fd5"}, + {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8fe45aa3f4aa57faabbc9cb46a93363edd6197cbc43523daea044e9ff2fea83e"}, + {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:d0a3d8d6acf0c78a1fff0e210d224b821081330b8524e3e2bc5a68ef6ab5803d"}, + {file = "regex-2024.5.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c486b4106066d502495b3025a0a7251bf37ea9540433940a23419461ab9f2a80"}, + {file = "regex-2024.5.15-cp312-cp312-win32.whl", hash = "sha256:c49e15eac7c149f3670b3e27f1f28a2c1ddeccd3a2812cba953e01be2ab9b5fe"}, + {file = "regex-2024.5.15-cp312-cp312-win_amd64.whl", hash = "sha256:673b5a6da4557b975c6c90198588181029c60793835ce02f497ea817ff647cb2"}, + {file = "regex-2024.5.15-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:87e2a9c29e672fc65523fb47a90d429b70ef72b901b4e4b1bd42387caf0d6835"}, + {file = "regex-2024.5.15-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c3bea0ba8b73b71b37ac833a7f3fd53825924165da6a924aec78c13032f20850"}, + {file = "regex-2024.5.15-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:bfc4f82cabe54f1e7f206fd3d30fda143f84a63fe7d64a81558d6e5f2e5aaba9"}, + {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5bb9425fe881d578aeca0b2b4b3d314ec88738706f66f219c194d67179337cb"}, + {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64c65783e96e563103d641760664125e91bd85d8e49566ee560ded4da0d3e704"}, + {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cf2430df4148b08fb4324b848672514b1385ae3807651f3567871f130a728cc3"}, + {file = "regex-2024.5.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5397de3219a8b08ae9540c48f602996aa6b0b65d5a61683e233af8605c42b0f2"}, + {file = "regex-2024.5.15-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:455705d34b4154a80ead722f4f185b04c4237e8e8e33f265cd0798d0e44825fa"}, + {file = "regex-2024.5.15-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b2b6f1b3bb6f640c1a92be3bbfbcb18657b125b99ecf141fb3310b5282c7d4ed"}, + {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:3ad070b823ca5890cab606c940522d05d3d22395d432f4aaaf9d5b1653e47ced"}, + {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:5b5467acbfc153847d5adb21e21e29847bcb5870e65c94c9206d20eb4e99a384"}, + {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:e6662686aeb633ad65be2a42b4cb00178b3fbf7b91878f9446075c404ada552f"}, + {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:2b4c884767504c0e2401babe8b5b7aea9148680d2e157fa28f01529d1f7fcf67"}, + {file = "regex-2024.5.15-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:3cd7874d57f13bf70078f1ff02b8b0aa48d5b9ed25fc48547516c6aba36f5741"}, + {file = "regex-2024.5.15-cp38-cp38-win32.whl", hash = "sha256:e4682f5ba31f475d58884045c1a97a860a007d44938c4c0895f41d64481edbc9"}, + {file = "regex-2024.5.15-cp38-cp38-win_amd64.whl", hash = "sha256:d99ceffa25ac45d150e30bd9ed14ec6039f2aad0ffa6bb87a5936f5782fc1569"}, + {file = "regex-2024.5.15-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:13cdaf31bed30a1e1c2453ef6015aa0983e1366fad2667657dbcac7b02f67133"}, + {file = "regex-2024.5.15-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:cac27dcaa821ca271855a32188aa61d12decb6fe45ffe3e722401fe61e323cd1"}, + {file = "regex-2024.5.15-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7dbe2467273b875ea2de38ded4eba86cbcbc9a1a6d0aa11dcf7bd2e67859c435"}, + {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64f18a9a3513a99c4bef0e3efd4c4a5b11228b48aa80743be822b71e132ae4f5"}, + {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d347a741ea871c2e278fde6c48f85136c96b8659b632fb57a7d1ce1872547600"}, + {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1878b8301ed011704aea4c806a3cadbd76f84dece1ec09cc9e4dc934cfa5d4da"}, + {file = "regex-2024.5.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4babf07ad476aaf7830d77000874d7611704a7fcf68c9c2ad151f5d94ae4bfc4"}, + {file = "regex-2024.5.15-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35cb514e137cb3488bce23352af3e12fb0dbedd1ee6e60da053c69fb1b29cc6c"}, + {file = "regex-2024.5.15-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:cdd09d47c0b2efee9378679f8510ee6955d329424c659ab3c5e3a6edea696294"}, + {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:72d7a99cd6b8f958e85fc6ca5b37c4303294954eac1376535b03c2a43eb72629"}, + {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a094801d379ab20c2135529948cb84d417a2169b9bdceda2a36f5f10977ebc16"}, + {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c0c18345010870e58238790a6779a1219b4d97bd2e77e1140e8ee5d14df071aa"}, + {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:16093f563098448ff6b1fa68170e4acbef94e6b6a4e25e10eae8598bb1694b5d"}, + {file = "regex-2024.5.15-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e38a7d4e8f633a33b4c7350fbd8bad3b70bf81439ac67ac38916c4a86b465456"}, + {file = "regex-2024.5.15-cp39-cp39-win32.whl", hash = "sha256:71a455a3c584a88f654b64feccc1e25876066c4f5ef26cd6dd711308aa538694"}, + {file = "regex-2024.5.15-cp39-cp39-win_amd64.whl", hash = "sha256:cab12877a9bdafde5500206d1020a584355a97884dfd388af3699e9137bf7388"}, + {file = "regex-2024.5.15.tar.gz", hash = "sha256:d3ee02d9e5f482cc8309134a91eeaacbdd2261ba111b0fef3748eeb4913e6a2c"}, ] [[package]] name = "relative-to-now" version = "1.1.0" description = "Print a datetime's distance from now" -category = "main" optional = false python-versions = ">=3.7.2,<4.0.0" files = [ @@ -2662,14 +2549,13 @@ files = [ [[package]] name = "requests" -version = "2.31.0" +version = "2.32.3" description = "Python HTTP for Humans." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, ] [package.dependencies] @@ -2684,14 +2570,13 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "requests-oauthlib" -version = "1.3.1" +version = "2.0.0" description = "OAuthlib authentication support for Requests." -category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.4" files = [ - {file = "requests-oauthlib-1.3.1.tar.gz", hash = "sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"}, - {file = "requests_oauthlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5"}, + {file = "requests-oauthlib-2.0.0.tar.gz", hash = "sha256:b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9"}, + {file = "requests_oauthlib-2.0.0-py2.py3-none-any.whl", hash = "sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36"}, ] [package.dependencies] @@ -2703,53 +2588,51 @@ rsa = ["oauthlib[signedtoken] (>=3.0.0)"] [[package]] name = "ruff" -version = "0.0.289" -description = "An extremely fast Python linter, written in Rust." -category = "dev" +version = "0.5.4" +description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.0.289-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:c9a89d748e90c840bac9c37afe90cf13a5bfd460ca02ea93dad9d7bee3af03b4"}, - {file = "ruff-0.0.289-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:7f7396c6ea01ba332a6ad9d47642bac25d16bd2076aaa595b001f58b2f32ff05"}, - {file = "ruff-0.0.289-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7180de86c8ecd39624dec1699136f941c07e723201b4ce979bec9e7c67b40ad2"}, - {file = "ruff-0.0.289-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:73f37c65508203dd01a539926375a10243769c20d4fcab3fa6359cd3fbfc54b7"}, - {file = "ruff-0.0.289-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c14abcd7563b5c80be2dd809eeab20e4aa716bf849860b60a22d87ddf19eb88"}, - {file = "ruff-0.0.289-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:91b6d63b6b46d4707916472c91baa87aa0592e73f62a80ff55efdf6c0668cfd6"}, - {file = "ruff-0.0.289-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6479b8c4be3c36046c6c92054762b276fa0fddb03f6b9a310fbbf4c4951267fd"}, - {file = "ruff-0.0.289-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c5424318c254bcb091cb67e140ec9b9f7122074e100b06236f252923fb41e767"}, - {file = "ruff-0.0.289-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4daa90865796aedcedf0d8897fdd4cd09bf0ddd3504529a4ccf211edcaff3c7d"}, - {file = "ruff-0.0.289-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:8057e8ab0016c13b9419bad119e854f881e687bd96bc5e2d52c8baac0f278a44"}, - {file = "ruff-0.0.289-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7eebfab2e6a6991908ff1bf82f2dc1e5095fc7e316848e62124526837b445f4d"}, - {file = "ruff-0.0.289-py3-none-musllinux_1_2_i686.whl", hash = "sha256:ebc7af550018001a7fb39ca22cdce20e1a0de4388ea4a007eb5c822f6188c297"}, - {file = "ruff-0.0.289-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:6e4e6eccb753efe760ba354fc8e9f783f6bba71aa9f592756f5bd0d78db898ed"}, - {file = "ruff-0.0.289-py3-none-win32.whl", hash = "sha256:bbb3044f931c09cf17dbe5b339896eece0d6ac10c9a86e172540fcdb1974f2b7"}, - {file = "ruff-0.0.289-py3-none-win_amd64.whl", hash = "sha256:6d043c5456b792be2615a52f16056c3cf6c40506ce1f2d6f9d3083cfcb9eeab6"}, - {file = "ruff-0.0.289-py3-none-win_arm64.whl", hash = "sha256:04a720bcca5e987426bb14ad8b9c6f55e259ea774da1cbeafe71569744cfd20a"}, - {file = "ruff-0.0.289.tar.gz", hash = "sha256:2513f853b0fc42f0339b7ab0d2751b63ce7a50a0032d2689b54b2931b3b866d7"}, + {file = "ruff-0.5.4-py3-none-linux_armv6l.whl", hash = "sha256:82acef724fc639699b4d3177ed5cc14c2a5aacd92edd578a9e846d5b5ec18ddf"}, + {file = "ruff-0.5.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:da62e87637c8838b325e65beee485f71eb36202ce8e3cdbc24b9fcb8b99a37be"}, + {file = "ruff-0.5.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e98ad088edfe2f3b85a925ee96da652028f093d6b9b56b76fc242d8abb8e2059"}, + {file = "ruff-0.5.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c55efbecc3152d614cfe6c2247a3054cfe358cefbf794f8c79c8575456efe19"}, + {file = "ruff-0.5.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f9b85eaa1f653abd0a70603b8b7008d9e00c9fa1bbd0bf40dad3f0c0bdd06793"}, + {file = "ruff-0.5.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0cf497a47751be8c883059c4613ba2f50dd06ec672692de2811f039432875278"}, + {file = "ruff-0.5.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:09c14ed6a72af9ccc8d2e313d7acf7037f0faff43cde4b507e66f14e812e37f7"}, + {file = "ruff-0.5.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:628f6b8f97b8bad2490240aa84f3e68f390e13fabc9af5c0d3b96b485921cd60"}, + {file = "ruff-0.5.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3520a00c0563d7a7a7c324ad7e2cde2355733dafa9592c671fb2e9e3cd8194c1"}, + {file = "ruff-0.5.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93789f14ca2244fb91ed481456f6d0bb8af1f75a330e133b67d08f06ad85b516"}, + {file = "ruff-0.5.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:029454e2824eafa25b9df46882f7f7844d36fd8ce51c1b7f6d97e2615a57bbcc"}, + {file = "ruff-0.5.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:9492320eed573a13a0bc09a2957f17aa733fff9ce5bf00e66e6d4a88ec33813f"}, + {file = "ruff-0.5.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a6e1f62a92c645e2919b65c02e79d1f61e78a58eddaebca6c23659e7c7cb4ac7"}, + {file = "ruff-0.5.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:768fa9208df2bec4b2ce61dbc7c2ddd6b1be9fb48f1f8d3b78b3332c7d71c1ff"}, + {file = "ruff-0.5.4-py3-none-win32.whl", hash = "sha256:e1e7393e9c56128e870b233c82ceb42164966f25b30f68acbb24ed69ce9c3a4e"}, + {file = "ruff-0.5.4-py3-none-win_amd64.whl", hash = "sha256:58b54459221fd3f661a7329f177f091eb35cf7a603f01d9eb3eb11cc348d38c4"}, + {file = "ruff-0.5.4-py3-none-win_arm64.whl", hash = "sha256:bd53da65f1085fb5b307c38fd3c0829e76acf7b2a912d8d79cadcdb4875c1eb7"}, + {file = "ruff-0.5.4.tar.gz", hash = "sha256:2795726d5f71c4f4e70653273d1c23a8182f07dd8e48c12de5d867bfb7557eed"}, ] [[package]] name = "setuptools" -version = "68.2.2" +version = "71.1.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, - {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, + {file = "setuptools-71.1.0-py3-none-any.whl", hash = "sha256:33874fdc59b3188304b2e7c80d9029097ea31627180896fb549c578ceb8a0855"}, + {file = "setuptools-71.1.0.tar.gz", hash = "sha256:032d42ee9fb536e33087fb66cac5f840eb9391ed05637b3f2a76a7c8fb477936"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "ordered-set (>=3.1.1)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.11.*)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (<0.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -2761,7 +2644,6 @@ files = [ name = "soupsieve" version = "2.5" description = "A modern CSS selector implementation for Beautiful Soup." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2771,62 +2653,34 @@ files = [ [[package]] name = "sqlalchemy" -version = "2.0.20" +version = "2.0.31" description = "Database Abstraction Library" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "SQLAlchemy-2.0.20-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:759b51346aa388c2e606ee206c0bc6f15a5299f6174d1e10cadbe4530d3c7a98"}, - {file = "SQLAlchemy-2.0.20-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1506e988ebeaaf316f183da601f24eedd7452e163010ea63dbe52dc91c7fc70e"}, - {file = "SQLAlchemy-2.0.20-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5768c268df78bacbde166b48be788b83dddaa2a5974b8810af422ddfe68a9bc8"}, - {file = "SQLAlchemy-2.0.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3f0dd6d15b6dc8b28a838a5c48ced7455c3e1fb47b89da9c79cc2090b072a50"}, - {file = "SQLAlchemy-2.0.20-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:243d0fb261f80a26774829bc2cee71df3222587ac789b7eaf6555c5b15651eed"}, - {file = "SQLAlchemy-2.0.20-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6eb6d77c31e1bf4268b4d61b549c341cbff9842f8e115ba6904249c20cb78a61"}, - {file = "SQLAlchemy-2.0.20-cp310-cp310-win32.whl", hash = "sha256:bcb04441f370cbe6e37c2b8d79e4af9e4789f626c595899d94abebe8b38f9a4d"}, - {file = "SQLAlchemy-2.0.20-cp310-cp310-win_amd64.whl", hash = "sha256:d32b5ffef6c5bcb452723a496bad2d4c52b346240c59b3e6dba279f6dcc06c14"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dd81466bdbc82b060c3c110b2937ab65ace41dfa7b18681fdfad2f37f27acdd7"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6fe7d61dc71119e21ddb0094ee994418c12f68c61b3d263ebaae50ea8399c4d4"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4e571af672e1bb710b3cc1a9794b55bce1eae5aed41a608c0401885e3491179"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3364b7066b3c7f4437dd345d47271f1251e0cfb0aba67e785343cdbdb0fff08c"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1be86ccea0c965a1e8cd6ccf6884b924c319fcc85765f16c69f1ae7148eba64b"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1d35d49a972649b5080557c603110620a86aa11db350d7a7cb0f0a3f611948a0"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-win32.whl", hash = "sha256:27d554ef5d12501898d88d255c54eef8414576f34672e02fe96d75908993cf53"}, - {file = "SQLAlchemy-2.0.20-cp311-cp311-win_amd64.whl", hash = "sha256:411e7f140200c02c4b953b3dbd08351c9f9818d2bd591b56d0fa0716bd014f1e"}, - {file = "SQLAlchemy-2.0.20-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3c6aceebbc47db04f2d779db03afeaa2c73ea3f8dcd3987eb9efdb987ffa09a3"}, - {file = "SQLAlchemy-2.0.20-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d3f175410a6db0ad96b10bfbb0a5530ecd4fcf1e2b5d83d968dd64791f810ed"}, - {file = "SQLAlchemy-2.0.20-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea8186be85da6587456c9ddc7bf480ebad1a0e6dcbad3967c4821233a4d4df57"}, - {file = "SQLAlchemy-2.0.20-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c3d99ba99007dab8233f635c32b5cd24fb1df8d64e17bc7df136cedbea427897"}, - {file = "SQLAlchemy-2.0.20-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:76fdfc0f6f5341987474ff48e7a66c3cd2b8a71ddda01fa82fedb180b961630a"}, - {file = "SQLAlchemy-2.0.20-cp37-cp37m-win32.whl", hash = "sha256:d3793dcf5bc4d74ae1e9db15121250c2da476e1af8e45a1d9a52b1513a393459"}, - {file = "SQLAlchemy-2.0.20-cp37-cp37m-win_amd64.whl", hash = "sha256:79fde625a0a55220d3624e64101ed68a059c1c1f126c74f08a42097a72ff66a9"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:599ccd23a7146e126be1c7632d1d47847fa9f333104d03325c4e15440fc7d927"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1a58052b5a93425f656675673ef1f7e005a3b72e3f2c91b8acca1b27ccadf5f4"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79543f945be7a5ada9943d555cf9b1531cfea49241809dd1183701f94a748624"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63e73da7fb030ae0a46a9ffbeef7e892f5def4baf8064786d040d45c1d6d1dc5"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3ce5e81b800a8afc870bb8e0a275d81957e16f8c4b62415a7b386f29a0cb9763"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:cb0d3e94c2a84215532d9bcf10229476ffd3b08f481c53754113b794afb62d14"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-win32.whl", hash = "sha256:8dd77fd6648b677d7742d2c3cc105a66e2681cc5e5fb247b88c7a7b78351cf74"}, - {file = "SQLAlchemy-2.0.20-cp38-cp38-win_amd64.whl", hash = "sha256:6f8a934f9dfdf762c844e5164046a9cea25fabbc9ec865c023fe7f300f11ca4a"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:26a3399eaf65e9ab2690c07bd5cf898b639e76903e0abad096cd609233ce5208"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4cde2e1096cbb3e62002efdb7050113aa5f01718035ba9f29f9d89c3758e7e4e"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1b09ba72e4e6d341bb5bdd3564f1cea6095d4c3632e45dc69375a1dbe4e26ec"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b74eeafaa11372627ce94e4dc88a6751b2b4d263015b3523e2b1e57291102f0"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:77d37c1b4e64c926fa3de23e8244b964aab92963d0f74d98cbc0783a9e04f501"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:eefebcc5c555803065128401a1e224a64607259b5eb907021bf9b175f315d2a6"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-win32.whl", hash = "sha256:3423dc2a3b94125094897118b52bdf4d37daf142cbcf26d48af284b763ab90e9"}, - {file = "SQLAlchemy-2.0.20-cp39-cp39-win_amd64.whl", hash = "sha256:5ed61e3463021763b853628aef8bc5d469fe12d95f82c74ef605049d810f3267"}, - {file = "SQLAlchemy-2.0.20-py3-none-any.whl", hash = "sha256:63a368231c53c93e2b67d0c5556a9836fdcd383f7e3026a39602aad775b14acf"}, - {file = "SQLAlchemy-2.0.20.tar.gz", hash = "sha256:ca8a5ff2aa7f3ade6c498aaafce25b1eaeabe4e42b73e25519183e4566a16fc6"}, -] - -[package.dependencies] -greenlet = {version = "!=0.4.17", markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\""} -typing-extensions = ">=4.2.0" + {file = "SQLAlchemy-2.0.31-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f68470edd70c3ac3b6cd5c2a22a8daf18415203ca1b036aaeb9b0fb6f54e8298"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2e2c38c2a4c5c634fe6c3c58a789712719fa1bf9b9d6ff5ebfce9a9e5b89c1ca"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-win32.whl", hash = "sha256:6e2622844551945db81c26a02f27d94145b561f9d4b0c39ce7bfd2fda5776dac"}, + {file = "SQLAlchemy-2.0.31-cp311-cp311-win_amd64.whl", hash = "sha256:ccaf1b0c90435b6e430f5dd30a5aede4764942a695552eb3a4ab74ed63c5b8d3"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3b74570d99126992d4b0f91fb87c586a574a5872651185de8297c6f90055ae42"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f77c4f042ad493cb8595e2f503c7a4fe44cd7bd59c7582fd6d78d7e7b8ec52c"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-win32.whl", hash = "sha256:0b0f658414ee4e4b8cbcd4a9bb0fd743c5eeb81fc858ca517217a8013d282c96"}, + {file = "SQLAlchemy-2.0.31-cp312-cp312-win_amd64.whl", hash = "sha256:fa4b1af3e619b5b0b435e333f3967612db06351217c58bfb50cee5f003db2a5a"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-win32.whl", hash = "sha256:501ff052229cb79dd4c49c402f6cb03b5a40ae4771efc8bb2bfac9f6c3d3508f"}, + {file = "SQLAlchemy-2.0.31-cp37-cp37m-win_amd64.whl", hash = "sha256:597fec37c382a5442ffd471f66ce12d07d91b281fd474289356b1a0041bdf31d"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-win32.whl", hash = "sha256:c76c81c52e1e08f12f4b6a07af2b96b9b15ea67ccdd40ae17019f1c373faa227"}, + {file = "SQLAlchemy-2.0.31-cp38-cp38-win_amd64.whl", hash = "sha256:4b600e9a212ed59355813becbcf282cfda5c93678e15c25a0ef896b354423238"}, + {file = "SQLAlchemy-2.0.31.tar.gz", hash = "sha256:b607489dd4a54de56984a0c7656247504bd5523d9d0ba799aef59d4add009484"}, +] + +[package.dependencies] +greenlet = {version = "!=0.4.17", markers = "python_version < \"3.13\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"} +typing-extensions = ">=4.6.0" [package.extras] aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] -aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing-extensions (!=3.10.0.1)"] +aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] asyncio = ["greenlet (!=0.4.17)"] asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"] @@ -2836,7 +2690,7 @@ mssql-pyodbc = ["pyodbc"] mypy = ["mypy (>=0.910)"] mysql = ["mysqlclient (>=1.4.0)"] mysql-connector = ["mysql-connector-python"] -oracle = ["cx-oracle (>=7)"] +oracle = ["cx_oracle (>=8)"] oracle-oracledb = ["oracledb (>=1.0.1)"] postgresql = ["psycopg2 (>=2.7)"] postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] @@ -2846,18 +2700,17 @@ postgresql-psycopg2binary = ["psycopg2-binary"] postgresql-psycopg2cffi = ["psycopg2cffi"] postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] pymysql = ["pymysql"] -sqlcipher = ["sqlcipher3-binary"] +sqlcipher = ["sqlcipher3_binary"] [[package]] name = "sqlalchemy-utils" -version = "0.41.1" +version = "0.41.2" description = "Various utility functions for SQLAlchemy." -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "SQLAlchemy-Utils-0.41.1.tar.gz", hash = "sha256:a2181bff01eeb84479e38571d2c0718eb52042f9afd8c194d0d02877e84b7d74"}, - {file = "SQLAlchemy_Utils-0.41.1-py3-none-any.whl", hash = "sha256:6c96b0768ea3f15c0dc56b363d386138c562752b84f647fb8d31a2223aaab801"}, + {file = "SQLAlchemy-Utils-0.41.2.tar.gz", hash = "sha256:bc599c8c3b3319e53ce6c5c3c471120bd325d0071fb6f38a10e924e3d07b9990"}, + {file = "SQLAlchemy_Utils-0.41.2-py3-none-any.whl", hash = "sha256:85cf3842da2bf060760f955f8467b87983fb2e30f1764fd0e24a48307dc8ec6e"}, ] [package.dependencies] @@ -2872,31 +2725,15 @@ intervals = ["intervals (>=0.7.1)"] password = ["passlib (>=1.6,<2.0)"] pendulum = ["pendulum (>=2.0.5)"] phone = ["phonenumbers (>=5.9.2)"] -test = ["Jinja2 (>=2.3)", "Pygments (>=1.2)", "backports.zoneinfo", "docutils (>=0.10)", "flake8 (>=2.4.0)", "flexmock (>=0.9.7)", "isort (>=4.2.2)", "pg8000 (>=1.12.4)", "psycopg (>=3.1.8)", "psycopg2 (>=2.5.1)", "psycopg2cffi (>=2.8.1)", "pymysql", "pyodbc", "pytest (>=2.7.1)", "python-dateutil (>=2.6)", "pytz (>=2014.2)"] -test-all = ["Babel (>=1.3)", "Jinja2 (>=2.3)", "Pygments (>=1.2)", "arrow (>=0.3.4)", "backports.zoneinfo", "colour (>=0.0.4)", "cryptography (>=0.6)", "docutils (>=0.10)", "flake8 (>=2.4.0)", "flexmock (>=0.9.7)", "furl (>=0.4.1)", "intervals (>=0.7.1)", "isort (>=4.2.2)", "passlib (>=1.6,<2.0)", "pendulum (>=2.0.5)", "pg8000 (>=1.12.4)", "phonenumbers (>=5.9.2)", "psycopg (>=3.1.8)", "psycopg2 (>=2.5.1)", "psycopg2cffi (>=2.8.1)", "pymysql", "pyodbc", "pytest (>=2.7.1)", "python-dateutil", "python-dateutil (>=2.6)", "pytz (>=2014.2)"] +test = ["Jinja2 (>=2.3)", "Pygments (>=1.2)", "backports.zoneinfo", "docutils (>=0.10)", "flake8 (>=2.4.0)", "flexmock (>=0.9.7)", "isort (>=4.2.2)", "pg8000 (>=1.12.4)", "psycopg (>=3.1.8)", "psycopg2 (>=2.5.1)", "psycopg2cffi (>=2.8.1)", "pymysql", "pyodbc", "pytest (==7.4.4)", "python-dateutil (>=2.6)", "pytz (>=2014.2)"] +test-all = ["Babel (>=1.3)", "Jinja2 (>=2.3)", "Pygments (>=1.2)", "arrow (>=0.3.4)", "backports.zoneinfo", "colour (>=0.0.4)", "cryptography (>=0.6)", "docutils (>=0.10)", "flake8 (>=2.4.0)", "flexmock (>=0.9.7)", "furl (>=0.4.1)", "intervals (>=0.7.1)", "isort (>=4.2.2)", "passlib (>=1.6,<2.0)", "pendulum (>=2.0.5)", "pg8000 (>=1.12.4)", "phonenumbers (>=5.9.2)", "psycopg (>=3.1.8)", "psycopg2 (>=2.5.1)", "psycopg2cffi (>=2.8.1)", "pymysql", "pyodbc", "pytest (==7.4.4)", "python-dateutil", "python-dateutil (>=2.6)", "pytz (>=2014.2)"] timezone = ["python-dateutil"] url = ["furl (>=0.4.1)"] -[[package]] -name = "sqlalchemy2-stubs" -version = "0.0.2a35" -description = "Typing Stubs for SQLAlchemy 1.4" -category = "main" -optional = false -python-versions = ">=3.6" -files = [ - {file = "sqlalchemy2-stubs-0.0.2a35.tar.gz", hash = "sha256:bd5d530697d7e8c8504c7fe792ef334538392a5fb7aa7e4f670bfacdd668a19d"}, - {file = "sqlalchemy2_stubs-0.0.2a35-py3-none-any.whl", hash = "sha256:593784ff9fc0dc2ded1895e3322591689db3be06f3ca006e3ef47640baf2d38a"}, -] - -[package.dependencies] -typing-extensions = ">=3.7.4" - [[package]] name = "supervisor" version = "4.2.5" description = "A system for controlling process state under UNIX" -category = "main" optional = false python-versions = "*" files = [ @@ -2914,7 +2751,6 @@ testing = ["pytest", "pytest-cov"] name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" -category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -2926,7 +2762,6 @@ files = [ name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2936,54 +2771,51 @@ files = [ [[package]] name = "tomlkit" -version = "0.12.1" +version = "0.13.0" description = "Style preserving TOML library" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tomlkit-0.12.1-py3-none-any.whl", hash = "sha256:712cbd236609acc6a3e2e97253dfc52d4c2082982a88f61b640ecf0817eab899"}, - {file = "tomlkit-0.12.1.tar.gz", hash = "sha256:38e1ff8edb991273ec9f6181244a6a391ac30e9f5098e7535640ea6be97a7c86"}, + {file = "tomlkit-0.13.0-py3-none-any.whl", hash = "sha256:7075d3042d03b80f603482d69bf0c8f345c2b30e41699fd8883227f89972b264"}, + {file = "tomlkit-0.13.0.tar.gz", hash = "sha256:08ad192699734149f5b97b45f1f18dad7eb1b6d16bc72ad0c2335772650d7b72"}, ] [[package]] name = "tox" -version = "4.11.3" +version = "4.16.0" description = "tox is a generic virtualenv management and test command line tool" -category = "dev" optional = false python-versions = ">=3.8" files = [ - {file = "tox-4.11.3-py3-none-any.whl", hash = "sha256:599af5e5bb0cad0148ac1558a0b66f8fff219ef88363483b8d92a81e4246f28f"}, - {file = "tox-4.11.3.tar.gz", hash = "sha256:5039f68276461fae6a9452a3b2c7295798f00a0e92edcd9a3b78ba1a73577951"}, + {file = "tox-4.16.0-py3-none-any.whl", hash = "sha256:61e101061b977b46cf00093d4319438055290ad0009f84497a07bf2d2d7a06d0"}, + {file = "tox-4.16.0.tar.gz", hash = "sha256:43499656f9949edb681c0f907f86fbfee98677af9919d8b11ae5ad77cb800748"}, ] [package.dependencies] -cachetools = ">=5.3.1" +cachetools = ">=5.3.3" chardet = ">=5.2" colorama = ">=0.4.6" -filelock = ">=3.12.3" -packaging = ">=23.1" -platformdirs = ">=3.10" -pluggy = ">=1.3" -pyproject-api = ">=1.6.1" +filelock = ">=3.15.4" +packaging = ">=24.1" +platformdirs = ">=4.2.2" +pluggy = ">=1.5" +pyproject-api = ">=1.7.1" tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} -virtualenv = ">=20.24.3" +virtualenv = ">=20.26.3" [package.extras] -docs = ["furo (>=2023.8.19)", "sphinx (>=7.2.4)", "sphinx-argparse-cli (>=1.11.1)", "sphinx-autodoc-typehints (>=1.24)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -testing = ["build[virtualenv] (>=0.10)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.1.1)", "devpi-process (>=1)", "diff-cover (>=7.7)", "distlib (>=0.3.7)", "flaky (>=3.7)", "hatch-vcs (>=0.3)", "hatchling (>=1.18)", "psutil (>=5.9.5)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)", "pytest-xdist (>=3.3.1)", "re-assert (>=1.1)", "time-machine (>=2.12)", "wheel (>=0.41.2)"] +docs = ["furo (>=2024.5.6)", "sphinx (>=7.3.7)", "sphinx-argparse-cli (>=1.16)", "sphinx-autodoc-typehints (>=2.2.2)", "sphinx-copybutton (>=0.5.2)", "sphinx-inline-tabs (>=2023.4.21)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.11)"] +testing = ["build[virtualenv] (>=1.2.1)", "covdefaults (>=2.3)", "detect-test-pollution (>=1.2)", "devpi-process (>=1)", "diff-cover (>=9.1)", "distlib (>=0.3.8)", "flaky (>=3.8.1)", "hatch-vcs (>=0.4)", "hatchling (>=1.25)", "psutil (>=6)", "pytest (>=8.2.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-xdist (>=3.6.1)", "re-assert (>=1.1)", "setuptools (>=70.2)", "time-machine (>=2.14.2)", "wheel (>=0.43)"] [[package]] name = "tqdm" -version = "4.66.1" +version = "4.66.4" description = "Fast, Extensible Progress Meter" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "tqdm-4.66.1-py3-none-any.whl", hash = "sha256:d302b3c5b53d47bce91fea46679d9c3c6508cf6332229aa1e7d8653723793386"}, - {file = "tqdm-4.66.1.tar.gz", hash = "sha256:d88e651f9db8d8551a62556d3cff9e3034274ca5d66e93197cf2490e2dcb69c7"}, + {file = "tqdm-4.66.4-py3-none-any.whl", hash = "sha256:b75ca56b413b030bc3f00af51fd2c1a1a5eac6a0c1cca83cbb37a5c52abce644"}, + {file = "tqdm-4.66.4.tar.gz", hash = "sha256:e4d936c9de8727928f3be6079590e97d9abfe8d39a590be678eb5919ffc186bb"}, ] [package.dependencies] @@ -2996,71 +2828,28 @@ slack = ["slack-sdk"] telegram = ["requests"] [[package]] -name = "types-click" -version = "7.1.8" -description = "Typing stubs for click" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "types-click-7.1.8.tar.gz", hash = "sha256:b6604968be6401dc516311ca50708a0a28baa7a0cb840efd7412f0dbbff4e092"}, - {file = "types_click-7.1.8-py3-none-any.whl", hash = "sha256:8cb030a669e2e927461be9827375f83c16b8178c365852c060a34e24871e7e81"}, -] - -[[package]] -name = "types-flask" -version = "1.1.6" -description = "Typing stubs for Flask" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "types-Flask-1.1.6.tar.gz", hash = "sha256:aac777b3abfff9436e6b01f6d08171cf23ea6e5be71cbf773aaabb1c5763e9cf"}, - {file = "types_Flask-1.1.6-py3-none-any.whl", hash = "sha256:6ab8a9a5e258b76539d652f6341408867298550b19b81f0e41e916825fc39087"}, -] - -[package.dependencies] -types-click = "*" -types-Jinja2 = "*" -types-Werkzeug = "*" - -[[package]] -name = "types-jinja2" -version = "2.11.9" -description = "Typing stubs for Jinja2" -category = "dev" +name = "types-cffi" +version = "1.16.0.20240331" +description = "Typing stubs for cffi" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "types-Jinja2-2.11.9.tar.gz", hash = "sha256:dbdc74a40aba7aed520b7e4d89e8f0fe4286518494208b35123bcf084d4b8c81"}, - {file = "types_Jinja2-2.11.9-py3-none-any.whl", hash = "sha256:60a1e21e8296979db32f9374d8a239af4cb541ff66447bb915d8ad398f9c63b2"}, + {file = "types-cffi-1.16.0.20240331.tar.gz", hash = "sha256:b8b20d23a2b89cfed5f8c5bc53b0cb8677c3aac6d970dbc771e28b9c698f5dee"}, + {file = "types_cffi-1.16.0.20240331-py3-none-any.whl", hash = "sha256:a363e5ea54a4eb6a4a105d800685fde596bc318089b025b27dee09849fe41ff0"}, ] [package.dependencies] -types-MarkupSafe = "*" - -[[package]] -name = "types-markupsafe" -version = "1.1.10" -description = "Typing stubs for MarkupSafe" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "types-MarkupSafe-1.1.10.tar.gz", hash = "sha256:85b3a872683d02aea3a5ac2a8ef590193c344092032f58457287fbf8e06711b1"}, - {file = "types_MarkupSafe-1.1.10-py3-none-any.whl", hash = "sha256:ca2bee0f4faafc45250602567ef38d533e877d2ddca13003b319c551ff5b3cc5"}, -] +types-setuptools = "*" [[package]] name = "types-paramiko" -version = "2.12.0.3" +version = "3.4.0.20240423" description = "Typing stubs for paramiko" -category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "types-paramiko-2.12.0.3.tar.gz", hash = "sha256:3a79232382bcc7ed140f53d865feaec35188fd2ee105efdbf325200736e01aa2"}, - {file = "types_paramiko-2.12.0.3-py3-none-any.whl", hash = "sha256:a8b224e8a93cc0ffb60f67516890e49977ea0d3f5811c605238e71d9c49a152d"}, + {file = "types-paramiko-3.4.0.20240423.tar.gz", hash = "sha256:aaa98dda232c47886563d66743d3a8b66c432790c596bc3bdd3f17f91be2a8c1"}, + {file = "types_paramiko-3.4.0.20240423-py3-none-any.whl", hash = "sha256:c56e0d43399a1b909901b1e0375e0ff6ee62e16cd6e00695024abc2e9fe02035"}, ] [package.dependencies] @@ -3068,41 +2857,39 @@ cryptography = ">=37.0.0" [[package]] name = "types-pyopenssl" -version = "23.2.0.2" +version = "24.1.0.20240722" description = "Typing stubs for pyOpenSSL" -category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "types-pyOpenSSL-23.2.0.2.tar.gz", hash = "sha256:6a010dac9ecd42b582d7dd2cc3e9e40486b79b3b64bb2fffba1474ff96af906d"}, - {file = "types_pyOpenSSL-23.2.0.2-py3-none-any.whl", hash = "sha256:19536aa3debfbe25a918cf0d898e9f5fbbe6f3594a429da7914bf331deb1b342"}, + {file = "types-pyOpenSSL-24.1.0.20240722.tar.gz", hash = "sha256:47913b4678a01d879f503a12044468221ed8576263c1540dcb0484ca21b08c39"}, + {file = "types_pyOpenSSL-24.1.0.20240722-py3-none-any.whl", hash = "sha256:6a7a5d2ec042537934cfb4c9d4deb0e16c4c6250b09358df1f083682fe6fda54"}, ] [package.dependencies] cryptography = ">=35.0.0" +types-cffi = "*" [[package]] name = "types-python-dateutil" -version = "2.8.19.14" +version = "2.9.0.20240316" description = "Typing stubs for python-dateutil" -category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "types-python-dateutil-2.8.19.14.tar.gz", hash = "sha256:1f4f10ac98bb8b16ade9dbee3518d9ace017821d94b057a425b069f834737f4b"}, - {file = "types_python_dateutil-2.8.19.14-py3-none-any.whl", hash = "sha256:f977b8de27787639986b4e28963263fd0e5158942b3ecef91b9335c130cb1ce9"}, + {file = "types-python-dateutil-2.9.0.20240316.tar.gz", hash = "sha256:5d2f2e240b86905e40944dd787db6da9263f0deabef1076ddaed797351ec0202"}, + {file = "types_python_dateutil-2.9.0.20240316-py3-none-any.whl", hash = "sha256:6b8cb66d960771ce5ff974e9dd45e38facb81718cc1e208b10b1baccbfdbee3b"}, ] [[package]] name = "types-redis" -version = "4.6.0.6" +version = "4.6.0.20240425" description = "Typing stubs for redis" -category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "types-redis-4.6.0.6.tar.gz", hash = "sha256:7865a843802937ab2ddca33579c4e255bfe73f87af85824ead7a6729ba92fc52"}, - {file = "types_redis-4.6.0.6-py3-none-any.whl", hash = "sha256:e0e9dcc530623db3a41ec058ccefdcd5c7582557f02ab5f7aa9a27fe10a78d7e"}, + {file = "types-redis-4.6.0.20240425.tar.gz", hash = "sha256:9402a10ee931d241fdfcc04592ebf7a661d7bb92a8dea631279f0d8acbcf3a22"}, + {file = "types_redis-4.6.0.20240425-py3-none-any.whl", hash = "sha256:ac5bc19e8f5997b9e76ad5d9cf15d0392d9f28cf5fc7746ea4a64b989c45c6a8"}, ] [package.dependencies] @@ -3111,130 +2898,109 @@ types-pyOpenSSL = "*" [[package]] name = "types-requests" -version = "2.31.0.2" +version = "2.32.0.20240712" description = "Typing stubs for requests" -category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "types-requests-2.31.0.2.tar.gz", hash = "sha256:6aa3f7faf0ea52d728bb18c0a0d1522d9bfd8c72d26ff6f61bfc3d06a411cf40"}, - {file = "types_requests-2.31.0.2-py3-none-any.whl", hash = "sha256:56d181c85b5925cbc59f4489a57e72a8b2166f18273fd8ba7b6fe0c0b986f12a"}, + {file = "types-requests-2.32.0.20240712.tar.gz", hash = "sha256:90c079ff05e549f6bf50e02e910210b98b8ff1ebdd18e19c873cd237737c1358"}, + {file = "types_requests-2.32.0.20240712-py3-none-any.whl", hash = "sha256:f754283e152c752e46e70942fa2a146b5bc70393522257bb85bd1ef7e019dcc3"}, ] [package.dependencies] -types-urllib3 = "*" - -[[package]] -name = "types-urllib3" -version = "1.26.25.14" -description = "Typing stubs for urllib3" -category = "dev" -optional = false -python-versions = "*" -files = [ - {file = "types-urllib3-1.26.25.14.tar.gz", hash = "sha256:229b7f577c951b8c1b92c1bc2b2fdb0b49847bd2af6d1cc2a2e3dd340f3bda8f"}, - {file = "types_urllib3-1.26.25.14-py3-none-any.whl", hash = "sha256:9683bbb7fb72e32bfe9d2be6e04875fbe1b3eeec3cbb4ea231435aa7fd6b4f0e"}, -] +urllib3 = ">=2" [[package]] -name = "types-werkzeug" -version = "1.0.9" -description = "Typing stubs for Werkzeug" -category = "dev" +name = "types-setuptools" +version = "71.1.0.20240723" +description = "Typing stubs for setuptools" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "types-Werkzeug-1.0.9.tar.gz", hash = "sha256:5cc269604c400133d452a40cee6397655f878fc460e03fde291b9e3a5eaa518c"}, - {file = "types_Werkzeug-1.0.9-py3-none-any.whl", hash = "sha256:194bd5715a13c598f05c63e8a739328657590943bce941e8a3619a6b5d4a54ec"}, + {file = "types-setuptools-71.1.0.20240723.tar.gz", hash = "sha256:8a9349038c7e22d88e6c5d9c6705b347b22930424114a452c1712899e85131ff"}, + {file = "types_setuptools-71.1.0.20240723-py3-none-any.whl", hash = "sha256:ac9fc263f59d1e02bca49cb7270a12c47ab80b3b911fb4d92f1fecf978bfe88a"}, ] [[package]] name = "typing-extensions" -version = "4.8.0" +version = "4.12.2" description = "Backported and Experimental Type Hints for Python 3.8+" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"}, - {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"}, + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] [[package]] name = "tzdata" -version = "2023.3" +version = "2024.1" description = "Provider of IANA time zone data" -category = "main" optional = false python-versions = ">=2" files = [ - {file = "tzdata-2023.3-py2.py3-none-any.whl", hash = "sha256:7e65763eef3120314099b6939b5546db7adce1e7d6f2e179e3df563c70511eda"}, - {file = "tzdata-2023.3.tar.gz", hash = "sha256:11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a"}, + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, ] [[package]] name = "tzlocal" -version = "5.0.1" +version = "5.2" description = "tzinfo object for the local timezone" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tzlocal-5.0.1-py3-none-any.whl", hash = "sha256:f3596e180296aaf2dbd97d124fe76ae3a0e3d32b258447de7b939b3fd4be992f"}, - {file = "tzlocal-5.0.1.tar.gz", hash = "sha256:46eb99ad4bdb71f3f72b7d24f4267753e240944ecfc16f25d2719ba89827a803"}, + {file = "tzlocal-5.2-py3-none-any.whl", hash = "sha256:49816ef2fe65ea8ac19d19aa7a1ae0551c834303d5014c6d5a62e4cbda8047b8"}, + {file = "tzlocal-5.2.tar.gz", hash = "sha256:8d399205578f1a9342816409cc1e46a93ebd5755e39ea2d85334bea911bf0e6e"}, ] [package.dependencies] -"backports.zoneinfo" = {version = "*", markers = "python_version < \"3.9\""} tzdata = {version = "*", markers = "platform_system == \"Windows\""} [package.extras] -devenv = ["black", "check-manifest", "flake8", "pyroma", "pytest (>=4.3)", "pytest-cov", "pytest-mock (>=3.3)", "zest.releaser"] +devenv = ["check-manifest", "pytest (>=4.3)", "pytest-cov", "pytest-mock (>=3.3)", "zest.releaser"] [[package]] name = "urllib3" -version = "2.0.4" +version = "2.2.2" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "urllib3-2.0.4-py3-none-any.whl", hash = "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"}, - {file = "urllib3-2.0.4.tar.gz", hash = "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11"}, + {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, + {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, ] [package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.24.5" +version = "20.26.3" description = "Virtual Python Environment builder" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "virtualenv-20.24.5-py3-none-any.whl", hash = "sha256:b80039f280f4919c77b30f1c23294ae357c4c8701042086e3fc005963e4e537b"}, - {file = "virtualenv-20.24.5.tar.gz", hash = "sha256:e8361967f6da6fbdf1426483bfe9fca8287c242ac0bc30429905721cefbff752"}, + {file = "virtualenv-20.26.3-py3-none-any.whl", hash = "sha256:8cc4a31139e796e9a7de2cd5cf2489de1217193116a8fd42328f1bd65f434589"}, + {file = "virtualenv-20.26.3.tar.gz", hash = "sha256:4c43a2a236279d9ea36a0d76f98d84bd6ca94ac4e0f4a3b9d46d05e10fea542a"}, ] [package.dependencies] distlib = ">=0.3.7,<1" filelock = ">=3.12.2,<4" -platformdirs = ">=3.9.1,<4" +platformdirs = ">=3.9.1,<5" [package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"] [[package]] name = "webassets" version = "2.0" description = "Media asset management for Python, with glue code for various web frameworks" -category = "main" optional = false python-versions = "*" files = [ @@ -3246,7 +3012,6 @@ files = [ name = "webassets-rollup" version = "1.0.0" description = "Rollup filter for webassets" -category = "main" optional = false python-versions = "*" files = [ @@ -3258,14 +3023,13 @@ webassets = "*" [[package]] name = "werkzeug" -version = "2.3.7" +version = "3.0.3" description = "The comprehensive WSGI web application library." -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "werkzeug-2.3.7-py3-none-any.whl", hash = "sha256:effc12dba7f3bd72e605ce49807bbe692bd729c3bb122a3b91747a6ae77df528"}, - {file = "werkzeug-2.3.7.tar.gz", hash = "sha256:2b8c0e447b4b9dbcc85dd97b6eeb4dcbaf6c8b6c3be0bd654e25553e0a2157d8"}, + {file = "werkzeug-3.0.3-py3-none-any.whl", hash = "sha256:fc9645dc43e03e4d630d23143a04a7f947a9a3b5727cd535fdfe155a17cc48c8"}, + {file = "werkzeug-3.0.3.tar.gz", hash = "sha256:097e5bfda9f0aba8da6b8545146def481d06aa7d3266e7448e2cccf67dd8bd18"}, ] [package.dependencies] @@ -3276,29 +3040,27 @@ watchdog = ["watchdog (>=2.3)"] [[package]] name = "whitenoise" -version = "6.5.0" +version = "6.7.0" description = "Radically simplified static file serving for WSGI applications" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "whitenoise-6.5.0-py3-none-any.whl", hash = "sha256:16468e9ad2189f09f4a8c635a9031cc9bb2cdbc8e5e53365407acf99f7ade9ec"}, - {file = "whitenoise-6.5.0.tar.gz", hash = "sha256:15fe60546ac975b58e357ccaeb165a4ca2d0ab697e48450b8f0307ca368195a8"}, + {file = "whitenoise-6.7.0-py3-none-any.whl", hash = "sha256:a1ae85e01fdc9815d12fa33f17765bc132ed2c54fa76daf9e39e879dd93566f6"}, + {file = "whitenoise-6.7.0.tar.gz", hash = "sha256:58c7a6cd811e275a6c91af22e96e87da0b1109e9a53bb7464116ef4c963bf636"}, ] [package.extras] -brotli = ["Brotli"] +brotli = ["brotli"] [[package]] name = "xmlschema" -version = "2.4.0" +version = "2.5.1" description = "An XML Schema validator and decoder" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "xmlschema-2.4.0-py3-none-any.whl", hash = "sha256:dc87be0caaa61f42649899189aab2fd8e0d567f2cf548433ba7b79278d231a4a"}, - {file = "xmlschema-2.4.0.tar.gz", hash = "sha256:d74cd0c10866ac609e1ef94a5a69b018ad16e39077bc6393408b40c6babee793"}, + {file = "xmlschema-2.5.1-py3-none-any.whl", hash = "sha256:ec2b2a15c8896c1fcd14dcee34ca30032b99456c3c43ce793fdb9dca2fb4b869"}, + {file = "xmlschema-2.5.1.tar.gz", hash = "sha256:4f7497de6c8b6dc2c28ad7b9ed6e21d186f4afe248a5bea4f54eedab4da44083"}, ] [package.dependencies] @@ -3311,51 +3073,78 @@ docs = ["Sphinx", "elementpath (>=4.1.5,<5.0.0)", "jinja2", "sphinx-rtd-theme"] [[package]] name = "xmlsec" -version = "1.3.13" +version = "1.3.14" description = "Python bindings for the XML Security Library" -category = "main" optional = false python-versions = ">=3.5" files = [ - {file = "xmlsec-1.3.13-cp310-cp310-win32.whl", hash = "sha256:2174e8c88555383322d8b7d3927490a92ef72ad72a6ddaf4fa1b96a3f27c3e90"}, - {file = "xmlsec-1.3.13-cp310-cp310-win_amd64.whl", hash = "sha256:46d1daf16a8f4430efca5bb9c6a15776f2671f69f48a1941d6bb335e6f8cb29d"}, - {file = "xmlsec-1.3.13-cp35-cp35m-win32.whl", hash = "sha256:d47062c42775a025aa94fb8b15de97c1db86e301e549d3168157e0b1223d51b1"}, - {file = "xmlsec-1.3.13-cp35-cp35m-win_amd64.whl", hash = "sha256:7c7e8ef52688ddaf5b66750cc8d901f61716f46727014ff012f41d8858cedeb0"}, - {file = "xmlsec-1.3.13-cp36-cp36m-win32.whl", hash = "sha256:1725d70ee2bb2cd8dd66c7a7451be02bb59dc8280103db4f68e731f00135b1e0"}, - {file = "xmlsec-1.3.13-cp36-cp36m-win_amd64.whl", hash = "sha256:1f8c41162152d7086fd459926e61bc7cb2d52ffc829e760bf8b2c221a645d568"}, - {file = "xmlsec-1.3.13-cp37-cp37m-win32.whl", hash = "sha256:ff1c61f296e75cba5bac802d0000bfde09143eed946ced1a5162211867c335f8"}, - {file = "xmlsec-1.3.13-cp37-cp37m-win_amd64.whl", hash = "sha256:d249c0a2bf3ff13a231bca6a588e7d276b3f1e2cf09316b542f470a63855799e"}, - {file = "xmlsec-1.3.13-cp38-cp38-win32.whl", hash = "sha256:56cfcf3487b6ad269eb1fb543c04dee2c101f1bc91e06d6cf7bfab9ac486efd8"}, - {file = "xmlsec-1.3.13-cp38-cp38-win_amd64.whl", hash = "sha256:e6626bece0e97a8598b5df28c27bc6f2ae1e97d29dca3c1a4910a7598a4d1d0f"}, - {file = "xmlsec-1.3.13-cp39-cp39-win32.whl", hash = "sha256:091f23765729df6f3b3a55c8a6a96f9c713fa86e76b86a19cdb756aaa6dc0646"}, - {file = "xmlsec-1.3.13-cp39-cp39-win_amd64.whl", hash = "sha256:5162f416179350587c4ff64737af68a846a9b86f95fd465df4e68b589ce56618"}, - {file = "xmlsec-1.3.13.tar.gz", hash = "sha256:916f5d78e8041f6cd9391abba659da8c94a4fef7196d126d40af1ff417f2cf86"}, + {file = "xmlsec-1.3.14-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4dea6df3ffcb65d0b215678c3a0fe7bbc66785d6eae81291296e372498bad43a"}, + {file = "xmlsec-1.3.14-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1fa1311f7489d050dde9028f5a2b5849c2927bb09c9a93491cb2f28fdc563912"}, + {file = "xmlsec-1.3.14-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28cd9f513cf01dc0c5b9d9f0728714ecde2e7f46b3b6f63de91f4ae32f3008b3"}, + {file = "xmlsec-1.3.14-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:77749b338503fb6e151052c664064b34264f4168e2cb0cca1de78b7e5312a783"}, + {file = "xmlsec-1.3.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4af81ce8044862ec865782efd353d22abdcd95b92364eef3c934de57ae6d5852"}, + {file = "xmlsec-1.3.14-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:cf35a25be3eb6263b2e0544ba26294651113fab79064f994d347a2ca5973e8e2"}, + {file = "xmlsec-1.3.14-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:004e8a82e26728bf8a60f8ece1ef3ffafdac30ef538139dfe28870e8503ca64a"}, + {file = "xmlsec-1.3.14-cp310-cp310-win32.whl", hash = "sha256:e6cbc914d77678db0c8bc39e723d994174633d18f9d6be4665ec29cce978a96d"}, + {file = "xmlsec-1.3.14-cp310-cp310-win_amd64.whl", hash = "sha256:4922afa9234d1c5763950b26c328a5320019e55eb6000272a79dfe54fee8e704"}, + {file = "xmlsec-1.3.14-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7799a9ff3593f9dd43464e18b1a621640bffc40456c47c23383727f937dca7fc"}, + {file = "xmlsec-1.3.14-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1fe23c2dd5f5dbcb24f40e2c1061e2672a32aabee7cf8ac5337036a485607d72"}, + {file = "xmlsec-1.3.14-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0be3b7a28e54a03b87faf07fb3c6dc3e50a2c79b686718c3ad08300b8bf6bb67"}, + {file = "xmlsec-1.3.14-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48e894ad3e7de373f56efc09d6a56f7eae73a8dd4cec8943313134849e9c6607"}, + {file = "xmlsec-1.3.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:204d3c586b8bd6f02a5d4c59850a8157205569d40c32567f49576fa5795d897d"}, + {file = "xmlsec-1.3.14-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6679cec780386d848e7351d4b0de92c4483289ea4f0a2187e216159f939a4c6b"}, + {file = "xmlsec-1.3.14-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c4d41c83c8a2b8d8030204391ebeb6174fbdb044f0331653c4b5a4ce4150bcc0"}, + {file = "xmlsec-1.3.14-cp311-cp311-win32.whl", hash = "sha256:df4aa0782a53032fd35e18dcd6d328d6126324bfcfdef0cb5c2856f25b4b6f94"}, + {file = "xmlsec-1.3.14-cp311-cp311-win_amd64.whl", hash = "sha256:1072878301cb9243a54679e0520e6a5be2266c07a28b0ecef9e029d05a90ffcd"}, + {file = "xmlsec-1.3.14-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1eb3dcf244a52f796377112d8f238dbb522eb87facffb498425dc8582a84a6bf"}, + {file = "xmlsec-1.3.14-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:330147ce59fbe56a9be5b2085d739c55a569f112576b3f1b33681f87416eaf33"}, + {file = "xmlsec-1.3.14-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed4034939d8566ccdcd3b4e4f23c63fd807fb8763ae5668d59a19e11640a8242"}, + {file = "xmlsec-1.3.14-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a98eadfcb0c3b23ccceb7a2f245811f8d784bd287640dcfe696a26b9db1e2fc0"}, + {file = "xmlsec-1.3.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86ff7b2711557c1087b72b0a1a88d82eafbf2a6d38b97309a6f7101d4a7041c3"}, + {file = "xmlsec-1.3.14-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:774d5d1e45f07f953c1cc14fd055c1063f0725f7248b6b0e681f59fd8638934d"}, + {file = "xmlsec-1.3.14-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bd10ca3201f164482775a7ce61bf7ee9aade2e7d032046044dd0f6f52c91d79d"}, + {file = "xmlsec-1.3.14-cp312-cp312-win32.whl", hash = "sha256:19c86bab1498e4c2e56d8e2c878f461ccb6e56b67fd7522b0c8fda46d8910781"}, + {file = "xmlsec-1.3.14-cp312-cp312-win_amd64.whl", hash = "sha256:d0762f4232bce2c7f6c0af329db8b821b4460bbe123a2528fb5677d03db7a4b5"}, + {file = "xmlsec-1.3.14-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:03ccba7dacf197850de954666af0221c740a5de631a80136362a1559223fab75"}, + {file = "xmlsec-1.3.14-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c12900e1903e289deb84eb893dca88591d6884d3e3cda4fb711b8812118416e8"}, + {file = "xmlsec-1.3.14-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6566434e2e5c58e472362a6187f208601f1627a148683a6f92bd16479f1d9e20"}, + {file = "xmlsec-1.3.14-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:2401e162aaab7d9416c3405bac7a270e5f370988a0f1f46f0f29b735edba87e1"}, + {file = "xmlsec-1.3.14-cp36-cp36m-win32.whl", hash = "sha256:ba3b39c493e3b04354615068a3218f30897fcc2f42c6d8986d0c1d63aca87782"}, + {file = "xmlsec-1.3.14-cp36-cp36m-win_amd64.whl", hash = "sha256:4edd8db4df04bbac9c4a5ab4af855b74fe2bf2c248d07cac2e6d92a485f1a685"}, + {file = "xmlsec-1.3.14-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b6dd86f440fec9242515c64f0be93fec8b4289287db1f6de2651eee9995aaecb"}, + {file = "xmlsec-1.3.14-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad1634cabe0915fe2a12e142db0ed2daf5be80cbe3891a2cecbba0750195cc6b"}, + {file = "xmlsec-1.3.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dba457ff87c39cbae3c5020475a728d24bbd9d00376df9af9724cd3bb59ff07a"}, + {file = "xmlsec-1.3.14-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:12d90059308bb0c1b94bde065784e6852999d08b91bcb2048c17e62b954acb07"}, + {file = "xmlsec-1.3.14-cp37-cp37m-win32.whl", hash = "sha256:ce4e165a1436697e5e39587c4fba24db4545a5c9801e0d749f1afd09ad3ab901"}, + {file = "xmlsec-1.3.14-cp37-cp37m-win_amd64.whl", hash = "sha256:7e8e0171916026cbe8e2022c959558d02086655fd3c3466f2bc0451b09cf9ee8"}, + {file = "xmlsec-1.3.14-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c42735cc68fdb4c6065cf0a0701dfff3a12a1734c63a36376349af9a5481f27b"}, + {file = "xmlsec-1.3.14-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:38e035bf48300b7dbde2dd01d3b8569f8584fc9c73809be13886e6b6c77b74fb"}, + {file = "xmlsec-1.3.14-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:73eabf5ef58189d81655058cf328c1dfa9893d89f1bff5fc941481f08533f338"}, + {file = "xmlsec-1.3.14-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bddd2a2328b4e08c8a112e06cf2cd2b4d281f4ad94df15b4cef18f06cdc49d78"}, + {file = "xmlsec-1.3.14-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57fed3bc7943681c9ed4d2221600ab440f060d8d1a8f92f346f2b41effe175b8"}, + {file = "xmlsec-1.3.14-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:147934bd39dfd840663fb6b920ea9201455fa886427975713f1b42d9f20b9b29"}, + {file = "xmlsec-1.3.14-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e732a75fcb6b84872b168f972fbbf3749baf76308635f14015d1d35ed0c5719c"}, + {file = "xmlsec-1.3.14-cp38-cp38-win32.whl", hash = "sha256:b109cdf717257fd4daa77c1d3ec8a3fb2a81318a6d06a36c55a8a53ae381ae5e"}, + {file = "xmlsec-1.3.14-cp38-cp38-win_amd64.whl", hash = "sha256:b7ba2ea38e3d9efa520b14f3c0b7d99a7c055244ae5ba8bc9f4ca73b18f3a215"}, + {file = "xmlsec-1.3.14-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1b9b5de6bc69fdec23147e5f712cb05dc86df105462f254f140d743cc680cc7b"}, + {file = "xmlsec-1.3.14-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:82ac81deb7d7bf5cc8a748148948e5df5386597ff43fb92ec651cc5c7addb0e7"}, + {file = "xmlsec-1.3.14-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bae37b2920115cf00759ee9fb7841cbdebcef3a8a92734ab93ae8fa41ac581d"}, + {file = "xmlsec-1.3.14-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4fac2a787ae3b9fb761f9aec6b9f10f2d1c1b87abb574ebd8ff68435bdc97e3d"}, + {file = "xmlsec-1.3.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34c61ec0c0e70fda710290ae74b9efe1928d9242ed82c4eecf97aa696cff68e6"}, + {file = "xmlsec-1.3.14-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:995e87acecc263a2f6f2aa3cc204268f651cac8f4d7a2047f11b2cd49979cc38"}, + {file = "xmlsec-1.3.14-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2f84a1c509c52773365645a87949081ee9ea9c535cd452048cc8ca4ad3b45666"}, + {file = "xmlsec-1.3.14-cp39-cp39-win32.whl", hash = "sha256:7882963e9cb9c0bd0e8c2715a29159a366417ff4a30d8baf42b05bc5cf249446"}, + {file = "xmlsec-1.3.14-cp39-cp39-win_amd64.whl", hash = "sha256:a487c3d144f791c32f5e560aa27a705fba23171728b8a8511f36de053ff6bc93"}, + {file = "xmlsec-1.3.14.tar.gz", hash = "sha256:934f804f2f895bcdb86f1eaee236b661013560ee69ec108d29cdd6e5f292a2d9"}, ] [package.dependencies] lxml = ">=3.8" -[[package]] -name = "zipp" -version = "3.16.2" -description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" -optional = false -python-versions = ">=3.8" -files = [ - {file = "zipp-3.16.2-py3-none-any.whl", hash = "sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0"}, - {file = "zipp-3.16.2.tar.gz", hash = "sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"}, -] - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"] - [[package]] name = "zope-event" version = "5.0" description = "Very basic event publishing system" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3372,53 +3161,170 @@ test = ["zope.testrunner"] [[package]] name = "zope-interface" -version = "6.0" +version = "6.4.post2" description = "Interfaces for Python" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "zope.interface-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f299c020c6679cb389814a3b81200fe55d428012c5e76da7e722491f5d205990"}, - {file = "zope.interface-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ee4b43f35f5dc15e1fec55ccb53c130adb1d11e8ad8263d68b1284b66a04190d"}, - {file = "zope.interface-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a158846d0fca0a908c1afb281ddba88744d403f2550dc34405c3691769cdd85"}, - {file = "zope.interface-6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f72f23bab1848edb7472309e9898603141644faec9fd57a823ea6b4d1c4c8995"}, - {file = "zope.interface-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48f4d38cf4b462e75fac78b6f11ad47b06b1c568eb59896db5b6ec1094eb467f"}, - {file = "zope.interface-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:87b690bbee9876163210fd3f500ee59f5803e4a6607d1b1238833b8885ebd410"}, - {file = "zope.interface-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f2363e5fd81afb650085c6686f2ee3706975c54f331b426800b53531191fdf28"}, - {file = "zope.interface-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:af169ba897692e9cd984a81cb0f02e46dacdc07d6cf9fd5c91e81f8efaf93d52"}, - {file = "zope.interface-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fa90bac61c9dc3e1a563e5babb3fd2c0c1c80567e815442ddbe561eadc803b30"}, - {file = "zope.interface-6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:89086c9d3490a0f265a3c4b794037a84541ff5ffa28bb9c24cc9f66566968464"}, - {file = "zope.interface-6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:809fe3bf1a91393abc7e92d607976bbb8586512913a79f2bf7d7ec15bd8ea518"}, - {file = "zope.interface-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:0ec9653825f837fbddc4e4b603d90269b501486c11800d7c761eee7ce46d1bbb"}, - {file = "zope.interface-6.0-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:790c1d9d8f9c92819c31ea660cd43c3d5451df1df61e2e814a6f99cebb292788"}, - {file = "zope.interface-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b39b8711578dcfd45fc0140993403b8a81e879ec25d53189f3faa1f006087dca"}, - {file = "zope.interface-6.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eba51599370c87088d8882ab74f637de0c4f04a6d08a312dce49368ba9ed5c2a"}, - {file = "zope.interface-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ee934f023f875ec2cfd2b05a937bd817efcc6c4c3f55c5778cbf78e58362ddc"}, - {file = "zope.interface-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:042f2381118b093714081fd82c98e3b189b68db38ee7d35b63c327c470ef8373"}, - {file = "zope.interface-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:dfbbbf0809a3606046a41f8561c3eada9db811be94138f42d9135a5c47e75f6f"}, - {file = "zope.interface-6.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:424d23b97fa1542d7be882eae0c0fc3d6827784105264a8169a26ce16db260d8"}, - {file = "zope.interface-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e538f2d4a6ffb6edfb303ce70ae7e88629ac6e5581870e66c306d9ad7b564a58"}, - {file = "zope.interface-6.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12175ca6b4db7621aedd7c30aa7cfa0a2d65ea3a0105393e05482d7a2d367446"}, - {file = "zope.interface-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c3d7dfd897a588ec27e391edbe3dd320a03684457470415870254e714126b1f"}, - {file = "zope.interface-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:b3f543ae9d3408549a9900720f18c0194ac0fe810cecda2a584fd4dca2eb3bb8"}, - {file = "zope.interface-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d0583b75f2e70ec93f100931660328965bb9ff65ae54695fb3fa0a1255daa6f2"}, - {file = "zope.interface-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:23ac41d52fd15dd8be77e3257bc51bbb82469cf7f5e9a30b75e903e21439d16c"}, - {file = "zope.interface-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99856d6c98a326abbcc2363827e16bd6044f70f2ef42f453c0bd5440c4ce24e5"}, - {file = "zope.interface-6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1592f68ae11e557b9ff2bc96ac8fc30b187e77c45a3c9cd876e3368c53dc5ba8"}, - {file = "zope.interface-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4407b1435572e3e1610797c9203ad2753666c62883b921318c5403fb7139dec2"}, - {file = "zope.interface-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:5171eb073474a5038321409a630904fd61f12dd1856dd7e9d19cd6fe092cbbc5"}, - {file = "zope.interface-6.0.tar.gz", hash = "sha256:aab584725afd10c710b8f1e6e208dbee2d0ad009f57d674cb9d1b3964037275d"}, + {file = "zope.interface-6.4.post2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2eccd5bef45883802848f821d940367c1d0ad588de71e5cabe3813175444202c"}, + {file = "zope.interface-6.4.post2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:762e616199f6319bb98e7f4f27d254c84c5fb1c25c908c2a9d0f92b92fb27530"}, + {file = "zope.interface-6.4.post2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ef8356f16b1a83609f7a992a6e33d792bb5eff2370712c9eaae0d02e1924341"}, + {file = "zope.interface-6.4.post2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e4fa5d34d7973e6b0efa46fe4405090f3b406f64b6290facbb19dcbf642ad6b"}, + {file = "zope.interface-6.4.post2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d22fce0b0f5715cdac082e35a9e735a1752dc8585f005d045abb1a7c20e197f9"}, + {file = "zope.interface-6.4.post2-cp310-cp310-win_amd64.whl", hash = "sha256:97e615eab34bd8477c3f34197a17ce08c648d38467489359cb9eb7394f1083f7"}, + {file = "zope.interface-6.4.post2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:599f3b07bde2627e163ce484d5497a54a0a8437779362395c6b25e68c6590ede"}, + {file = "zope.interface-6.4.post2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:136cacdde1a2c5e5bc3d0b2a1beed733f97e2dad8c2ad3c2e17116f6590a3827"}, + {file = "zope.interface-6.4.post2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47937cf2e7ed4e0e37f7851c76edeb8543ec9b0eae149b36ecd26176ff1ca874"}, + {file = "zope.interface-6.4.post2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f0a6be264afb094975b5ef55c911379d6989caa87c4e558814ec4f5125cfa2e"}, + {file = "zope.interface-6.4.post2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47654177e675bafdf4e4738ce58cdc5c6d6ee2157ac0a78a3fa460942b9d64a8"}, + {file = "zope.interface-6.4.post2-cp311-cp311-win_amd64.whl", hash = "sha256:e2fb8e8158306567a3a9a41670c1ff99d0567d7fc96fa93b7abf8b519a46b250"}, + {file = "zope.interface-6.4.post2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b912750b13d76af8aac45ddf4679535def304b2a48a07989ec736508d0bbfbde"}, + {file = "zope.interface-6.4.post2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4ac46298e0143d91e4644a27a769d1388d5d89e82ee0cf37bf2b0b001b9712a4"}, + {file = "zope.interface-6.4.post2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86a94af4a88110ed4bb8961f5ac72edf782958e665d5bfceaab6bf388420a78b"}, + {file = "zope.interface-6.4.post2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:73f9752cf3596771c7726f7eea5b9e634ad47c6d863043589a1c3bb31325c7eb"}, + {file = "zope.interface-6.4.post2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00b5c3e9744dcdc9e84c24ed6646d5cf0cf66551347b310b3ffd70f056535854"}, + {file = "zope.interface-6.4.post2-cp312-cp312-win_amd64.whl", hash = "sha256:551db2fe892fcbefb38f6f81ffa62de11090c8119fd4e66a60f3adff70751ec7"}, + {file = "zope.interface-6.4.post2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96ac6b3169940a8cd57b4f2b8edcad8f5213b60efcd197d59fbe52f0accd66e"}, + {file = "zope.interface-6.4.post2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cebff2fe5dc82cb22122e4e1225e00a4a506b1a16fafa911142ee124febf2c9e"}, + {file = "zope.interface-6.4.post2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33ee982237cffaf946db365c3a6ebaa37855d8e3ca5800f6f48890209c1cfefc"}, + {file = "zope.interface-6.4.post2-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:fbf649bc77510ef2521cf797700b96167bb77838c40780da7ea3edd8b78044d1"}, + {file = "zope.interface-6.4.post2-cp37-cp37m-win_amd64.whl", hash = "sha256:4c0b208a5d6c81434bdfa0f06d9b667e5de15af84d8cae5723c3a33ba6611b82"}, + {file = "zope.interface-6.4.post2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d3fe667935e9562407c2511570dca14604a654988a13d8725667e95161d92e9b"}, + {file = "zope.interface-6.4.post2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a96e6d4074db29b152222c34d7eec2e2db2f92638d2b2b2c704f9e8db3ae0edc"}, + {file = "zope.interface-6.4.post2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:866a0f583be79f0def667a5d2c60b7b4cc68f0c0a470f227e1122691b443c934"}, + {file = "zope.interface-6.4.post2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5fe919027f29b12f7a2562ba0daf3e045cb388f844e022552a5674fcdf5d21f1"}, + {file = "zope.interface-6.4.post2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e0343a6e06d94f6b6ac52fbc75269b41dd3c57066541a6c76517f69fe67cb43"}, + {file = "zope.interface-6.4.post2-cp38-cp38-win_amd64.whl", hash = "sha256:dabb70a6e3d9c22df50e08dc55b14ca2a99da95a2d941954255ac76fd6982bc5"}, + {file = "zope.interface-6.4.post2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:706efc19f9679a1b425d6fa2b4bc770d976d0984335eaea0869bd32f627591d2"}, + {file = "zope.interface-6.4.post2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3d136e5b8821073e1a09dde3eb076ea9988e7010c54ffe4d39701adf0c303438"}, + {file = "zope.interface-6.4.post2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1730c93a38b5a18d24549bc81613223962a19d457cfda9bdc66e542f475a36f4"}, + {file = "zope.interface-6.4.post2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bc2676312cc3468a25aac001ec727168994ea3b69b48914944a44c6a0b251e79"}, + {file = "zope.interface-6.4.post2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a62fd6cd518693568e23e02f41816adedfca637f26716837681c90b36af3671"}, + {file = "zope.interface-6.4.post2-cp39-cp39-win_amd64.whl", hash = "sha256:d3f7e001328bd6466b3414215f66dde3c7c13d8025a9c160a75d7b2687090d15"}, + {file = "zope.interface-6.4.post2.tar.gz", hash = "sha256:1c207e6f6dfd5749a26f5a5fd966602d6b824ec00d2df84a7e9a924e8933654e"}, ] [package.dependencies] setuptools = "*" [package.extras] -docs = ["Sphinx", "repoze.sphinx.autointerface"] +docs = ["Sphinx", "repoze.sphinx.autointerface", "sphinx-rtd-theme"] test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] +[[package]] +name = "zstandard" +version = "0.23.0" +description = "Zstandard bindings for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "zstandard-0.23.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bf0a05b6059c0528477fba9054d09179beb63744355cab9f38059548fedd46a9"}, + {file = "zstandard-0.23.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fc9ca1c9718cb3b06634c7c8dec57d24e9438b2aa9a0f02b8bb36bf478538880"}, + {file = "zstandard-0.23.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77da4c6bfa20dd5ea25cbf12c76f181a8e8cd7ea231c673828d0386b1740b8dc"}, + {file = "zstandard-0.23.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2170c7e0367dde86a2647ed5b6f57394ea7f53545746104c6b09fc1f4223573"}, + {file = "zstandard-0.23.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c16842b846a8d2a145223f520b7e18b57c8f476924bda92aeee3a88d11cfc391"}, + {file = "zstandard-0.23.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:157e89ceb4054029a289fb504c98c6a9fe8010f1680de0201b3eb5dc20aa6d9e"}, + {file = "zstandard-0.23.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:203d236f4c94cd8379d1ea61db2fce20730b4c38d7f1c34506a31b34edc87bdd"}, + {file = "zstandard-0.23.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:dc5d1a49d3f8262be192589a4b72f0d03b72dcf46c51ad5852a4fdc67be7b9e4"}, + {file = "zstandard-0.23.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:752bf8a74412b9892f4e5b58f2f890a039f57037f52c89a740757ebd807f33ea"}, + {file = "zstandard-0.23.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80080816b4f52a9d886e67f1f96912891074903238fe54f2de8b786f86baded2"}, + {file = "zstandard-0.23.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:84433dddea68571a6d6bd4fbf8ff398236031149116a7fff6f777ff95cad3df9"}, + {file = "zstandard-0.23.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ab19a2d91963ed9e42b4e8d77cd847ae8381576585bad79dbd0a8837a9f6620a"}, + {file = "zstandard-0.23.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:59556bf80a7094d0cfb9f5e50bb2db27fefb75d5138bb16fb052b61b0e0eeeb0"}, + {file = "zstandard-0.23.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:27d3ef2252d2e62476389ca8f9b0cf2bbafb082a3b6bfe9d90cbcbb5529ecf7c"}, + {file = "zstandard-0.23.0-cp310-cp310-win32.whl", hash = "sha256:5d41d5e025f1e0bccae4928981e71b2334c60f580bdc8345f824e7c0a4c2a813"}, + {file = "zstandard-0.23.0-cp310-cp310-win_amd64.whl", hash = "sha256:519fbf169dfac1222a76ba8861ef4ac7f0530c35dd79ba5727014613f91613d4"}, + {file = "zstandard-0.23.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:34895a41273ad33347b2fc70e1bff4240556de3c46c6ea430a7ed91f9042aa4e"}, + {file = "zstandard-0.23.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:77ea385f7dd5b5676d7fd943292ffa18fbf5c72ba98f7d09fc1fb9e819b34c23"}, + {file = "zstandard-0.23.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:983b6efd649723474f29ed42e1467f90a35a74793437d0bc64a5bf482bedfa0a"}, + {file = "zstandard-0.23.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80a539906390591dd39ebb8d773771dc4db82ace6372c4d41e2d293f8e32b8db"}, + {file = "zstandard-0.23.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:445e4cb5048b04e90ce96a79b4b63140e3f4ab5f662321975679b5f6360b90e2"}, + {file = "zstandard-0.23.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd30d9c67d13d891f2360b2a120186729c111238ac63b43dbd37a5a40670b8ca"}, + {file = "zstandard-0.23.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d20fd853fbb5807c8e84c136c278827b6167ded66c72ec6f9a14b863d809211c"}, + {file = "zstandard-0.23.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ed1708dbf4d2e3a1c5c69110ba2b4eb6678262028afd6c6fbcc5a8dac9cda68e"}, + {file = "zstandard-0.23.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:be9b5b8659dff1f913039c2feee1aca499cfbc19e98fa12bc85e037c17ec6ca5"}, + {file = "zstandard-0.23.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:65308f4b4890aa12d9b6ad9f2844b7ee42c7f7a4fd3390425b242ffc57498f48"}, + {file = "zstandard-0.23.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:98da17ce9cbf3bfe4617e836d561e433f871129e3a7ac16d6ef4c680f13a839c"}, + {file = "zstandard-0.23.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:8ed7d27cb56b3e058d3cf684d7200703bcae623e1dcc06ed1e18ecda39fee003"}, + {file = "zstandard-0.23.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:b69bb4f51daf461b15e7b3db033160937d3ff88303a7bc808c67bbc1eaf98c78"}, + {file = "zstandard-0.23.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:034b88913ecc1b097f528e42b539453fa82c3557e414b3de9d5632c80439a473"}, + {file = "zstandard-0.23.0-cp311-cp311-win32.whl", hash = "sha256:f2d4380bf5f62daabd7b751ea2339c1a21d1c9463f1feb7fc2bdcea2c29c3160"}, + {file = "zstandard-0.23.0-cp311-cp311-win_amd64.whl", hash = "sha256:62136da96a973bd2557f06ddd4e8e807f9e13cbb0bfb9cc06cfe6d98ea90dfe0"}, + {file = "zstandard-0.23.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b4567955a6bc1b20e9c31612e615af6b53733491aeaa19a6b3b37f3b65477094"}, + {file = "zstandard-0.23.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e172f57cd78c20f13a3415cc8dfe24bf388614324d25539146594c16d78fcc8"}, + {file = "zstandard-0.23.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0e166f698c5a3e914947388c162be2583e0c638a4703fc6a543e23a88dea3c1"}, + {file = "zstandard-0.23.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12a289832e520c6bd4dcaad68e944b86da3bad0d339ef7989fb7e88f92e96072"}, + {file = "zstandard-0.23.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d50d31bfedd53a928fed6707b15a8dbeef011bb6366297cc435accc888b27c20"}, + {file = "zstandard-0.23.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72c68dda124a1a138340fb62fa21b9bf4848437d9ca60bd35db36f2d3345f373"}, + {file = "zstandard-0.23.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:53dd9d5e3d29f95acd5de6802e909ada8d8d8cfa37a3ac64836f3bc4bc5512db"}, + {file = "zstandard-0.23.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:6a41c120c3dbc0d81a8e8adc73312d668cd34acd7725f036992b1b72d22c1772"}, + {file = "zstandard-0.23.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:40b33d93c6eddf02d2c19f5773196068d875c41ca25730e8288e9b672897c105"}, + {file = "zstandard-0.23.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9206649ec587e6b02bd124fb7799b86cddec350f6f6c14bc82a2b70183e708ba"}, + {file = "zstandard-0.23.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76e79bc28a65f467e0409098fa2c4376931fd3207fbeb6b956c7c476d53746dd"}, + {file = "zstandard-0.23.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:66b689c107857eceabf2cf3d3fc699c3c0fe8ccd18df2219d978c0283e4c508a"}, + {file = "zstandard-0.23.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9c236e635582742fee16603042553d276cca506e824fa2e6489db04039521e90"}, + {file = "zstandard-0.23.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a8fffdbd9d1408006baaf02f1068d7dd1f016c6bcb7538682622c556e7b68e35"}, + {file = "zstandard-0.23.0-cp312-cp312-win32.whl", hash = "sha256:dc1d33abb8a0d754ea4763bad944fd965d3d95b5baef6b121c0c9013eaf1907d"}, + {file = "zstandard-0.23.0-cp312-cp312-win_amd64.whl", hash = "sha256:64585e1dba664dc67c7cdabd56c1e5685233fbb1fc1966cfba2a340ec0dfff7b"}, + {file = "zstandard-0.23.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:576856e8594e6649aee06ddbfc738fec6a834f7c85bf7cadd1c53d4a58186ef9"}, + {file = "zstandard-0.23.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38302b78a850ff82656beaddeb0bb989a0322a8bbb1bf1ab10c17506681d772a"}, + {file = "zstandard-0.23.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2240ddc86b74966c34554c49d00eaafa8200a18d3a5b6ffbf7da63b11d74ee2"}, + {file = "zstandard-0.23.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ef230a8fd217a2015bc91b74f6b3b7d6522ba48be29ad4ea0ca3a3775bf7dd5"}, + {file = "zstandard-0.23.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:774d45b1fac1461f48698a9d4b5fa19a69d47ece02fa469825b442263f04021f"}, + {file = "zstandard-0.23.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f77fa49079891a4aab203d0b1744acc85577ed16d767b52fc089d83faf8d8ed"}, + {file = "zstandard-0.23.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ac184f87ff521f4840e6ea0b10c0ec90c6b1dcd0bad2f1e4a9a1b4fa177982ea"}, + {file = "zstandard-0.23.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c363b53e257246a954ebc7c488304b5592b9c53fbe74d03bc1c64dda153fb847"}, + {file = "zstandard-0.23.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e7792606d606c8df5277c32ccb58f29b9b8603bf83b48639b7aedf6df4fe8171"}, + {file = "zstandard-0.23.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a0817825b900fcd43ac5d05b8b3079937073d2b1ff9cf89427590718b70dd840"}, + {file = "zstandard-0.23.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9da6bc32faac9a293ddfdcb9108d4b20416219461e4ec64dfea8383cac186690"}, + {file = "zstandard-0.23.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fd7699e8fd9969f455ef2926221e0233f81a2542921471382e77a9e2f2b57f4b"}, + {file = "zstandard-0.23.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:d477ed829077cd945b01fc3115edd132c47e6540ddcd96ca169facff28173057"}, + {file = "zstandard-0.23.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa6ce8b52c5987b3e34d5674b0ab529a4602b632ebab0a93b07bfb4dfc8f8a33"}, + {file = "zstandard-0.23.0-cp313-cp313-win32.whl", hash = "sha256:a9b07268d0c3ca5c170a385a0ab9fb7fdd9f5fd866be004c4ea39e44edce47dd"}, + {file = "zstandard-0.23.0-cp313-cp313-win_amd64.whl", hash = "sha256:f3513916e8c645d0610815c257cbfd3242adfd5c4cfa78be514e5a3ebb42a41b"}, + {file = "zstandard-0.23.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2ef3775758346d9ac6214123887d25c7061c92afe1f2b354f9388e9e4d48acfc"}, + {file = "zstandard-0.23.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4051e406288b8cdbb993798b9a45c59a4896b6ecee2f875424ec10276a895740"}, + {file = "zstandard-0.23.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2d1a054f8f0a191004675755448d12be47fa9bebbcffa3cdf01db19f2d30a54"}, + {file = "zstandard-0.23.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f83fa6cae3fff8e98691248c9320356971b59678a17f20656a9e59cd32cee6d8"}, + {file = "zstandard-0.23.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32ba3b5ccde2d581b1e6aa952c836a6291e8435d788f656fe5976445865ae045"}, + {file = "zstandard-0.23.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f146f50723defec2975fb7e388ae3a024eb7151542d1599527ec2aa9cacb152"}, + {file = "zstandard-0.23.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1bfe8de1da6d104f15a60d4a8a768288f66aa953bbe00d027398b93fb9680b26"}, + {file = "zstandard-0.23.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:29a2bc7c1b09b0af938b7a8343174b987ae021705acabcbae560166567f5a8db"}, + {file = "zstandard-0.23.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:61f89436cbfede4bc4e91b4397eaa3e2108ebe96d05e93d6ccc95ab5714be512"}, + {file = "zstandard-0.23.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:53ea7cdc96c6eb56e76bb06894bcfb5dfa93b7adcf59d61c6b92674e24e2dd5e"}, + {file = "zstandard-0.23.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:a4ae99c57668ca1e78597d8b06d5af837f377f340f4cce993b551b2d7731778d"}, + {file = "zstandard-0.23.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:379b378ae694ba78cef921581ebd420c938936a153ded602c4fea612b7eaa90d"}, + {file = "zstandard-0.23.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:50a80baba0285386f97ea36239855f6020ce452456605f262b2d33ac35c7770b"}, + {file = "zstandard-0.23.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:61062387ad820c654b6a6b5f0b94484fa19515e0c5116faf29f41a6bc91ded6e"}, + {file = "zstandard-0.23.0-cp38-cp38-win32.whl", hash = "sha256:b8c0bd73aeac689beacd4e7667d48c299f61b959475cdbb91e7d3d88d27c56b9"}, + {file = "zstandard-0.23.0-cp38-cp38-win_amd64.whl", hash = "sha256:a05e6d6218461eb1b4771d973728f0133b2a4613a6779995df557f70794fd60f"}, + {file = "zstandard-0.23.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3aa014d55c3af933c1315eb4bb06dd0459661cc0b15cd61077afa6489bec63bb"}, + {file = "zstandard-0.23.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0a7f0804bb3799414af278e9ad51be25edf67f78f916e08afdb983e74161b916"}, + {file = "zstandard-0.23.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb2b1ecfef1e67897d336de3a0e3f52478182d6a47eda86cbd42504c5cbd009a"}, + {file = "zstandard-0.23.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:837bb6764be6919963ef41235fd56a6486b132ea64afe5fafb4cb279ac44f259"}, + {file = "zstandard-0.23.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1516c8c37d3a053b01c1c15b182f3b5f5eef19ced9b930b684a73bad121addf4"}, + {file = "zstandard-0.23.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48ef6a43b1846f6025dde6ed9fee0c24e1149c1c25f7fb0a0585572b2f3adc58"}, + {file = "zstandard-0.23.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11e3bf3c924853a2d5835b24f03eeba7fc9b07d8ca499e247e06ff5676461a15"}, + {file = "zstandard-0.23.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2fb4535137de7e244c230e24f9d1ec194f61721c86ebea04e1581d9d06ea1269"}, + {file = "zstandard-0.23.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8c24f21fa2af4bb9f2c492a86fe0c34e6d2c63812a839590edaf177b7398f700"}, + {file = "zstandard-0.23.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a8c86881813a78a6f4508ef9daf9d4995b8ac2d147dcb1a450448941398091c9"}, + {file = "zstandard-0.23.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:fe3b385d996ee0822fd46528d9f0443b880d4d05528fd26a9119a54ec3f91c69"}, + {file = "zstandard-0.23.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:82d17e94d735c99621bf8ebf9995f870a6b3e6d14543b99e201ae046dfe7de70"}, + {file = "zstandard-0.23.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c7c517d74bea1a6afd39aa612fa025e6b8011982a0897768a2f7c8ab4ebb78a2"}, + {file = "zstandard-0.23.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1fd7e0f1cfb70eb2f95a19b472ee7ad6d9a0a992ec0ae53286870c104ca939e5"}, + {file = "zstandard-0.23.0-cp39-cp39-win32.whl", hash = "sha256:43da0f0092281bf501f9c5f6f3b4c975a8a0ea82de49ba3f7100e64d422a1274"}, + {file = "zstandard-0.23.0-cp39-cp39-win_amd64.whl", hash = "sha256:f8346bfa098532bc1fb6c7ef06783e969d87a99dd1d2a5a18a892c1d7a643c58"}, + {file = "zstandard-0.23.0.tar.gz", hash = "sha256:b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09"}, +] + +[package.dependencies] +cffi = {version = ">=1.11", optional = true, markers = "platform_python_implementation == \"PyPy\" or extra == \"cffi\""} + +[package.extras] +cffi = ["cffi (>=1.11)"] + [metadata] lock-version = "2.0" -python-versions = ">=3.8.1,<4.0" -content-hash = "5f4f1dbd28ebebce329e08e9f60bf2dbda90f48773dc6b52afc9b5a6aaedb200" +python-versions = ">=3.10.0,<4.0" +content-hash = "cf84ee0528fbd8906c1a0ee8788de610ca2f3b8e215d58f0b1bdab79eb5a9c3f" diff --git a/pyproject.toml b/pyproject.toml index d6cfc731..801e4bb9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ exclude = ''' | node_modules )/ ''' -max_line_length = 99 +line-length = 99 [tool.djlint] blank_line_after_tag = "load,extends,include,endblock" @@ -66,7 +66,8 @@ authors = [ "Christopher Pickering ", "Dan Ryan", "Richard Schissler", - "Eric Shultz" + "Eric Shultz", + "Payton Snider III" ] classifiers = [ "Programming Language :: Python :: 3 :: Only", @@ -100,78 +101,73 @@ repository = "https://github.com/atlas-bi/Hub" version = "2.12.3" [tool.poetry.dependencies] -Flask = "^2.0.1" -Flask-APScheduler = "^1.12.2" -Flask-Assets = "^2.0" -Flask-Caching = "^2.0.0" -Flask-Compress = "1.14" +Flask = "^3.0.3" +Flask-APScheduler = "^1.13.1" +Flask-Assets = "^2.1.0" +Flask-Caching = "^2.3.0" +Flask-Compress = "1.15" Flask-Executor = "^1.0.0" -Flask-HTMLmin = "^2.1.0" -Flask-Login = "^0.6.0" -Flask-Migrate = "^4.0.0" +Flask-HTMLmin = "^2.2.1" +Flask-Login = "^0.6.3" +Flask-Migrate = "^4.0.7" Flask-SQLAlchemy = "^3.1.1" Flask-Script = "^2.0.6" -Jinja2 = "^3.0.1" -SQLAlchemy = "^2.0.20" -SQLAlchemy-Utils = "^0.41.0" -azure-devops = "^7.1.0b3" -bs4 = "^0.0.1" -cryptography = "^41.0.0" -flask-assets = {git = "https://github.com/christopherpickering/flask-assets.git"} +Jinja2 = "^3.1.4" +SQLAlchemy = "^2.0.31" +SQLAlchemy-Utils = "^0.41.2" +azure-devops = "^7.1.0b4" +bs4 = "^0.0.2" +cryptography = "^43.0.0" flask-redis = "^0.4.0" -flask-session2 = "^1.2.0" -gevent = "^23.9.1" -gunicorn = "^21.0.0" +flask-session = "^0.8.0" +gevent = "^24.2.1" +gunicorn = "^22.0.0" is-safe-url = "^1.0" jaydebeapi = "^1.2.3" -paramiko = "^3.0.0" -pathvalidate = "^3.0.0" -psutil = "^5.8.0" -psycopg2-binary = "^2.9.1" -pyodbc = "^4.0.31" -pysaml2 = "^7.0.1" -pysmb = "^1.2.7" -python = ">=3.8.1,<4.0" -python-dateutil = "^2.8.2" -python-gnupg = "^0.5.0" -python-ldap = "^3.3.1" -python3-saml = "^1.12.0" -pytz-deprecation-shim = "^0.1.0-post.0" -rcssmin = "^1.0.6" -redis = "^5.0.0" -regex = "^2023.0.0" +paramiko = "^3.4.0" +pathvalidate = "^3.2.0" +psutil = "^6.0.0" +psycopg2-binary = "^2.9.9" +pyodbc = "^5.1.0" +pysaml2 = "^7.5.0" +pysmb = "^1.2.9.1" +python = ">=3.10.0,<4.0" +python-dateutil = "^2.9.0" +python-gnupg = "^0.5.2" +python-ldap = "3.4.4" +python3-saml = "^1.16.0" +pytz-deprecation-shim = "^0.1.0" +rcssmin = "^1.1.2" +redis = "^5.0.7" +regex = "^2024.5.15" relative-to-now = "^1.0.0" -requests = "^2.26.0" -setuptools = "^68.0.0" -sqlalchemy2-stubs = "^0.0.2-alpha.32" -supervisor = "^4.2.2" +requests = "^2.32.3" +setuptools = "^71.1.0" +supervisor = "^4.2.5" tomli = "^2.0.1" -tomlkit = "^0.12.0" -virtualenv = "^20.7.2" +tomlkit = "^0.13.0" +virtualenv = "^20.26.3" webassets-rollup = "^1.0.0" -whitenoise = "^6.2.0" -xmlsec = "^1.3.11" +whitenoise = "^6.7.0" +xmlsec = "^1.3.14" [tool.poetry.group.dev.dependencies] -black = "^23.0.0" -coverage = "^7.0.0" -djlint = "^1.19.17" -flask-debugtoolbar = "^0.13.1" -isort = "^5.10.1" -mypy = "0.991" -pre-commit = "^3.0.0" -pytest = "^7.2.0" -pytest-cov = "^4.0.0" -radon = "^6.0.0" -ruff = "^0.0.289" +black = "^24.4.2" +coverage = "^7.6.0" +flask-debugtoolbar = "^0.15.1" +isort = "^5.13.2" +mypy = "1.11.0" +pre-commit = "^3.7.1" +pytest = "^8.3.1" +pytest-cov = "^5.0.0" +radon = "^6.0.1" +ruff = "^0.5.4" toml = "^0.10.2" -tox = "^4.0.8" -types-flask = "^1.1.6" -types-jinja2 = "^2.11.9" -types-paramiko = "^2.12.0.1" -types-python-dateutil = "^2.8.19.4" -types-redis = "^4.3.21.6" -types-requests = "^2.28.11.5" +tox = "^4.16.0" +types-paramiko = "^3.4.0.20240205" +types-python-dateutil = "^2.9.0.20240316" +types-redis = "^4.6.0.20240425" +types-requests = "^2.32.0.20240622" [tool.pytest] @@ -182,10 +178,12 @@ testpaths = "tests" [tool.ruff] extend-exclude = ['test*', 'ldap_auth*'] -ignore = ['RUF015', 'B034', 'PLR1714', 'S602', 'S605', 'D213', 'S324', 'D203', 'S301', 'N818', 'PLW0120', 'PLR0915', 'S110', 'S101', 'C417', 'PLR0913', 'D212', 'RUF100', 'B020', 'S106', 'PLC1901', 'PLR0911', 'F401', "E501", 'SIM118', 'PLR2004', 'PLW2901', 'B905', 'E402', 'PLR0912', 'B904', 'ERA001', 'PLR5501', 'D401', 'SIM108'] + +[tool.ruff.lint] +ignore = ['RUF015', 'B034', 'PLR1714', 'S602', 'S605', 'D213', 'S324', 'D203', 'S301', 'N818', 'PLW0120', 'PLR0915', 'S110', 'S101', 'C417', 'PLR0913', 'D212', 'RUF100', 'B020', 'S106', 'PLC1901', 'PLR0911', 'F401', "E501", 'SIM118', 'PLR2004', 'PLW2901', 'B905', 'E402', 'PLR0912', 'B904', 'ERA001', 'PLR5501', 'D401', 'SIM108', 'S507', 'RUF009'] select = ['F', 'E', 'W', 'N', 'D', 'S', 'B', 'C4', 'T20', 'Q', 'SIM', 'ERA', 'PL', 'RUF'] -[tool.ruff.per-file-ignores] +[tool.ruff.lint.per-file-ignores] "runner/scripts/em_python.py" = ['SIM114'] [tool.setuptools_scm] diff --git a/runner/__init__.py b/runner/__init__.py index 501e881a..40483ce3 100644 --- a/runner/__init__.py +++ b/runner/__init__.py @@ -34,6 +34,7 @@ cp web/model.py scheduler/ """ + import logging import os diff --git a/runner/model.py b/runner/model.py index 1ce36e25..75e7c2f6 100644 --- a/runner/model.py +++ b/runner/model.py @@ -20,30 +20,25 @@ """ - import datetime from dataclasses import dataclass -from typing import Optional +from typing import List, Optional -from sqlalchemy.orm import declarative_base +from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.sql import functions from .extensions import db -Base = declarative_base() - @dataclass class LoginType(db.Model): """Lookup table of user login types.""" __tablename__ = "login_type" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(120), nullable=True) - login = db.relationship("Login", backref="login_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + login: Mapped[List["Login"]] = relationship(back_populates="login_type", lazy=True) @dataclass @@ -51,15 +46,16 @@ class Login(db.Model): """Table should contain all login attempts.""" __tablename__ = "login" - id: Optional[int] = None - username: Optional[str] = None - login_date: Optional[datetime.datetime] = None - type_id: Optional[int] = None - id = db.Column(db.Integer, primary_key=True, index=True) - type_id = db.Column(db.Integer, db.ForeignKey(LoginType.id), nullable=True) - username = db.Column(db.String(120), nullable=True) - login_date = db.Column(db.DateTime, server_default=functions.now()) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + type_id: Mapped[Optional[int]] = mapped_column( + db.Integer, db.ForeignKey(LoginType.id), nullable=True + ) + username: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + login_date: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, server_default=functions.now() + ) + login_type: Mapped["LoginType"] = relationship(back_populates="login") @dataclass @@ -68,37 +64,29 @@ class User(db.Model): # pylint: disable=too-many-instance-attributes - id: Optional[int] = None - account_name: Optional[str] = None - email: Optional[str] = None - full_name: Optional[str] = None - first_name: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - account_name = db.Column(db.String(200), nullable=True, index=True) - email = db.Column(db.String(200), nullable=True, index=True) - full_name = db.Column(db.String(200), nullable=True) - first_name = db.Column(db.String(200), nullable=True) - project_owner = db.relationship( - "Project", backref="project_owner", lazy=True, foreign_keys="Project.owner_id" - ) - project_creator = db.relationship( - "Project", + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + account_name: Mapped[Optional[str]] = mapped_column(db.String(200), nullable=True, index=True) + email: Mapped[Optional[str]] = mapped_column(db.String(200), nullable=True, index=True) + full_name: Mapped[Optional[str]] = mapped_column(db.String(200), nullable=True) + first_name: Mapped[Optional[str]] = mapped_column(db.String(200), nullable=True) + project_owner: Mapped["Project"] = relationship( + backref="project_owner", lazy=True, foreign_keys="Project.owner_id" + ) + project_creator: Mapped["Project"] = relationship( backref="project_creator", lazy=True, foreign_keys="Project.creator_id", ) - project_updater = db.relationship( - "Project", + project_updater: Mapped["Project"] = relationship( backref="project_updater", lazy=True, foreign_keys="Project.updater_id", ) - task_creator = db.relationship( - "Task", backref="task_creator", lazy=True, foreign_keys="Task.creator_id" + task_creator: Mapped["Task"] = relationship( + backref="task_creator", lazy=True, foreign_keys="Task.creator_id" ) - task_updater = db.relationship( - "Task", backref="task_updater", lazy=True, foreign_keys="Task.updater_id" + task_updater: Mapped["Task"] = relationship( + backref="task_updater", lazy=True, foreign_keys="Task.updater_id" ) is_authenticated = True is_active = True @@ -119,72 +107,43 @@ class Project(db.Model): # pylint: disable=too-many-instance-attributes - id: Optional[int] = None - name: Optional[str] = None - description: Optional[str] = None - owner_id: Optional[int] = None - cron: Optional[int] = None - cron_year: Optional[int] = None - cron_month: Optional[int] = None - cron_week: Optional[int] = None - cron_day: Optional[int] = None - cron_week_day: Optional[int] = None - cron_hour: Optional[int] = None - cron_min: Optional[int] = None - cron_sec: Optional[int] = None - cron_start_date: Optional[datetime.datetime] = None - cron_end_date: Optional[datetime.datetime] = None - - intv: Optional[int] = None - intv_type: Optional[str] = None - intv_value: Optional[int] = None - intv_start_date: Optional[datetime.datetime] = None - intv_end_date: Optional[datetime.datetime] = None - - ooff: Optional[int] = None - ooff_date: Optional[datetime.datetime] = None - - created: Optional[datetime.datetime] = None - creator_id: Optional[int] = None - updated: Optional[datetime.datetime] = None - updater_id: Optional[int] = None - - global_params: Optional[str] = None - - sequence_tasks: Optional[int] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(120), nullable=True) - description = db.Column(db.String(8000), nullable=True) - owner_id = db.Column(db.Integer, db.ForeignKey(User.id), nullable=True, index=True) - - cron = db.Column(db.Integer, nullable=True) - cron_year = db.Column(db.Integer, nullable=True) - cron_month = db.Column(db.Integer, nullable=True) - cron_week = db.Column(db.Integer, nullable=True) - cron_day = db.Column(db.Integer, nullable=True) - cron_week_day = db.Column(db.Integer, nullable=True) - cron_hour = db.Column(db.Integer, nullable=True) - cron_min = db.Column(db.Integer, nullable=True) - cron_sec = db.Column(db.Integer, nullable=True) - cron_start_date = db.Column(db.DateTime, nullable=True) - cron_end_date = db.Column(db.DateTime, nullable=True) - - intv = db.Column(db.Integer, nullable=True) - intv_type = db.Column(db.String(5), nullable=True) - intv_value = db.Column(db.Integer, nullable=True) - intv_start_date = db.Column(db.DateTime, nullable=True) - intv_end_date = db.Column(db.DateTime, nullable=True) - - ooff = db.Column(db.Integer, nullable=True) - ooff_date = db.Column(db.DateTime, nullable=True) - - global_params = db.Column(db.String(8000), nullable=True) - - sequence_tasks = db.Column(db.Integer, nullable=True) - - task = db.relationship( - "Task", + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + description: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + owner_id: Mapped[Optional[int]] = mapped_column( + db.Integer, db.ForeignKey(User.id), nullable=True, index=True + ) + + cron: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + cron_year: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_month: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_week: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_day: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_week_day: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_hour: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_min: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_sec: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_start_date: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, nullable=True + ) + cron_end_date: Mapped[Optional[datetime.datetime]] = mapped_column(db.DateTime, nullable=True) + + intv: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + intv_type: Mapped[Optional[str]] = mapped_column(db.String(5), nullable=True) + intv_value: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + intv_start_date: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, nullable=True + ) + intv_end_date: Mapped[Optional[datetime.datetime]] = mapped_column(db.DateTime, nullable=True) + + ooff: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + ooff_date: Mapped[Optional[datetime.datetime]] = mapped_column(db.DateTime, nullable=True) + + global_params: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + + sequence_tasks: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + + task: Mapped[List["Task"]] = relationship( backref="project", lazy="dynamic", cascade="all, delete, delete-orphan", @@ -192,20 +151,23 @@ class Project(db.Model): ) # projectparams link - params = db.relationship( - "ProjectParam", + params: Mapped[List["ProjectParam"]] = relationship( backref="project", lazy=True, cascade="all, delete, delete-orphan", passive_deletes=True, ) - created = db.Column(db.DateTime, server_default=functions.now()) - creator_id = db.Column( + created: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, server_default=functions.now() + ) + creator_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(User.id), nullable=True, index=True ) - updated = db.Column(db.DateTime, onupdate=functions.now()) - updater_id = db.Column( + updated: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, onupdate=functions.now() + ) + updater_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(User.id), nullable=True, index=True ) @@ -219,12 +181,10 @@ class TaskSourceType(db.Model): """Lookup table of task source types.""" __tablename__ = "task_source_type" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=True) - task = db.relationship("Task", backref="source_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + task: Mapped["Task"] = relationship(backref="source_type", lazy=True) @dataclass @@ -232,12 +192,10 @@ class TaskSourceQueryType(db.Model): """Lookup table of task query source types.""" __tablename__ = "task_source_query_type" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=True) - task = db.relationship("Task", backref="query_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + task: Mapped["Task"] = relationship(backref="query_type", lazy=True) @dataclass @@ -245,12 +203,10 @@ class TaskProcessingType(db.Model): """Lookup table of task query source types.""" __tablename__ = "task_processing_type" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=True) - task = db.relationship("Task", backref="processing_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + task: Mapped["Task"] = relationship(backref="processing_type", lazy=True) @dataclass @@ -261,20 +217,16 @@ class TaskStatus(db.Model): """ __tablename__ = "task_status" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(1000), nullable=True) - task = db.relationship( - "Task", + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + task: Mapped[List["Task"]] = relationship( backref="status", lazy="dynamic", cascade="all, delete, delete-orphan", passive_deletes=True, ) - task_log = db.relationship( - "TaskLog", + task_log: Mapped[List["TaskLog"]] = relationship( backref="status", lazy="dynamic", cascade="all, delete, delete-orphan", @@ -289,53 +241,39 @@ class Connection(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection" - id: Optional[int] = None - name: Optional[str] = None - description: Optional[str] = None - address: Optional[str] = None - primary_contact: Optional[str] = None - primary_contact_email: Optional[str] = None - primary_contact_phone: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(120), nullable=True) - description = db.Column(db.String(120), nullable=True) - address = db.Column(db.String(120), nullable=True) - primary_contact = db.Column(db.String(400), nullable=True) - primary_contact_email = db.Column(db.String(120), nullable=True) - primary_contact_phone = db.Column(db.String(120), nullable=True) - ssh = db.relationship( - "ConnectionSsh", + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + description: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + address: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + primary_contact: Mapped[Optional[str]] = mapped_column(db.String(400), nullable=True) + primary_contact_email: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + primary_contact_phone: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + ssh: Mapped[List["ConnectionSsh"]] = relationship( backref="connection", lazy=True, foreign_keys="ConnectionSsh.connection_id", ) - sftp = db.relationship( - "ConnectionSftp", + sftp: Mapped[List["ConnectionSftp"]] = relationship( backref="connection", lazy=True, foreign_keys="ConnectionSftp.connection_id", ) - ftp = db.relationship( - "ConnectionFtp", + ftp: Mapped[List["ConnectionFtp"]] = relationship( backref="connection", lazy=True, foreign_keys="ConnectionFtp.connection_id", ) - smb = db.relationship( - "ConnectionSmb", + smb: Mapped[List["ConnectionSmb"]] = relationship( backref="connection", lazy=True, foreign_keys="ConnectionSmb.connection_id", ) - database = db.relationship( - "ConnectionDatabase", - backref="connection", + database: Mapped[List["ConnectionDatabase"]] = relationship( + back_populates="connection", lazy=True, - foreign_keys="ConnectionDatabase.connection_id", ) - gpg = db.relationship( - "ConnectionGpg", + gpg: Mapped[List["ConnectionGpg"]] = relationship( backref="connection", lazy=True, foreign_keys="ConnectionGpg.connection_id", @@ -353,45 +291,33 @@ class ConnectionSftp(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection_sftp" - id: Optional[int] = None - connection_id: Optional[int] = None - name: Optional[str] = None - address: Optional[str] = None - port: Optional[int] = None - path: Optional[str] = None - username: Optional[str] = None - key: Optional[str] = None - password: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - connection_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(500), nullable=True) - address = db.Column(db.String(500), nullable=True) - port = db.Column(db.Integer, nullable=True) - path = db.Column(db.String(500), nullable=True) - username = db.Column(db.String(120), nullable=True) - key = db.Column(db.String(8000), nullable=True) - password = db.Column(db.Text, nullable=True) - key_password = db.Column(db.Text, nullable=True) - task = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + address: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + port: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + path: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + username: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + key: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + password: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + key_password: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + task: Mapped["Task"] = relationship( backref="destination_sftp_conn", lazy=True, foreign_keys="Task.destination_sftp_id", ) - task_source = db.relationship( - "Task", + task_source: Mapped["Task"] = relationship( backref="source_sftp_conn", lazy=True, foreign_keys="Task.source_sftp_id", ) - query_source = db.relationship( - "Task", backref="query_sftp_conn", lazy=True, foreign_keys="Task.query_sftp_id" + query_source: Mapped["Task"] = relationship( + backref="query_sftp_conn", lazy=True, foreign_keys="Task.query_sftp_id" ) - processing_source = db.relationship( - "Task", + processing_source: Mapped["Task"] = relationship( backref="processing_sftp_conn", lazy=True, foreign_keys="Task.processing_sftp_id", @@ -409,25 +335,17 @@ class ConnectionSsh(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection_ssh" - id: Optional[int] = None - connection_id: Optional[int] = None - name: Optional[str] = None - address: Optional[str] = None - port: Optional[int] = None - username: Optional[str] = None - password: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - connection_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(500), nullable=True) - address = db.Column(db.String(500), nullable=True) - port = db.Column(db.Integer, nullable=True) - username = db.Column(db.String(120), nullable=True) - password = db.Column(db.Text, nullable=True) - task_source = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + address: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + port: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + username: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + password: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + task_source: Mapped["Task"] = relationship( backref="source_ssh_conn", lazy=True, foreign_keys="Task.source_ssh_id", @@ -445,19 +363,14 @@ class ConnectionGpg(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection_gpg" - id: Optional[int] = None - connection_id: Optional[int] = None - name: Optional[str] = None - key: Optional[str] = None - id = db.Column(db.Integer, primary_key=True, index=True) - connection_id = db.Column( + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(500), nullable=True) - key = db.Column(db.String(8000), nullable=True) - task_source = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + key: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + task_source: Mapped["Task"] = relationship( backref="file_gpg_conn", lazy=True, foreign_keys="Task.file_gpg_id", @@ -475,37 +388,28 @@ class ConnectionFtp(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection_ftp" - id: Optional[int] = None - connection_id: Optional[int] = None - name: Optional[str] = None - address: Optional[str] = None - path: Optional[str] = None - username: Optional[str] = None - password: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - connection_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(500), nullable=True) - address = db.Column(db.String(500), nullable=True) - path = db.Column(db.String(500), nullable=True) - username = db.Column(db.String(500), nullable=True) - password = db.Column(db.Text, nullable=True) - task = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + address: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + path: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + username: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + password: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + task: Mapped["Task"] = relationship( backref="destination_ftp_conn", lazy=True, foreign_keys="Task.destination_ftp_id", ) - task_source = db.relationship( - "Task", backref="source_ftp_conn", lazy=True, foreign_keys="Task.source_ftp_id" + task_source: Mapped["Task"] = relationship( + backref="source_ftp_conn", lazy=True, foreign_keys="Task.source_ftp_id" ) - query_source = db.relationship( - "Task", backref="query_ftp_conn", lazy=True, foreign_keys="Task.query_ftp_id" + query_source: Mapped["Task"] = relationship( + backref="query_ftp_conn", lazy=True, foreign_keys="Task.query_ftp_id" ) - processing_source = db.relationship( - "Task", + processing_source: Mapped["Task"] = relationship( backref="processing_ftp_conn", lazy=True, foreign_keys="Task.processing_ftp_id", @@ -523,41 +427,30 @@ class ConnectionSmb(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection_smb" - id: Optional[int] = None - connection_id: Optional[int] = None - name: Optional[str] = None - share_name: Optional[str] = None - path: Optional[str] = None - username: Optional[str] = None - password: Optional[str] = None - server_ip: Optional[str] = None - server_name: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - connection_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(120), nullable=True) - share_name = db.Column(db.String(500), nullable=True) - path = db.Column(db.String(1000), nullable=True) - username = db.Column(db.String(500), nullable=True) - password = db.Column(db.Text, nullable=True) - server_ip = db.Column(db.String(500), nullable=True) - server_name = db.Column(db.String(500), nullable=True) - task = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + share_name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + path: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + username: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + password: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + server_ip: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + server_name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + task: Mapped["Task"] = relationship( backref="destination_smb_conn", lazy=True, foreign_keys="Task.destination_smb_id", ) - task_source = db.relationship( - "Task", backref="source_smb_conn", lazy=True, foreign_keys="Task.source_smb_id" + task_source: Mapped["Task"] = relationship( + backref="source_smb_conn", lazy=True, foreign_keys="Task.source_smb_id" ) - query_source = db.relationship( - "Task", backref="query_smb_conn", lazy=True, foreign_keys="Task.query_smb_id" + query_source: Mapped["Task"] = relationship( + backref="query_smb_conn", lazy=True, foreign_keys="Task.query_smb_id" ) - processing_source = db.relationship( - "Task", + processing_source: Mapped["Task"] = relationship( backref="processing_smb_conn", lazy=True, foreign_keys="Task.processing_smb_id", @@ -573,12 +466,10 @@ class ConnectionDatabaseType(db.Model): """Lookup table of task source database types.""" __tablename__ = "connection_database_type" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=True) - database = db.relationship("ConnectionDatabase", backref="database_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + database: Mapped["ConnectionDatabase"] = relationship(backref="database_type", lazy=True) @dataclass @@ -586,29 +477,23 @@ class ConnectionDatabase(db.Model): """List of task source databases and connection strings.""" __tablename__ = "connection_database" - id: Optional[int] = None - type_id: Optional[int] = None - name: Optional[str] = None - connection_string: Optional[str] = None - connection_id: Optional[int] = None - timeout: Optional[int] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - type_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + type_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionDatabaseType.id), nullable=True, index=True ) - connection_id = db.Column( + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(500), nullable=True) - connection_string = db.Column(db.Text, nullable=True) - timeout = db.Column(db.Integer, nullable=True) - task_source = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + connection_string: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + timeout: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + task_source: Mapped["Task"] = relationship( backref="source_database_conn", lazy=True, foreign_keys="Task.source_database_id", ) + connection: Mapped["Connection"] = relationship(back_populates="database") def __str__(self) -> str: """Get string of name.""" @@ -620,14 +505,11 @@ class TaskDestinationFileType(db.Model): """Lookup table of task destination file types.""" __tablename__ = "task_destination_file_type" - id: Optional[int] = None - name: Optional[str] = None - ext: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=True) - ext = db.Column(db.String(120), nullable=False) - task = db.relationship("Task", backref="file_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + ext: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=False) + task: Mapped["Task"] = relationship(backref="file_type", lazy=True) @dataclass @@ -635,12 +517,10 @@ class QuoteLevel(db.Model): """Lookup table for python quote levels.""" __tablename__ = "quote_level" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(120), nullable=True) - task = db.relationship("Task", backref="destination_file_quote_level", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + task: Mapped["Task"] = relationship(backref="destination_file_quote_level", lazy=True) @dataclass @@ -648,19 +528,14 @@ class ProjectParam(db.Model): """Task parameters.""" __tablename__ = "project_param" - id: Optional[int] = None - key: Optional[str] = None - value: Optional[str] = None - sensitive: Optional[int] = None - project_id: Optional[int] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - key = db.Column(db.String(500), nullable=True) - value = db.Column(db.String(8000), nullable=True) - project_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + key: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + value: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + project_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Project.id), nullable=True, index=True ) - sensitive = db.Column(db.Integer, nullable=True, index=True) + sensitive: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) @dataclass @@ -670,329 +545,234 @@ class Task(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "task" - # general information - id: Optional[int] = None - name: Optional[str] = None - project_id: Optional[int] = None - status_id: Optional[int] = None - enabled: Optional[int] = None - order: Optional[int] = None - last_run: Optional[datetime.datetime] = None - next_run: Optional[datetime.datetime] = None - last_run_job_id: Optional[str] = None - created: Optional[datetime.datetime] = None - creator_id: Optional[int] = None - updated: Optional[datetime.datetime] = None - updater_id: Optional[int] = None - - # data source - source_type_id: Optional[int] = None - source_database_id: Optional[int] = None - - source_query_type_id: Optional[int] = None - source_query_include_header: Optional[int] = None - source_git: Optional[str] = None - source_devops: Optional[str] = None - source_url: Optional[str] = None - source_code: Optional[str] = None - - source_require_sql_output: Optional[int] = None - - query_smb_id: Optional[int] = None - query_smb_file: Optional[str] = None - query_sftp_id: Optional[int] = None - query_sftp_file: Optional[str] = None - query_ftp_id: Optional[int] = None - query_ftp_file: Optional[str] = None - query_params: Optional[str] = None - - source_smb_delimiter: Optional[str] = None - source_smb_ignore_delimiter: Optional[int] = None - source_smb_file: Optional[str] = None - source_smb_id: Optional[int] = None - - source_ftp_file: Optional[str] = None - source_ftp_delimiter: Optional[str] = None - source_ftp_ignore_delimiter: Optional[int] = None - source_ftp_id: Optional[int] = None - - source_sftp_file: Optional[str] = None - source_sftp_delimiter: Optional[str] = None - source_sftp_ignore_delimiter: Optional[int] = None - source_sftp_id: Optional[int] = None - - source_ssh_id: Optional[int] = None - - # caching - source_cache: Optional[str] = None - enable_source_cache: Optional[int] = None - - # processing - processing_type_id: Optional[int] = None - processing_smb_id: Optional[int] = None - processing_smb_file: Optional[str] = None - processing_sftp_id: Optional[int] = None - processing_sftp_file: Optional[str] = None - processing_ftp_id: Optional[int] = None - processing_ftp_file: Optional[str] = None - processing_code: Optional[str] = None - processing_url: Optional[str] = None - processing_git: Optional[str] = None - processing_devops: Optional[str] = None - processing_command: Optional[str] = None - - # destination - destination_file_delimiter: Optional[str] = None - destination_file_name: Optional[str] = None - destination_ignore_delimiter: Optional[int] = None - destination_file_line_terminator: Optional[str] = None - destination_quote_level_id: Optional[int] = None - - destination_create_zip: Optional[int] = None - destination_zip_name: Optional[str] = None - - destination_file_type_id: Optional[int] = None - - destination_sftp: Optional[int] = None - destination_sftp_overwrite: Optional[int] = None - destination_sftp_id: Optional[int] = None - destination_sftp_dont_send_empty_file: Optional[int] = None - - destination_ftp: Optional[int] = None - destination_ftp_overwrite: Optional[int] = None - destination_ftp_id: Optional[int] = None - destination_ftp_dont_send_empty_file: Optional[int] = None - - destination_smb: Optional[int] = None - destination_smb_overwrite: Optional[int] = None - destination_smb_id: Optional[int] = None - destination_smb_dont_send_empty_file: Optional[int] = None - - file_gpg: Optional[int] = None - file_gpg_id: Optional[int] = None - - email_completion: Optional[int] = None - email_completion_log: Optional[int] = None - email_completion_file: Optional[int] = None - email_completion_file_embed: Optional[int] = None - email_completion_dont_send_empty_file: Optional[int] = None - email_completion_recipients: Optional[str] = None - email_completion_message: Optional[str] = None - - email_error: Optional[int] = None - email_error_recipients: Optional[str] = None - email_error_message: Optional[str] = None - - max_retries: Optional[int] = None - - est_duration: Optional[int] = None # general information - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(1000), nullable=True) - project_id = db.Column( + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + project_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Project.id), nullable=True, index=True ) - status_id = db.Column( + status_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskStatus.id), nullable=True, index=True ) - enabled = db.Column(db.Integer, nullable=True, index=True) - order = db.Column(db.Integer, nullable=True, index=True) - last_run = db.Column(db.DateTime, nullable=True) - last_run_job_id = db.Column(db.String(30), nullable=True, index=True) - next_run = db.Column(db.DateTime, nullable=True, index=True) - created = db.Column(db.DateTime, server_default=functions.now(), index=True) - creator_id = db.Column( + enabled: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + order: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + last_run: Mapped[Optional[datetime.datetime]] = mapped_column(db.DateTime, nullable=True) + last_run_job_id: Mapped[Optional[str]] = mapped_column( + db.String(30), nullable=True, index=True + ) + next_run: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, nullable=True, index=True + ) + created: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, server_default=functions.now(), index=True + ) + creator_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(User.id), nullable=True, index=True ) - updated = db.Column(db.DateTime, onupdate=functions.now(), index=True) - updater_id = db.Column( + updated: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, onupdate=functions.now(), index=True + ) + updater_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(User.id), nullable=True, index=True ) """ data source """ # db/sftp/smb/ftp - source_type_id = db.Column( + source_type_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskSourceType.id), nullable=True, index=True ) # source locations # git/url/code/sftp/ftp/smb/devops - source_query_type_id = db.Column( + source_query_type_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskSourceQueryType.id), nullable=True, index=True ) - source_query_include_header = db.Column(db.Integer, nullable=True) + source_query_include_header: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) - source_require_sql_output = db.Column(db.Integer, nullable=True) + source_require_sql_output: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) # source git - source_git = db.Column(db.String(1000), nullable=True) + source_git: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) # source devops - source_devops = db.Column(db.String(1000), nullable=True) + source_devops: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) # source web url - source_url = db.Column(db.String(1000), nullable=True) + source_url: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) # source typed code - source_code = db.Column(db.Text, nullable=True) + source_code: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) # cached source query - source_cache = db.Column(db.Text, nullable=True) - enable_source_cache = db.Column(db.Integer, nullable=True, index=True) + source_cache: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + enable_source_cache: Mapped[Optional[int]] = mapped_column( + db.Integer, nullable=True, index=True + ) - query_smb_id = db.Column( + query_smb_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSmb.id), nullable=True, index=True ) - query_smb_file = db.Column(db.String(1000), nullable=True) + query_smb_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - query_sftp_id = db.Column( + query_sftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSftp.id), nullable=True, index=True ) - query_sftp_file = db.Column(db.String(1000), nullable=True) + query_sftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - query_ftp_id = db.Column( + query_ftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionFtp.id), nullable=True, index=True ) - query_ftp_file = db.Column(db.String(1000), nullable=True) + query_ftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - query_params = db.Column(db.String(8000), nullable=True) + query_params: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) # source smb sql file - source_smb_file = db.Column(db.String(1000), nullable=True) - source_smb_delimiter = db.Column(db.String(10), nullable=True) - source_smb_ignore_delimiter = db.Column(db.Integer, nullable=True) - source_smb_id = db.Column( + source_smb_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + source_smb_delimiter: Mapped[Optional[str]] = mapped_column(db.String(10), nullable=True) + source_smb_ignore_delimiter: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + source_smb_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSmb.id), nullable=True, index=True ) # source ftp sql file - source_ftp_file = db.Column(db.String(1000), nullable=True) - source_ftp_delimiter = db.Column(db.String(10), nullable=True) - source_ftp_ignore_delimiter = db.Column(db.Integer, nullable=True) - source_ftp_id = db.Column( + source_ftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + source_ftp_delimiter: Mapped[Optional[str]] = mapped_column(db.String(10), nullable=True) + source_ftp_ignore_delimiter: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + source_ftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionFtp.id), nullable=True, index=True ) # source sftp sql file - source_sftp_file = db.Column(db.String(1000), nullable=True) - source_sftp_delimiter = db.Column(db.String(10), nullable=True) - source_sftp_ignore_delimiter = db.Column(db.Integer, nullable=True) - source_sftp_id = db.Column( + source_sftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + source_sftp_delimiter: Mapped[Optional[str]] = mapped_column(db.String(10), nullable=True) + source_sftp_ignore_delimiter: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + source_sftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSftp.id), nullable=True, index=True ) # source database - source_database_id = db.Column( + source_database_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionDatabase.id), nullable=True, index=True ) - source_ssh_id = db.Column( + source_ssh_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSsh.id), nullable=True, index=True ) """ processing script source """ - processing_type_id = db.Column( + processing_type_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskProcessingType.id), nullable=True, index=True ) - processing_smb_id = db.Column( + processing_smb_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSmb.id), nullable=True, index=True ) - processing_smb_file = db.Column(db.String(1000), nullable=True) + processing_smb_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - processing_sftp_id = db.Column( + processing_sftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSftp.id), nullable=True, index=True ) - processing_sftp_file = db.Column(db.String(1000), nullable=True) + processing_sftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - processing_ftp_id = db.Column( + processing_ftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionFtp.id), nullable=True, index=True ) - processing_ftp_file = db.Column(db.String(1000), nullable=True) + processing_ftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - processing_code = db.Column(db.String(8000), nullable=True) - processing_url = db.Column(db.String(1000), nullable=True) - processing_git = db.Column(db.String(1000), nullable=True) - processing_devops = db.Column(db.String(1000), nullable=True) - processing_command = db.Column(db.String(1000), nullable=True) + processing_code: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + processing_url: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + processing_git: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + processing_devops: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + processing_command: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) """ destination """ # destination file - destination_file_name = db.Column(db.String(1000), nullable=True) - destination_file_delimiter = db.Column(db.String(10), nullable=True) - destination_ignore_delimiter = db.Column(db.Integer, nullable=True) - destination_file_line_terminator = db.Column(db.String(10), nullable=True) + destination_file_name: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + destination_file_delimiter: Mapped[Optional[str]] = mapped_column(db.String(10), nullable=True) + destination_ignore_delimiter: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + destination_file_line_terminator: Mapped[Optional[str]] = mapped_column( + db.String(10), nullable=True + ) # destination zip archive - destination_create_zip = db.Column(db.Integer, nullable=True) - destination_zip_name = db.Column(db.String(1000), nullable=True) + destination_create_zip: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + destination_zip_name: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) # csv/txt/other - destination_file_type_id = db.Column( + destination_file_type_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskDestinationFileType.id), nullable=True, index=True ) # save to sftp server - destination_sftp = db.Column(db.Integer, nullable=True, index=True) - destination_sftp_overwrite = db.Column(db.Integer, nullable=True) - destination_sftp_id = db.Column( + destination_sftp: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + destination_sftp_overwrite: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + destination_sftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSftp.id), nullable=True, index=True ) - destination_sftp_dont_send_empty_file = db.Column(db.Integer, nullable=True) + destination_sftp_dont_send_empty_file: Mapped[Optional[int]] = mapped_column( + db.Integer, nullable=True + ) # save to ftp server - destination_ftp = db.Column(db.Integer, nullable=True, index=True) - destination_ftp_overwrite = db.Column(db.Integer, nullable=True) - destination_ftp_id = db.Column( + destination_ftp: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + destination_ftp_overwrite: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + destination_ftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionFtp.id), nullable=True, index=True ) - destination_ftp_dont_send_empty_file = db.Column(db.Integer, nullable=True) + destination_ftp_dont_send_empty_file: Mapped[Optional[int]] = mapped_column( + db.Integer, nullable=True + ) # save to smb server - destination_smb = db.Column(db.Integer, nullable=True, index=True) - destination_smb_overwrite = db.Column(db.Integer, nullable=True) - destination_smb_id = db.Column( + destination_smb: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + destination_smb_overwrite: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + destination_smb_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSmb.id), nullable=True, index=True ) - destination_smb_dont_send_empty_file = db.Column(db.Integer, nullable=True) + destination_smb_dont_send_empty_file: Mapped[Optional[int]] = mapped_column( + db.Integer, nullable=True + ) - file_gpg = db.Column(db.Integer, nullable=True, index=True) - file_gpg_id = db.Column( + file_gpg: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + file_gpg_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionGpg.id), nullable=True, index=True ) - destination_quote_level_id = db.Column( + destination_quote_level_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(QuoteLevel.id), nullable=True, index=True ) """ email """ # completion email - email_completion = db.Column(db.Integer, nullable=True, index=True) - email_completion_log = db.Column(db.Integer, nullable=True) - email_completion_file = db.Column(db.Integer, nullable=True) - email_completion_file_embed = db.Column(db.Integer, nullable=True) - email_completion_recipients = db.Column(db.String(1000), nullable=True) - email_completion_subject = db.Column(db.String(8000), nullable=True) - email_completion_message = db.Column(db.String(8000), nullable=True) - email_completion_dont_send_empty_file = db.Column(db.Integer, nullable=True) + email_completion: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + email_completion_log: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + email_completion_file: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + email_completion_file_embed: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + email_completion_recipients: Mapped[Optional[str]] = mapped_column( + db.String(1000), nullable=True + ) + email_completion_subject: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + email_completion_message: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + email_completion_dont_send_empty_file: Mapped[Optional[int]] = mapped_column( + db.Integer, nullable=True + ) # error email - email_error = db.Column(db.Integer, nullable=True, index=True) - email_error_recipients = db.Column(db.String(1000), nullable=True) - email_error_subject = db.Column(db.String(8000), nullable=True) - email_error_message = db.Column(db.String(8000), nullable=True) + email_error: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + email_error_recipients: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + email_error_subject: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + email_error_message: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) # rerun on fail - max_retries = db.Column(db.Integer, nullable=True, index=True) + max_retries: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) - est_duration = db.Column(db.Integer, nullable=True, index=True) + est_duration: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) # tasklog link - task = db.relationship( - "TaskLog", + task: Mapped[List["TaskLog"]] = relationship( backref="task", lazy=True, cascade="all, delete, delete-orphan", @@ -1000,8 +780,7 @@ class Task(db.Model): ) # taskparams link - params = db.relationship( - "TaskParam", + params: Mapped[List["TaskParam"]] = relationship( backref="task", lazy=True, cascade="all, delete, delete-orphan", @@ -1009,8 +788,7 @@ class Task(db.Model): ) # taskfiles link - files = db.relationship( - "TaskFile", + files: Mapped[List["TaskFile"]] = relationship( backref="task", lazy=True, cascade="all, delete, delete-orphan", @@ -1028,27 +806,22 @@ class TaskLog(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "task_log" - id: Optional[int] = None - task_id: Optional[int] = None - status_id: Optional[int] = None - job_id: Optional[str] = None - message: Optional[str] = None - error: Optional[int] = 0 - status_date: Optional[datetime.datetime] = None - - job_id = db.Column(db.String(1000), nullable=True, index=True) - id = db.Column(db.Integer, primary_key=True, index=True) - task_id = db.Column(db.Integer, db.ForeignKey(Task.id), nullable=True, index=True) - status_id = db.Column( + + job_id: Mapped[Optional[int]] = mapped_column(db.String(1000), nullable=True, index=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + task_id: Mapped[Optional[int]] = mapped_column( + db.Integer, db.ForeignKey(Task.id), nullable=True, index=True + ) + status_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskStatus.id), nullable=True, index=True ) - message = db.Column(db.Text, nullable=True) - status_date = db.Column(db.DateTime, default=datetime.datetime.now, index=True) - error = db.Column(db.Integer, nullable=True, index=True) - - __table_args__ = ( - db.Index("ix_task_log_status_date_error", "status_date", "error"), + message: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + status_date: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, default=datetime.datetime.now, index=True ) + error: Mapped[Optional[str]] = mapped_column(db.Integer, nullable=True, index=True) + + __table_args__ = (db.Index("ix_task_log_status_date_error", "status_date", "error"),) @dataclass @@ -1056,42 +829,33 @@ class TaskFile(db.Model): """Table containing paths to task backup files.""" __tablename__ = "task_file" - id: Optional[int] = None - name: Optional[str] = None - task_id: Optional[int] = None - job_id: Optional[str] = None - size: Optional[str] = None - file_hash: Optional[str] = None - path: Optional[str] = None - created: Optional[datetime.datetime] = None - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(1000), nullable=True, index=True) - task_id = db.Column(db.Integer, db.ForeignKey(Task.id), nullable=True, index=True) - job_id = db.Column(db.String(1000), nullable=True, index=True) - size = db.Column(db.String(200), nullable=True, index=True) - path = db.Column(db.String(1000), nullable=True, index=True) - file_hash = db.Column(db.String(1000), nullable=True) - created = db.Column(db.DateTime, default=datetime.datetime.now, index=True) - - __table_args__ = ( - db.Index("ix_task_file_id_task_id_job_id", "id", "task_id", "job_id"), + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True, index=True) + task_id: Mapped[Optional[int]] = mapped_column( + db.Integer, db.ForeignKey(Task.id), nullable=True, index=True + ) + job_id: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True, index=True) + size: Mapped[Optional[str]] = mapped_column(db.String(200), nullable=True, index=True) + path: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True, index=True) + file_hash: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + created: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, default=datetime.datetime.now, index=True ) + __table_args__ = (db.Index("ix_task_file_id_task_id_job_id", "id", "task_id", "job_id"),) + @dataclass class TaskParam(db.Model): """Task parameters.""" __tablename__ = "task_param" - id: Optional[int] = None - key: Optional[str] = None - value: Optional[str] = None - sensitive: Optional[int] = None - task_id: Optional[int] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - key = db.Column(db.String(500), nullable=True) - value = db.Column(db.String(8000), nullable=True) - task_id = db.Column(db.Integer, db.ForeignKey(Task.id), nullable=True, index=True) - sensitive = db.Column(db.Integer, nullable=True, index=True) + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + key: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + value: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + task_id: Mapped[Optional[int]] = mapped_column( + db.Integer, db.ForeignKey(Task.id), nullable=True, index=True + ) + sensitive: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) diff --git a/runner/scripts/em_cmd.py b/runner/scripts/em_cmd.py index 22de03ec..3fb4c8c7 100644 --- a/runner/scripts/em_cmd.py +++ b/runner/scripts/em_cmd.py @@ -1,6 +1,5 @@ """Functions used to run system commands.""" - import os import re import subprocess @@ -36,9 +35,7 @@ def __init__( def shell(self) -> str: """Run input command as a shell command.""" try: - out_bytes = subprocess.check_output( - self.cmd, stderr=subprocess.STDOUT, shell=True - ) + out_bytes = subprocess.check_output(self.cmd, stderr=subprocess.STDOUT, shell=True) out = out_bytes.decode("utf-8") if "Error" in out: diff --git a/runner/scripts/em_code.py b/runner/scripts/em_code.py index 838cef55..58b2f6e4 100644 --- a/runner/scripts/em_code.py +++ b/runner/scripts/em_code.py @@ -1,6 +1,5 @@ """Task source code handler.""" - import re import urllib.parse from typing import Optional @@ -43,8 +42,7 @@ def __init__( self.params = params self.db_type = ( "mssql" - if self.task.source_database_conn - and self.task.source_database_conn.type_id == 2 + if self.task.source_database_conn and self.task.source_database_conn.type_id == 2 else None ) @@ -84,9 +82,7 @@ def devops(self, url: str) -> str: projects = [i for i in get_projects_response if (i.name == project[0])] # this for repository id. - repos = git.get_repositories( - [i for i in projects if (i.name == project[0])][0].id - ) + repos = git.get_repositories([i for i in projects if (i.name == project[0])][0].id) repo_id = [i.id for i in repos if (i.name == repo_name[0])][0] item = git.get_item_content( @@ -122,20 +118,12 @@ def devops(self, url: str) -> str: # insert params return self.cleanup() - return ( - text - if not text.startswith(" str: f"Failed to get source from {url}.\n{e}", ) - raise RunnerException( - self.task, self.run_id, 15, "No url specified to get source from." - ) + raise RunnerException(self.task, self.run_id, 15, "No url specified to get source from.") def gitlab(self, url: str) -> str: """Get source code from gitlab using authentication.""" @@ -186,23 +172,17 @@ def gitlab(self, url: str) -> str: try: # convert the "raw" url into an api url branch = urllib.parse.quote( - urllib.parse.unquote( - re.findall(r"\/(?:raw|blob)\/(.+?)\/", url)[0] - ), + urllib.parse.unquote(re.findall(r"\/(?:raw|blob)\/(.+?)\/", url)[0]), safe="", ) project = urllib.parse.quote( - urllib.parse.unquote( - re.findall(r"\.(?:com|net|org)\/(.+?)\/-", url)[0] - ), + urllib.parse.unquote(re.findall(r"\.(?:com|net|org)\/(.+?)\/-", url)[0]), safe="", ) file_path = urllib.parse.quote( - urllib.parse.unquote( - re.findall(r"\/(?:raw|blob)\/.+?\/(.+?)$", url)[0] - ), + urllib.parse.unquote(re.findall(r"\/(?:raw|blob)\/.+?\/(.+?)$", url)[0]), safe="", ) @@ -262,11 +242,7 @@ def gitlab(self, url: str) -> str: # pylint: disable=broad-except except BaseException as e: # only use cache if we have a run id. Otherwise failures are from code preview. - if ( - self.run_id - and self.task.enable_source_cache == 1 - and self.task.source_cache - ): + if self.run_id and self.task.enable_source_cache == 1 and self.task.source_cache: RunnerLog( self.task, self.run_id, @@ -303,9 +279,7 @@ def gitlab(self, url: str) -> str: f"Failed to get source from {url}.\n{e}", ) - raise RunnerException( - self.task, self.run_id, 15, "No url specified to get source from." - ) + raise RunnerException(self.task, self.run_id, 15, "No url specified to get source from.") def web_url(self, url: str) -> str: """Get contents of a webpage.""" @@ -318,8 +292,7 @@ def web_url(self, url: str) -> str: self.query = page.text self.db_type = ( "mssql" - if self.task.source_database_conn - and self.task.source_database_conn.type_id == 2 + if self.task.source_database_conn and self.task.source_database_conn.type_id == 2 else None ) if page.status_code != 200: @@ -331,20 +304,14 @@ def web_url(self, url: str) -> str: db.session.commit() if self.refresh_cache: - RunnerLog( - self.task, self.run_id, 15, "Source cache manually refreshed." - ) + RunnerLog(self.task, self.run_id, 15, "Source cache manually refreshed.") # insert params return self.cleanup() # pylint: disable=broad-except except BaseException as e: - if ( - self.run_id - and self.task.enable_source_cache == 1 - and self.task.source_cache - ): + if self.run_id and self.task.enable_source_cache == 1 and self.task.source_cache: RunnerLog( self.task, self.run_id, @@ -363,11 +330,7 @@ def web_url(self, url: str) -> str: return self.cleanup() - elif ( - self.run_id - and self.task.enable_source_cache == 1 - and not self.task.source_cache - ): + elif self.run_id and self.task.enable_source_cache == 1 and not self.task.source_cache: raise RunnerException( self.task, self.run_id, @@ -385,8 +348,7 @@ def source(self, query: Optional[str] = None) -> str: self.query = query or self.task.source_code or "" self.db_type = ( "mssql" - if self.task.source_database_conn - and self.task.source_database_conn.type_id == 2 + if self.task.source_database_conn and self.task.source_database_conn.type_id == 2 else None ) return self.cleanup() @@ -414,16 +376,12 @@ def cleanup(self, query: Optional[str] = None) -> str: # only needed for mssql if self.task.source_type_id == 1 and self.db_type == "mssql": query = re.sub( - re.compile( - r"(^;?\s*;?)\buse\b\s+.+", flags=re.IGNORECASE | re.MULTILINE - ), + re.compile(r"(^;?\s*;?)\buse\b\s+.+", flags=re.IGNORECASE | re.MULTILINE), "", query, ) query = re.sub( - re.compile( - r"(^;?\s*;?)\buse\b\s+.+?;", flags=re.IGNORECASE | re.MULTILINE - ), + re.compile(r"(^;?\s*;?)\buse\b\s+.+?;", flags=re.IGNORECASE | re.MULTILINE), "", query, ) @@ -439,9 +397,7 @@ def cleanup(self, query: Optional[str] = None) -> str: # remove " go" query = re.sub( - re.compile( - r"^;?\s*?;?\bgo\b\s*?;?", flags=re.IGNORECASE | re.MULTILINE - ), + re.compile(r"^;?\s*?;?\bgo\b\s*?;?", flags=re.IGNORECASE | re.MULTILINE), r"", query, ) diff --git a/runner/scripts/em_date.py b/runner/scripts/em_date.py index 9862108a..d12ed705 100644 --- a/runner/scripts/em_date.py +++ b/runner/scripts/em_date.py @@ -20,7 +20,6 @@ years """ - import calendar import datetime import re @@ -157,11 +156,7 @@ def get_date_part(my_string: str) -> str: .replace("firstday", "1") .replace( "lastday", - str( - calendar.monthrange(date_from_string.year, date_from_string.month)[ - 1 - ] - ), + str(calendar.monthrange(date_from_string.year, date_from_string.month)[1]), ) ) @@ -185,9 +180,7 @@ def get_repeating_part(parts: List[str]) -> Optional[str]: return None try: - parameters = [ - x.group() for x in re.finditer(r"%[a-zA-Z]", self.date_string) - ] + parameters = [x.group() for x in re.finditer(r"%[a-zA-Z]", self.date_string)] parts = [] # split into parts @@ -206,9 +199,7 @@ def get_repeating_part(parts: List[str]) -> Optional[str]: date_string = param + split_parts[2] # update remaining parameters - parameters = [ - x.group() for x in re.finditer(r"%[a-zA-Z]", date_string) - ] + parameters = [x.group() for x in re.finditer(r"%[a-zA-Z]", date_string)] param = get_repeating_part(parameters) # need to add on the last part, if there are no more duplicate params. @@ -223,6 +214,4 @@ def get_repeating_part(parts: List[str]) -> Optional[str]: return self.date_string except BaseException as e: - raise RunnerException( - self.task, self.run_id, 17, f"Failed to parse date string.\n{e}" - ) + raise RunnerException(self.task, self.run_id, 17, f"Failed to parse date string.\n{e}") diff --git a/runner/scripts/em_file.py b/runner/scripts/em_file.py index 50c21357..8b0aa111 100644 --- a/runner/scripts/em_file.py +++ b/runner/scripts/em_file.py @@ -109,10 +109,7 @@ def save(self) -> Tuple[str, str, str]: returns [filename, filepath] of final file. """ - if ( - self.task.destination_file_name is None - or self.task.destination_file_name == "" - ): + if self.task.destination_file_name is None or self.task.destination_file_name == "": RunnerLog( self.task, self.run_id, @@ -120,19 +117,14 @@ def save(self) -> Tuple[str, str, str]: f"No filename specified, {Path(self.data_file.name).name} will be used.", ) - if ( - self.task.destination_file_name != "" - and self.task.destination_file_name is not None - ): + if self.task.destination_file_name != "" and self.task.destination_file_name is not None: # insert params self.file_name = self.params.insert_file_params( self.task.destination_file_name.strip() ) # parse python dates - self.file_name = DateParsing( - self.task, self.run_id, self.file_name - ).string_to_date() + self.file_name = DateParsing(self.task, self.run_id, self.file_name).string_to_date() else: self.file_name = Path(self.data_file.name).name @@ -200,8 +192,7 @@ def save(self) -> Tuple[str, str, str]: ) for row in reader: new_row = [ - (x.strip('"').strip("'") if isinstance(x, str) else x) - for x in row + (x.strip('"').strip("'") if isinstance(x, str) else x) for x in row ] if ( @@ -212,9 +203,7 @@ def save(self) -> Tuple[str, str, str]: self.task.destination_file_line_terminator is not None and self.task.destination_file_line_terminator != "" ): - new_row.append( - self.task.destination_file_line_terminator - ) + new_row.append(self.task.destination_file_line_terminator) wrtr.writerow(new_row) @@ -228,8 +217,7 @@ def save(self) -> Tuple[str, str, str]: ) for row in reader: new_row = [ - (x.strip('"').strip("'") if isinstance(x, str) else x) - for x in row + (x.strip('"').strip("'") if isinstance(x, str) else x) for x in row ] wrtr.writerow(new_row) @@ -300,9 +288,7 @@ def save(self) -> Tuple[str, str, str]: break self.file_hash.update(chunk) - RunnerLog( - self.task, self.run_id, 11, f"File md5 hash: {self.file_hash.hexdigest()}" - ) + RunnerLog(self.task, self.run_id, 11, f"File md5 hash: {self.file_hash.hexdigest()}") # create zip if self.task.destination_create_zip == 1: @@ -329,8 +315,6 @@ def save(self) -> Tuple[str, str, str]: self.file_name = self.zip_name self.file_path = str(Path(self.base_path).joinpath(self.zip_name)) - RunnerLog( - self.task, self.run_id, 11, f"ZIP archive created.\n{self.file_path}" - ) + RunnerLog(self.task, self.run_id, 11, f"ZIP archive created.\n{self.file_path}") return self.file_name, self.file_path, self.file_hash.hexdigest() diff --git a/runner/scripts/em_ftp.py b/runner/scripts/em_ftp.py index b2f70022..125b048a 100644 --- a/runner/scripts/em_ftp.py +++ b/runner/scripts/em_ftp.py @@ -1,6 +1,5 @@ """FTP connection manager.""" - import csv import fnmatch import ftplib # noqa: S402 @@ -44,9 +43,7 @@ def connect(connection: ConnectionFtp) -> FTP: conn = FTP(connection.address or "") # noqa: S321 conn.login( user=(connection.username or ""), - passwd=( - em_decrypt(connection.password, app.config["PASS_KEY"]) or "" - ), + passwd=(em_decrypt(connection.password, app.config["PASS_KEY"]) or ""), ) break except ftplib.error_reply as e: @@ -95,9 +92,7 @@ def __connect(self) -> FTP: except ValueError as e: raise RunnerException(self.task, self.run_id, 13, str(e)) - def _walk( - self, directory: str - ) -> Generator[Tuple[str, List[Any], List[str]], None, None]: + def _walk(self, directory: str) -> Generator[Tuple[str, List[Any], List[str]], None, None]: dirs = [] nondirs = [] @@ -124,13 +119,8 @@ def handle_binary(more_data: bytes) -> None: self.conn.retrbinary("RETR " + file_name, callback=handle_binary) data = "".join([str(x) for x in my_binary]) - with tempfile.NamedTemporaryFile( - mode="w", delete=False, dir=self.dir - ) as data_file: - if ( - self.task.source_sftp_ignore_delimiter != 1 - and self.task.source_sftp_delimiter - ): + with tempfile.NamedTemporaryFile(mode="w", delete=False, dir=self.dir) as data_file: + if self.task.source_sftp_ignore_delimiter != 1 and self.task.source_sftp_delimiter: my_delimiter = self.task.source_sftp_delimiter or "," csv_reader = csv.reader( @@ -216,9 +206,7 @@ def save(self, overwrite: int, file_name: str) -> None: # pylint: disable=broad-except except BaseException as e: - raise RunnerException( - self.task, self.run_id, 13, f"Failed to change path.\n{e}" - ) + raise RunnerException(self.task, self.run_id, 13, f"Failed to change path.\n{e}") if overwrite != 1: try: @@ -255,6 +243,4 @@ def __close(self) -> None: self.conn.close() except BaseException as e: - raise RunnerException( - self.task, self.run_id, 13, f"Failed to close connection.\n{e}" - ) + raise RunnerException(self.task, self.run_id, 13, f"Failed to close connection.\n{e}") diff --git a/runner/scripts/em_jdbc.py b/runner/scripts/em_jdbc.py index a6d87f5b..a0cc9c76 100644 --- a/runner/scripts/em_jdbc.py +++ b/runner/scripts/em_jdbc.py @@ -70,7 +70,7 @@ def __rows(self, size: int = 50) -> Generator: log = TaskLog( task_id=self.task.id, job_id=self.run_id, - status_id=20, + status_id=22, message=("Getting first %d query rows." % size), ) db.session.add(log) diff --git a/runner/scripts/em_messages.py b/runner/scripts/em_messages.py index 41fd6d77..675d8c9f 100644 --- a/runner/scripts/em_messages.py +++ b/runner/scripts/em_messages.py @@ -1,6 +1,5 @@ """Exception and logging messages.""" - import datetime import sys from dataclasses import dataclass @@ -110,10 +109,10 @@ def __init__( success=0, date=date, logs=logs, + host=app.config["WEB_HOST"], org=app.config["ORG_NAME"], ), - short_message=task.email_error_message - or f"Atlas Hub task {task} failed.", + short_message=task.email_error_message or f"Atlas Hub task {task} failed.", attachments=[], ) except BaseException as e: @@ -136,9 +135,7 @@ def __init__( if (redis_client.zincrby(f"runner_{task.id}_attempt", 0, "inc") or 1) <= ( task.max_retries or 0 ): - run_number = int( - redis_client.zincrby(f"runner_{task.id}_attempt", 0, "inc") or 1 - ) + run_number = int(redis_client.zincrby(f"runner_{task.id}_attempt", 0, "inc") or 1) # schedule a rerun in 5 minutes. RunnerLog( diff --git a/runner/scripts/em_params.py b/runner/scripts/em_params.py index dcc51e5a..9ead7be5 100644 --- a/runner/scripts/em_params.py +++ b/runner/scripts/em_params.py @@ -47,9 +47,7 @@ def insert_date(match: re.Match) -> str: # parse python dates for key, value in params_dict.items(): - params_dict[key] = re.sub( - r"\bparse\((.*?)\)", insert_date, value, re.IGNORECASE - ) + params_dict[key] = re.sub(r"\bparse\((.*?)\)", insert_date, value, re.IGNORECASE) # sort by key length.. longest first to avoid replacing wrong values return dict(sorted(params_dict.items(), key=lambda x: len(x[0]), reverse=True)) diff --git a/runner/scripts/em_postgres.py b/runner/scripts/em_postgres.py index b3ef7e89..fc0598d5 100644 --- a/runner/scripts/em_postgres.py +++ b/runner/scripts/em_postgres.py @@ -69,7 +69,7 @@ def __rows(self, size: int = 50) -> Generator: log = TaskLog( task_id=self.task.id, job_id=self.run_id, - status_id=20, + status_id=21, message=("Getting first %d query rows." % size), ) db.session.add(log) diff --git a/runner/scripts/em_python.py b/runner/scripts/em_python.py index 8af2a99d..0d1332ad 100644 --- a/runner/scripts/em_python.py +++ b/runner/scripts/em_python.py @@ -1,6 +1,5 @@ """Python script runner.""" - import ast import datetime import sys @@ -181,22 +180,15 @@ def __pip_install(self) -> None: else: # find all scripts in dir, but not in venv paths = list( - set(Path(self.job_path).rglob("*.py")) - - set(Path(self.env_path).rglob("*.py")) + set(Path(self.job_path).rglob("*.py")) - set(Path(self.env_path).rglob("*.py")) ) for this_file in paths: with open(this_file, "r") as my_file: for line in my_file: - imports.extend( - re.findall(r"^\s*?import\K\s+[^\.][^\s]+?\s+?$", line) - ) - imports.extend( - re.findall(r"^\s*?from\K\s+[^\.].+?(?=import)", line) - ) - imports.extend( - re.findall(r"^\s*?import\K\s+[^\.][^\s]+?(?=\s)", line) - ) + imports.extend(re.findall(r"^\s*?import\K\s+[^\.][^\s]+?\s+?$", line)) + imports.extend(re.findall(r"^\s*?from\K\s+[^\.].+?(?=import)", line)) + imports.extend(re.findall(r"^\s*?import\K\s+[^\.][^\s]+?(?=\s)", line)) package_map = { "dateutil": "python-dateutil", @@ -207,11 +199,7 @@ def __pip_install(self) -> None: # clean list imports = [ - str( - package_map.get( - x.strip().split(".")[0], x.strip().split(".")[0] - ) - ) + str(package_map.get(x.strip().split(".")[0], x.strip().split(".")[0])) for x in imports if x.strip() != "" ] @@ -239,11 +227,7 @@ def __pip_install(self) -> None: this_out.strip() for this_out in list( chain.from_iterable( - [ - g.split(" ") - for g in built_in_packages.split("\n") - if g != "" - ] + [g.split(" ") for g in built_in_packages.split("\n") if g != ""] ) ) if this_out.strip() != "" @@ -251,9 +235,7 @@ def __pip_install(self) -> None: # remove default python packages from list imports = [ - x.strip() - for x in imports - if x not in cleaned_built_in_packages and x.strip() + x.strip() for x in imports if x not in cleaned_built_in_packages and x.strip() ] # try to install @@ -271,9 +253,7 @@ def __pip_install(self) -> None: + " with command: " + "\n" + cmd, - error_msg="Failed to install imports with command: " - + "\n" - + cmd, + error_msg="Failed to install imports with command: " + "\n" + cmd, ).shell() except BaseException as e: @@ -298,8 +278,7 @@ def __run_script(self) -> None: "connection_string": em_decrypt( external_db.connection_string, app.config["PASS_KEY"] ), - "timeout": external_db.timeout - or app.config["DEFAULT_SQL_TIMEOUT"], + "timeout": external_db.timeout or app.config["DEFAULT_SQL_TIMEOUT"], } elif external_db.database_type.id == 2: # mssql @@ -307,8 +286,7 @@ def __run_script(self) -> None: "connection_string": em_decrypt( external_db.connection_string, app.config["PASS_KEY"] ), - "timeout": external_db.timeout - or app.config["DEFAULT_SQL_TIMEOUT"], + "timeout": external_db.timeout or app.config["DEFAULT_SQL_TIMEOUT"], } elif self.task.source_type_id == 2: # smb file connection = em_smb.connection_json(self.task.source_smb_conn) @@ -371,19 +349,13 @@ def clean_string(text: Optional[Union[str, int, datetime.datetime]]) -> str: "source_type_id": clean_string(self.task.source_type_id), "source_database_id": clean_string(self.task.source_database_id), "source_query_type_id": clean_string(self.task.source_query_type_id), - "source_query_include_header": clean_string( - self.task.source_query_include_header - ), + "source_query_include_header": clean_string(self.task.source_query_include_header), "source_git": clean_string(self.task.source_git), "source_devops": clean_string(self.task.source_devops), "source_url": clean_string(self.task.source_url), - "source_require_sql_output": clean_string( - self.task.source_require_sql_output - ), + "source_require_sql_output": clean_string(self.task.source_require_sql_output), "enable_source_cache": clean_string(self.task.enable_source_cache), - "destination_file_delimiter": clean_string( - self.task.destination_file_delimiter - ), + "destination_file_delimiter": clean_string(self.task.destination_file_delimiter), "destination_file_name": clean_string(self.task.destination_file_name), "destination_ignore_delimiter": clean_string( self.task.destination_ignore_delimiter @@ -391,35 +363,21 @@ def clean_string(text: Optional[Union[str, int, datetime.datetime]]) -> str: "destination_file_line_terminator": clean_string( self.task.destination_file_line_terminator ), - "destination_quote_level_id": clean_string( - self.task.destination_quote_level_id - ), - "destination_create_zip": clean_string( - self.task.destination_create_zip - ), + "destination_quote_level_id": clean_string(self.task.destination_quote_level_id), + "destination_create_zip": clean_string(self.task.destination_create_zip), "destination_zip_name": clean_string(self.task.destination_zip_name), - "destination_file_type_id": clean_string( - self.task.destination_file_type_id - ), + "destination_file_type_id": clean_string(self.task.destination_file_type_id), "email_completion": clean_string(self.task.email_completion), "email_completion_log": clean_string(self.task.email_completion_log), "email_completion_file": clean_string(self.task.email_completion_file), - "email_completion_file_embed": clean_string( - self.task.email_completion_file_embed - ), + "email_completion_file_embed": clean_string(self.task.email_completion_file_embed), "email_completion_dont_send_empty_file": clean_string( self.task.email_completion_dont_send_empty_file ), - "email_completion_recipients": clean_string( - self.task.email_completion_recipients - ), - "email_completion_message": clean_string( - self.task.email_completion_message - ), + "email_completion_recipients": clean_string(self.task.email_completion_recipients), + "email_completion_message": clean_string(self.task.email_completion_message), "email_error": clean_string(self.task.email_error), - "email_error_recipients": clean_string( - self.task.email_error_recipients - ), + "email_error_recipients": clean_string(self.task.email_error_recipients), "email_error_message": clean_string(self.task.email_error_message), "max_retries": clean_string(self.task.max_retries), "est_duration": clean_string(self.task.est_duration), diff --git a/runner/scripts/em_sftp.py b/runner/scripts/em_sftp.py index 0f7c3759..b72ef04f 100644 --- a/runner/scripts/em_sftp.py +++ b/runner/scripts/em_sftp.py @@ -1,6 +1,5 @@ """SFTP connection manager.""" - import csv import fnmatch import os @@ -39,9 +38,11 @@ def connection_key(connection: ConnectionSftp) -> Optional[paramiko.pkey.PKey]: key = paramiko.RSAKey.from_private_key_file( key_file.name, - password=em_decrypt(connection.key_password, app.config["PASS_KEY"]) - if connection.key_password - else None, + password=( + em_decrypt(connection.key_password, app.config["PASS_KEY"]) + if connection.key_password + else None + ), ) return key @@ -81,9 +82,11 @@ def connect(connection: ConnectionSftp) -> Tuple[Transport, SFTPClient]: transport.auth_publickey(connection.username, key, event=None) transport.auth_password( connection.username, - em_decrypt(connection.password, app.config["PASS_KEY"]) - if connection.password - else "", + ( + em_decrypt(connection.password, app.config["PASS_KEY"]) + if connection.password + else "" + ), event=None, ) @@ -147,9 +150,7 @@ def __connect(self) -> Tuple[Transport, SFTPClient]: except ValueError as e: raise RunnerException(self.task, self.run_id, 9, str(e)) - def _walk( - self, directory: str - ) -> Generator[Tuple[str, List[Any], List[str]], None, None]: + def _walk(self, directory: str) -> Generator[Tuple[str, List[Any], List[str]], None, None]: dirs = [] nondirs = [] @@ -185,14 +186,9 @@ def load_data(file_obj: SFTPFile) -> Generator: break yield data - with tempfile.NamedTemporaryFile( - mode="w", delete=False, dir=self.dir - ) as data_file: + with tempfile.NamedTemporaryFile(mode="w+", delete=False, dir=self.dir) as data_file: for data in load_data(sftp_file): - if ( - self.task.source_sftp_ignore_delimiter != 1 - and self.task.source_sftp_delimiter - ): + if self.task.source_sftp_ignore_delimiter != 1 and self.task.source_sftp_delimiter: my_delimiter = self.task.source_sftp_delimiter or "," csv_reader = csv.reader( @@ -280,9 +276,7 @@ def save(self, overwrite: int, file_name: str) -> None: self.conn.chdir(self.__clean_path(self.connection.path or "/")) except BaseException as e: - raise RunnerException( - self.task, self.run_id, 9, f"Failed to change path.\n{e}" - ) + raise RunnerException(self.task, self.run_id, 9, f"Failed to change path.\n{e}") if overwrite != 1: try: @@ -343,6 +337,4 @@ def __close(self) -> None: self.transport.close() except BaseException as e: - raise RunnerException( - self.task, self.run_id, 9, f"Failed to close connection.\n{e}" - ) + raise RunnerException(self.task, self.run_id, 9, f"Failed to close connection.\n{e}") diff --git a/runner/scripts/em_smb.py b/runner/scripts/em_smb.py index 0c556c73..2104b870 100644 --- a/runner/scripts/em_smb.py +++ b/runner/scripts/em_smb.py @@ -39,9 +39,7 @@ def connection_json(connection: SMBConnection) -> Dict: } -def connect( - username: str, password: str, server_name: str, server_ip: str -) -> SMBConnection: +def connect(username: str, password: str, server_name: str, server_ip: str) -> SMBConnection: """Connect to SMB server. After making a connection we save it to redis. Next time we need a connection @@ -137,9 +135,7 @@ def __init__( self.username = self.connection.username self.password = self.connection.password self.server_ip = self.connection.server_ip - self.server_name = ( - self.connection.server_name if self.connection else "Error" - ) + self.server_name = self.connection.server_name if self.connection else "Error" else: # default connection for backups self.share_name = app.config["SMB_DEFAULT_SHARE"].strip("/").strip("\\") @@ -170,9 +166,7 @@ def __connect(self) -> SMBConnection: except ValueError as e: raise RunnerException(self.task, self.run_id, 10, str(e)) - def _walk( - self, directory: str - ) -> Generator[Tuple[str, List[Any], List[str]], None, None]: + def _walk(self, directory: str) -> Generator[Tuple[str, List[Any], List[str]], None, None]: dirs = [] nondirs = [] @@ -191,10 +185,8 @@ def _walk( new_path = str(Path(directory).joinpath(dirname)) yield from self._walk(new_path) - def __load_file(self, file_name: str, index: int, length: int) -> IO[str]: - RunnerLog( - self.task, self.run_id, 10, f"({index} of {length}) downloading {file_name}" - ) + def __load_file(self, file_name: str, index: int, length: int) -> IO[Any]: + RunnerLog(self.task, self.run_id, 10, f"({index} of {length}) downloading {file_name}") director = urllib.request.build_opener(SMBHandler) @@ -214,14 +206,9 @@ def load_data(file_obj: TextIOWrapper) -> Generator: # send back contents - with tempfile.NamedTemporaryFile( - mode="wb+", delete=False, dir=self.dir - ) as data_file: + with tempfile.NamedTemporaryFile(mode="wb+", delete=False, dir=self.dir) as data_file: for data in load_data(open_file_for_read): - if ( - self.task.source_smb_ignore_delimiter != 1 - and self.task.source_smb_delimiter - ): + if self.task.source_smb_ignore_delimiter != 1 and self.task.source_smb_delimiter: my_delimiter = self.task.source_smb_delimiter or "," csv_reader = csv.reader( @@ -310,8 +297,8 @@ def save(self, overwrite: int, file_name: str) -> str: # type: ignore[return] Path( ( Path( - sanitize_filename(self.subfolder) - / sanitize_filename(self.task.project.name or "") + Path(sanitize_filename(self.subfolder or "")) + / Path(sanitize_filename(self.task.project.name or "")) ) if self.subfolder else Path(sanitize_filename(self.task.project.name or "")) @@ -358,16 +345,12 @@ def save(self, overwrite: int, file_name: str) -> str: # type: ignore[return] except BaseException: pass - with open( - str(self.dir.joinpath(file_name)), "rb", buffering=0 - ) as file_obj: + with open(str(self.dir.joinpath(file_name)), "rb", buffering=0) as file_obj: uploaded_size = self.conn.storeFile( self.share_name, dest_path, file_obj, timeout=120 ) - server_name = ( - "backup" if self.connection is None else self.connection.server_name - ) + server_name = "backup" if self.connection is None else self.connection.server_name RunnerLog( self.task, diff --git a/runner/scripts/em_smtp.py b/runner/scripts/em_smtp.py index a553eff4..aa21caf9 100644 --- a/runner/scripts/em_smtp.py +++ b/runner/scripts/em_smtp.py @@ -73,16 +73,12 @@ def __send_ssms(self) -> None: if app.config.get("SMTP_USE_TLS", False): mail_server.starttls() mail_server.ehlo() - - if app.config.get("SMTP_USERNAME"): mail_server.login( app.config["SMTP_USERNAME"], app.config.get("SMTP_PASSWORD", None), ) - mail_server.sendmail( - app.config["SMTP_SENDER_EMAIL"], phone, self.msg.as_string() - ) + mail_server.sendmail(app.config["SMTP_SENDER_EMAIL"], phone, self.msg.as_string()) mail_server.quit() log = TaskLog( @@ -112,9 +108,7 @@ def __send_mail(self) -> None: self.msg = MIMEMultipart() self.msg["From"] = email.utils.formataddr( # type: ignore[attr-defined] ( - email.header.Header(app.config["SMTP_SENDER_NAME"], "utf-8").encode( - "utf-8" - ), + email.header.Header(app.config["SMTP_SENDER_NAME"], "utf-8").encode("utf-8"), app.config["SMTP_SENDER_EMAIL"], ) ) @@ -145,6 +139,13 @@ def __send_mail(self) -> None: ) mail_server.ehlo() + if app.config.get("SMTP_USE_TLS", False): + mail_server.starttls() + mail_server.ehlo() + mail_server.login( + app.config["SMTP_USERNAME"], + app.config.get("SMTP_PASSWORD", None), + ) mail_server.sendmail( app.config["SMTP_SENDER_EMAIL"], self.mailto, self.msg.as_string() ) diff --git a/runner/scripts/em_ssh.py b/runner/scripts/em_ssh.py index 09989ca4..cb215d8e 100644 --- a/runner/scripts/em_ssh.py +++ b/runner/scripts/em_ssh.py @@ -1,4 +1,5 @@ """SSH connection handler.""" + import select import sys import time @@ -73,18 +74,14 @@ def __connect(self) -> paramiko.SSHClient: try: return connect(self.connection) except BaseException as e: - raise RunnerException( - self.task, self.run_id, 19, f"Failed to connect.\n{e}" - ) + raise RunnerException(self.task, self.run_id, 19, f"Failed to connect.\n{e}") def __close(self) -> None: try: self.session.close() except BaseException as e: - raise RunnerException( - self.task, self.run_id, 19, f"Failed to disconnect.\n{e}" - ) + raise RunnerException(self.task, self.run_id, 19, f"Failed to disconnect.\n{e}") def run(self) -> None: """Run an SSH Command. @@ -113,11 +110,7 @@ def run(self) -> None: stderr_data = b"" stdout_data = b"" - while ( - not channel.closed - or channel.recv_ready() - or channel.recv_stderr_ready() - ): + while not channel.closed or channel.recv_ready() or channel.recv_stderr_ready(): got_chunk = False readq, _, _ = select.select([stdout.channel], [], [], timeout) @@ -126,9 +119,7 @@ def run(self) -> None: stdout_data += stdout.channel.recv(len(chunk.in_buffer)) got_chunk = True if chunk.recv_stderr_ready(): - stderr_data += stderr.channel.recv_stderr( - len(chunk.in_stderr_buffer) - ) + stderr_data += stderr.channel.recv_stderr(len(chunk.in_stderr_buffer)) got_chunk = True if ( @@ -163,8 +154,6 @@ def run(self) -> None: ) except BaseException as e: - raise RunnerException( - self.task, self.run_id, 19, f"Failed to run command.\n{e}" - ) + raise RunnerException(self.task, self.run_id, 19, f"Failed to run command.\n{e}") self.__close() diff --git a/runner/scripts/smb_fix.py b/runner/scripts/smb_fix.py index 7cdaaede..4c1297c3 100644 --- a/runner/scripts/smb_fix.py +++ b/runner/scripts/smb_fix.py @@ -1,4 +1,5 @@ """Update to an older version of https://github.com/miketeo/pysmb. Waiting for next release.""" + # flake8: noqa # type: ignore # mypy: ignore-errors @@ -134,9 +135,7 @@ def smb_open(self, req): return addinfourl(fp, headers, req.get_full_url()) except Exception as ex: - raise urllib.error.URLError("smb error: %s" % ex).with_traceback( - sys.exc_info()[2] - ) + raise urllib.error.URLError("smb error: %s" % ex).with_traceback(sys.exc_info()[2]) def createTempFile(self): return tempfile.TemporaryFile() diff --git a/runner/scripts/task_runner.py b/runner/scripts/task_runner.py index acea1e1e..1c652303 100644 --- a/runner/scripts/task_runner.py +++ b/runner/scripts/task_runner.py @@ -189,6 +189,8 @@ def __init__(self, task_id: int) -> None: next_task_id = task_id_list[ task_id_list.index(task.id) + 1 : task_id_list.index(task.id) + 2 ] + # find a way to check that next ids are the same rank then loop through them. + # also will need to make sure that all tasks in same rank are done before kicking off next rank job. if next_task_id: # trigger next task RunnerLog( @@ -227,13 +229,9 @@ def __get_source(self) -> None: RunnerLog(self.task, self.run_id, 8, "Loading query...") query = self.__get_query() except BaseException as e: - raise RunnerException( - self.task, self.run_id, 8, f"Failed to load query.\n{e}" - ) + raise RunnerException(self.task, self.run_id, 8, f"Failed to load query.\n{e}") - RunnerLog( - self.task, self.run_id, 8, "Starting query run, waiting for results..." - ) + RunnerLog(self.task, self.run_id, 8, "Starting query run, waiting for results...") if external_db.database_type.id == 1: # postgres try: @@ -243,8 +241,7 @@ def __get_source(self) -> None: connection=em_decrypt( external_db.connection_string, app.config["PASS_KEY"] ), - timeout=external_db.timeout - or app.config["DEFAULT_SQL_TIMEOUT"], + timeout=external_db.timeout or app.config["DEFAULT_SQL_TIMEOUT"], directory=self.temp_path, ).run(query) @@ -264,8 +261,7 @@ def __get_source(self) -> None: connection=em_decrypt( external_db.connection_string, app.config["PASS_KEY"] ), - timeout=external_db.timeout - or app.config["DEFAULT_SQL_TIMEOUT"], + timeout=external_db.timeout or app.config["DEFAULT_SQL_TIMEOUT"], directory=self.temp_path, ).run(query) @@ -306,9 +302,7 @@ def __get_source(self) -> None: elif self.task.source_type_id == 2: # smb file if self.task.source_smb_file: RunnerLog(self.task, self.run_id, 10, "Loading data from server...") - file_name = self.param_loader.insert_file_params( - self.task.source_smb_file - ) + file_name = self.param_loader.insert_file_params(self.task.source_smb_file) file_name = DateParsing( task=self.task, run_id=self.run_id, @@ -327,9 +321,7 @@ def __get_source(self) -> None: elif self.task.source_type_id == 3: # sftp file if self.task.source_sftp_file: RunnerLog(self.task, self.run_id, 9, "Loading data from server...") - file_name = self.param_loader.insert_file_params( - self.task.source_sftp_file - ) + file_name = self.param_loader.insert_file_params(self.task.source_sftp_file) file_name = DateParsing( task=self.task, run_id=self.run_id, @@ -348,9 +340,7 @@ def __get_source(self) -> None: elif self.task.source_type_id == 4: # ftp file if self.task.source_ftp_file: RunnerLog(self.task, self.run_id, 13, "Loading data from server...") - file_name = self.param_loader.insert_file_params( - self.task.source_ftp_file - ) + file_name = self.param_loader.insert_file_params(self.task.source_ftp_file) file_name = DateParsing( task=self.task, run_id=self.run_id, @@ -390,9 +380,7 @@ def __get_query(self) -> str: query = self.source_loader.source() elif self.task.source_query_type_id == 2: # smb - file_name = self.param_loader.insert_file_params( - self.task.source_query_file - ) + file_name = self.param_loader.insert_file_params(self.task.source_query_file) file_name = DateParsing( task=self.task, run_id=self.run_id, @@ -428,10 +416,7 @@ def __process(self) -> None: processing_script_name = self.temp_path / (self.run_id + ".py") my_file = "" - if ( - self.task.processing_type_id == 1 - and self.task.processing_smb_id is not None - ): + if self.task.processing_type_id == 1 and self.task.processing_smb_id is not None: file_name = self.param_loader.insert_file_params(self.task.source_smb_file) file_name = DateParsing( task=self.task, @@ -450,13 +435,8 @@ def __process(self) -> None: .name ).read_text("utf8") - elif ( - self.task.processing_type_id == 2 - and self.task.processing_sftp_id is not None - ): - file_name = self.param_loader.insert_file_params( - self.task.processing_sftp_file - ) + elif self.task.processing_type_id == 2 and self.task.processing_sftp_id is not None: + file_name = self.param_loader.insert_file_params(self.task.processing_sftp_file) file_name = DateParsing( task=self.task, run_id=self.run_id, @@ -474,13 +454,8 @@ def __process(self) -> None: .name ).read_text("utf8") - elif ( - self.task.processing_type_id == 3 - and self.task.processing_ftp_id is not None - ): - file_name = self.param_loader.insert_file_params( - self.task.processing_ftp_file - ) + elif self.task.processing_type_id == 3 and self.task.processing_ftp_id is not None: + file_name = self.param_loader.insert_file_params(self.task.processing_ftp_file) file_name = DateParsing( task=self.task, run_id=self.run_id, @@ -500,10 +475,7 @@ def __process(self) -> None: elif self.task.processing_type_id == 4 and self.task.processing_git is not None: # if a dir is specified then download all files - if ( - self.task.processing_command is not None - and self.task.processing_command != "" - ): + if self.task.processing_command is not None and self.task.processing_command != "": try: split_url = re.split("#|@", self.task.processing_git) branch = None @@ -518,12 +490,8 @@ def __process(self) -> None: base_url, flags=re.IGNORECASE, ) - .replace( - "", urllib.parse.quote(app.config["GIT_USERNAME"]) - ) - .replace( - "", urllib.parse.quote(app.config["GIT_PASSWORD"]) - ) + .replace("", urllib.parse.quote(app.config["GIT_USERNAME"])) + .replace("", urllib.parse.quote(app.config["GIT_PASSWORD"])) ) cmd = ( @@ -572,8 +540,7 @@ def __process(self) -> None: run_id=self.run_id, cmd=cmd, success_msg="Repo cloned", - error_msg="Failed to clone repo: %s" - % (self.task.processing_url,), + error_msg="Failed to clone repo: %s" % (self.task.processing_url,), ).shell() processing_script_name = str(self.temp_path) + ( @@ -589,26 +556,16 @@ def __process(self) -> None: else: my_file = self.source_loader.web_url(self.task.processing_url) - elif ( - self.task.processing_type_id == 6 and self.task.processing_code is not None - ): + elif self.task.processing_type_id == 6 and self.task.processing_code is not None: my_file = self.task.processing_code - elif ( - self.task.processing_type_id == 7 - and self.task.processing_devops is not None - ): + elif self.task.processing_type_id == 7 and self.task.processing_devops is not None: # if a dir is specified then download all files - if ( - self.task.processing_command is not None - and self.task.processing_command != "" - ): + if self.task.processing_command is not None and self.task.processing_command != "": try: token = app.config["DEVOPS_TOKEN"] creds = cd.BasicAuthentication("", token) - connection = Connection( - base_url=app.config["DEVOPS_URL"], creds=creds - ) + connection = Connection(base_url=app.config["DEVOPS_URL"], creds=creds) # Get a client (the "core" client provides access to projects, teams, etc) core_client = connection.clients.get_core_client() @@ -625,18 +582,14 @@ def __process(self) -> None: rf"\.(?:com\/{org_name[0]}\/{project[0]}\/_git)\/(.+?)\?", url ) # need this to get the projects id - projects = [ - i for i in get_projects_response if (i.name == project[0]) - ] + projects = [i for i in get_projects_response if (i.name == project[0])] path = re.findall(r"(path[=])\/(.+?)(&|$)", url) # if branch is specified, we need to get that, else pass in main branch. this_branch = re.findall(r"(version[=]GB)(.+?)$", url) version = AttributeDict( { - "version": ( - "main" if len(this_branch) == 0 else this_branch[0][1] - ), + "version": ("main" if len(this_branch) == 0 else this_branch[0][1]), "version_type": 0, "version_options": 0, } @@ -699,9 +652,7 @@ def __process(self) -> None: # pylint: disable=broad-except except BaseException as e: - raise RunnerException( - self.task, self.run_id, 8, f"Processing script failure:\n{e}" - ) + raise RunnerException(self.task, self.run_id, 8, f"Processing script failure:\n{e}") try: # run processing script @@ -710,15 +661,15 @@ def __process(self) -> None: run_id=self.run_id, directory=self.temp_path, source_files=self.source_files, - script=self.task.processing_command or processing_script_name.name - if self.task.processing_type_id != 6 # source code - else processing_script_name.name, + script=( + self.task.processing_command or processing_script_name.name + if self.task.processing_type_id != 6 # source code + else processing_script_name.name + ), params=self.param_loader, ).run() except BaseException as e: - raise RunnerException( - self.task, self.run_id, 8, f"Processing script failure:\n{e}" - ) + raise RunnerException(self.task, self.run_id, 8, f"Processing script failure:\n{e}") # allow processor to rename file if output: @@ -746,8 +697,8 @@ def __process(self) -> None: os.link(data_file.name, original_name) - data_file.name = original_name # type: ignore[misc] - self.source_files.append(data_file) + data_file.name = original_name + self.source_files.append(data_file) # type: ignore except BaseException as e: raise RunnerException( @@ -825,10 +776,7 @@ def __store_files(self) -> None: # send to sftp if self.task.destination_sftp == 1 and self.task.destination_sftp_conn: - if ( - self.task.destination_sftp_dont_send_empty_file == 1 - and this_file_size == 0 - ): + if self.task.destination_sftp_dont_send_empty_file == 1 and this_file_size == 0: RunnerLog( self.task, self.run_id, @@ -848,10 +796,7 @@ def __store_files(self) -> None: # send to ftp if self.task.destination_ftp == 1 and self.task.destination_ftp_conn: - if ( - self.task.destination_ftp_dont_send_empty_file == 1 - and this_file_size == 0 - ): + if self.task.destination_ftp_dont_send_empty_file == 1 and this_file_size == 0: RunnerLog( self.task, self.run_id, @@ -871,10 +816,7 @@ def __store_files(self) -> None: # save to smb if self.task.destination_smb == 1 and self.task.destination_smb_conn: - if ( - self.task.destination_smb_dont_send_empty_file == 1 - and this_file_size == 0 - ): + if self.task.destination_smb_dont_send_empty_file == 1 and this_file_size == 0: RunnerLog( self.task, self.run_id, @@ -911,19 +853,17 @@ def __send_email(self) -> None: try: template = env.get_template("email/email.html.j2") except BaseException as e: - raise RunnerException( - self.task, self.run_id, 8, f"Failed to get email template.\n{e}" - ) + raise RunnerException(self.task, self.run_id, 8, f"Failed to get email template.\n{e}") # success email if self.task.email_completion == 1 and ( - (len(error_logs) < 1 and self.task.email_error == 1) - or self.task.email_error != 1 + (len(error_logs) < 1 and self.task.email_error == 1) or self.task.email_error != 1 ): RunnerLog(self.task, self.run_id, 8, "Sending completion email.") output: List[List[str]] = [] empty = 0 + num_lines = 0 attachments: List[str] = [] if self.task.email_completion_file == 1 and len(self.output_files) > 0: @@ -931,16 +871,24 @@ def __send_email(self) -> None: if self.task.email_completion_file_embed == 1: with open(output_file, newline="") as csvfile: output.extend(list(csv.reader(csvfile))) - + with open(output_file, "r") as f: + num_lines = len(f.readlines()) # check attachement file size if the task # should not send blank files if ( self.task.email_completion_dont_send_empty_file == 1 and output_file # if query and data is blank, or other types and file is 0 - and os.path.getsize(output_file) == 0 + # don't attach file if it is just the header. + and ( + os.path.getsize(output_file) == 0 + or (self.task.source_query_include_header == 1 and num_lines <= 1) + ) ): empty = 1 + # there may be multiple output files. If one isn't empty, still include it. + else: + empty = 0 attachments.append(output_file) @@ -961,9 +909,7 @@ def __send_email(self) -> None: ) if self.task.email_completion_subject: - subject = self.param_loader.insert_file_params( - self.task.email_completion_subject - ) + subject = self.param_loader.insert_file_params(self.task.email_completion_subject) subject = DateParsing(self.task, None, subject).string_to_date() try: @@ -999,6 +945,4 @@ def __clean_up(self) -> None: # pylint: disable=broad-except except BaseException as e: - raise RunnerException( - self.task, self.run_id, 8, f"Failed to clean up job.\n{e}" - ) + raise RunnerException(self.task, self.run_id, 8, f"Failed to clean up job.\n{e}") diff --git a/runner/tests/__init__.py b/runner/tests/__init__.py index 3a49a28b..ddedae7e 100644 --- a/runner/tests/__init__.py +++ b/runner/tests/__init__.py @@ -5,6 +5,7 @@ poetry run pytest runner/tests/ \ --cov --cov-append --cov-branch --cov-report=term-missing --disable-warnings """ + import sys from pathlib import Path diff --git a/runner/tests/conftest.py b/runner/tests/conftest.py index 40d32a76..d5123d34 100644 --- a/runner/tests/conftest.py +++ b/runner/tests/conftest.py @@ -1,4 +1,5 @@ """Setyp pytest.""" + import os import pytest diff --git a/runner/tests/test_filters.py b/runner/tests/test_filters.py index 930c4d8c..0e8a192c 100644 --- a/runner/tests/test_filters.py +++ b/runner/tests/test_filters.py @@ -11,6 +11,7 @@ """ + import datetime from pytest import fixture diff --git a/runner/tests/test_scripts_code.py b/runner/tests/test_scripts_code.py index e6d1ff6d..1e4efe3d 100644 --- a/runner/tests/test_scripts_code.py +++ b/runner/tests/test_scripts_code.py @@ -11,7 +11,6 @@ """ - from pytest import fixture from runner.extensions import db diff --git a/runner/tests/test_scripts_date.py b/runner/tests/test_scripts_date.py index 68e09451..d2187d7a 100644 --- a/runner/tests/test_scripts_date.py +++ b/runner/tests/test_scripts_date.py @@ -11,7 +11,6 @@ """ - import calendar import datetime @@ -404,9 +403,7 @@ def test_complex_patterns(client_fixture: fixture) -> None: my_date_string = DateParsing(task, None, "%m-6-%d-30-%Y+1-lastday").string_to_date() - new_date = datetime.datetime.now() + relativedelta.relativedelta( - months=-6, days=-30, years=1 - ) + new_date = datetime.datetime.now() + relativedelta.relativedelta(months=-6, days=-30, years=1) last_day = calendar.monthrange( int(new_date.strftime("%Y")), @@ -418,13 +415,9 @@ def test_complex_patterns(client_fixture: fixture) -> None: task, None, "%m-6-%d-30-%Y+1-lastday_something_cool_%m+6-%d+30-%Y-1-lastday" ).string_to_date() - new_date = datetime.datetime.now() + relativedelta.relativedelta( - months=-6, days=-30, years=1 - ) + new_date = datetime.datetime.now() + relativedelta.relativedelta(months=-6, days=-30, years=1) - last_day = calendar.monthrange( - int(new_date.strftime("%Y")), int(new_date.strftime("%m")) - )[1] + last_day = calendar.monthrange(int(new_date.strftime("%Y")), int(new_date.strftime("%m")))[1] second_new_date = datetime.datetime.now() + relativedelta.relativedelta( months=6, days=30, years=-1 @@ -436,6 +429,4 @@ def test_complex_patterns(client_fixture: fixture) -> None: assert my_date_string == new_date.strftime("%m-%d-%Y-") + str( last_day - ) + "_something_cool_" + second_new_date.strftime("%m-%d-%Y-") + str( - second_last_day - ) + ) + "_something_cool_" + second_new_date.strftime("%m-%d-%Y-") + str(second_last_day) diff --git a/runner/tests/test_scripts_postgres.py b/runner/tests/test_scripts_postgres.py index 1f60c7b4..16bf579c 100644 --- a/runner/tests/test_scripts_postgres.py +++ b/runner/tests/test_scripts_postgres.py @@ -10,6 +10,7 @@ --cov --cov-append --cov-branch --cov-report=term-missing --disable-warnings """ + from pathlib import Path import pytest @@ -47,9 +48,7 @@ def test_connection_failure(client_fixture: fixture) -> None: temp_dir.mkdir(parents=True, exist_ok=True) with pytest.raises(ValueError) as e: - pg = Postgres( - task, None, str(task.source_database_conn.connection_string), 90, temp_dir - ) + pg = Postgres(task, None, str(task.source_database_conn.connection_string), 90, temp_dir) assert "Failed to connect to database" in e assert 'missing "=" after "asdf"' in e diff --git a/runner/tests/test_scripts_sftp.py b/runner/tests/test_scripts_sftp.py index bbce4263..3a22d470 100644 --- a/runner/tests/test_scripts_sftp.py +++ b/runner/tests/test_scripts_sftp.py @@ -10,6 +10,7 @@ --cov --cov-append --cov-branch --cov-report=term-missing --disable-warnings """ + import sys import tempfile from pathlib import Path diff --git a/runner/tests/test_scripts_sqlserver.py b/runner/tests/test_scripts_sqlserver.py index 84fba902..ba6a9e2a 100644 --- a/runner/tests/test_scripts_sqlserver.py +++ b/runner/tests/test_scripts_sqlserver.py @@ -48,9 +48,7 @@ def test_connection_failure(client_fixture: fixture) -> None: temp_dir.mkdir(parents=True, exist_ok=True) with pytest.raises(ValueError) as e: - pg = SqlServer( - task, None, str(task.source_database_conn.connection_string), 90, temp_dir - ) + pg = SqlServer(task, None, str(task.source_database_conn.connection_string), 90, temp_dir) assert "Failed to connection to database." in e assert "Neither DSN nor SERVER keyword supplied" in e diff --git a/runner/tests/test_scripts_system.py b/runner/tests/test_scripts_system.py index 29802606..1ad5aff7 100644 --- a/runner/tests/test_scripts_system.py +++ b/runner/tests/test_scripts_system.py @@ -11,7 +11,6 @@ """ - import pytest from pytest import fixture diff --git a/runner/web/__init__.py b/runner/web/__init__.py index a1b3397c..e90350ac 100644 --- a/runner/web/__init__.py +++ b/runner/web/__init__.py @@ -1,2 +1,3 @@ """Import web modules.""" + print(__name__) # noqa: T201 diff --git a/runner/web/web.py b/runner/web/web.py index 1e8978b7..50433df4 100644 --- a/runner/web/web.py +++ b/runner/web/web.py @@ -10,6 +10,7 @@ from flask import jsonify from jinja2 import Environment, PackageLoader, select_autoescape from pathvalidate import sanitize_filename +from werkzeug import Response from runner import executor from runner.model import ( @@ -49,13 +50,13 @@ @web_bp.route("/api") -def alive() -> dict: +def alive() -> Response: """Check API status.""" return jsonify({"status": "alive"}) @web_bp.route("/api/send_ftp///") -def send_ftp(task_id: int, run_id: int, file_id: int) -> dict: +def send_ftp(task_id: int, run_id: int, file_id: int) -> Response: """Send file to FPT server specified in the task. File is loaded from the backup SMB file server into a tempfile. @@ -99,7 +100,7 @@ def send_ftp(task_id: int, run_id: int, file_id: int) -> dict: @web_bp.route("/api/send_sftp//") -def send_sftp(run_id: int, file_id: int) -> dict: +def send_sftp(run_id: int, file_id: int) -> Response: """Send file to SFPT server specified in the task. File is loaded from the backup SMB file server into a tempfile. @@ -146,7 +147,7 @@ def send_sftp(run_id: int, file_id: int) -> dict: @web_bp.route("/api/send_smb//") -def send_smb(run_id: int, file_id: int) -> dict: +def send_smb(run_id: int, file_id: int) -> Response: """Send file to SMB server specified in the task. File is loaded from the backup SMB file server into a tempfile. @@ -193,7 +194,7 @@ def send_smb(run_id: int, file_id: int) -> dict: @web_bp.route("/api/send_email///") -def send_email(run_id: int, file_id: int) -> dict: +def send_email(run_id: int, file_id: int) -> Response: """Send file to email address specified in the task. File is loaded from the backup SMB file server into a tempfile. @@ -232,10 +233,7 @@ def send_email(run_id: int, file_id: int) -> dict: run_id=str(run_id), recipients=task.email_completion_recipients, short_message=f"Atlas Hub: {task.name} data emailed.", - subject="(Manual Send) Project: " - + task.project.name - + " / Task: " - + task.name, + subject="(Manual Send) Project: " + task.project.name + " / Task: " + task.name, message=template.render( task=task, success=1, date=date, logs=[], org=app.config["ORG_NAME"] ), @@ -250,7 +248,7 @@ def send_email(run_id: int, file_id: int) -> dict: @web_bp.route("/api/") -def run(task_id: int) -> dict: +def run(task_id: int) -> Response: """Run specified task.""" executor.submit(Runner, task_id) @@ -258,7 +256,7 @@ def run(task_id: int) -> dict: @web_bp.route("/api//source_code") -def task_get_source_code(task_id: int) -> dict: +def task_get_source_code(task_id: int) -> Response: """Get source code for a task.""" try: task = Task.query.filter_by(id=task_id).first() @@ -281,7 +279,7 @@ def task_get_source_code(task_id: int) -> dict: @web_bp.route("/api//processing_code") -def task_get_processing_git_code(task_id: int) -> dict: +def task_get_processing_git_code(task_id: int) -> Response: """Get processing code for a task.""" try: task = Task.query.filter_by(id=task_id).first() @@ -299,9 +297,7 @@ def task_get_processing_git_code(task_id: int) -> dict: # if there is a branch we need rearrange the url. branch = re.findall(r"(&version[=]GB.+?)$", task.processing_devops) url = ( - re.sub( - (branch[0] if len(branch) > 0 else ""), "", task.processing_devops - ) + re.sub((branch[0] if len(branch) > 0 else ""), "", task.processing_devops) + "/" + task.processing_command + (branch[0] if len(branch) > 0 else "") @@ -314,7 +310,7 @@ def task_get_processing_git_code(task_id: int) -> dict: @web_bp.route("/api/file/") -def get_task_file_download(file_id: int) -> dict: +def get_task_file_download(file_id: int) -> Response: """Download file from SMB backup server.""" my_file = TaskFile.query.filter_by(id=file_id).first() task = my_file.task @@ -362,24 +358,18 @@ def database_online(database_id: int) -> str: database_connection = ConnectionDatabase.query.filter_by(id=database_id).first() if database_connection.type_id == 2: conn, _ = sql_connect( - em_decrypt( - database_connection.connection_string, app.config["PASS_KEY"] - ).strip(), + em_decrypt(database_connection.connection_string, app.config["PASS_KEY"]).strip(), database_connection.timeout or app.config["DEFAULT_SQL_TIMEOUT"], ) conn.close() elif database_connection.type_id == 3: conn, _ = jdbc_connect( - em_decrypt( - database_connection.connection_string, app.config["PASS_KEY"] - ).strip(), + em_decrypt(database_connection.connection_string, app.config["PASS_KEY"]).strip(), ) conn.close() else: conn, _ = pg_connect( - em_decrypt( - database_connection.connection_string, app.config["PASS_KEY"] - ).strip(), + em_decrypt(database_connection.connection_string, app.config["PASS_KEY"]).strip(), database_connection.timeout or app.config["DEFAULT_SQL_TIMEOUT"], ) conn.close() diff --git a/scheduler/__init__.py b/scheduler/__init__.py index 098bdcd7..ce51a944 100644 --- a/scheduler/__init__.py +++ b/scheduler/__init__.py @@ -41,7 +41,6 @@ """ - import contextlib import logging import os diff --git a/scheduler/events.py b/scheduler/events.py index f3e3e2e1..7e75b1f1 100644 --- a/scheduler/events.py +++ b/scheduler/events.py @@ -54,9 +54,7 @@ def job_missed(event: JobEvent) -> None: if re.match(r"^\d+-\d+-.+?$", event.job_id): _, task_id = event.job_id.split("-")[:2] - ex_time = ( - datetime.datetime.now(datetime.timezone.utc) - event.scheduled_run_time - ) + ex_time = datetime.datetime.now(datetime.timezone.utc) - event.scheduled_run_time if Task.query.filter_by(id=task_id).first(): log = TaskLog( @@ -85,10 +83,7 @@ def job_error(event: JobEvent) -> None: # only add logs for valid tasks if task: - ex_time = ( - datetime.datetime.now(datetime.timezone.utc) - - event.scheduled_run_time - ) + ex_time = datetime.datetime.now(datetime.timezone.utc) - event.scheduled_run_time log = TaskLog( task_id=task_id, @@ -122,10 +117,7 @@ def job_executed(event: JobExecutionEvent) -> None: # only log valid tasks if task: - ex_time = ( - datetime.datetime.now(datetime.timezone.utc) - - event.scheduled_run_time - ) + ex_time = datetime.datetime.now(datetime.timezone.utc) - event.scheduled_run_time log = TaskLog( task_id=task_id, diff --git a/scheduler/functions.py b/scheduler/functions.py index 22c1ca99..5033a30e 100644 --- a/scheduler/functions.py +++ b/scheduler/functions.py @@ -125,14 +125,14 @@ def scheduler_add_task(task_id: int) -> bool: atlas_scheduler.add_job( func=scheduler_task_runner, trigger="cron", - second=project.cron_sec, - minute=project.cron_min, - hour=project.cron_hour, - year=project.cron_year, - month=project.cron_month, - week=project.cron_week, - day=project.cron_day, - day_of_week=project.cron_week_day, + second=project.cron_sec if project.cron_sec else None, + minute=project.cron_min if project.cron_min else None, + hour=project.cron_hour if project.cron_hour else None, + year=project.cron_year if project.cron_year else None, + month=project.cron_month if project.cron_month else None, + week=project.cron_week if project.cron_week else None, + day=project.cron_day if project.cron_day else None, + day_of_week=project.cron_week_day if project.cron_week_day else None, start_date=project.cron_start_date, end_date=project.cron_end_date, args=[str(task_id)], diff --git a/scheduler/maintenance.py b/scheduler/maintenance.py index 204f89ae..d35a72f8 100644 --- a/scheduler/maintenance.py +++ b/scheduler/maintenance.py @@ -7,7 +7,7 @@ import psutil from flask import current_app as app -from sqlalchemy import update +from sqlalchemy import and_, or_, update from scheduler.extensions import atlas_scheduler, db from scheduler.model import Task @@ -28,8 +28,10 @@ def job_sync() -> None: db.session.execute( update(Task) .where( - Task.enabled == 0 - and (Task.next_run is not None or Task.est_duration is not None) + and_( + Task.enabled == 0, + or_(Task.next_run != None, Task.est_duration != None), # noqa: E711 + ) ) .values(next_run=None, est_duration=None) ) @@ -53,15 +55,9 @@ def drop_them(temp_path: Path, age: int) -> None: for temp_file in temp_path.glob("*/*/*"): if os.stat(temp_file.resolve()).st_mtime < time.time() - age: try: - if ( - Path(temp_file.resolve()).exists() - and Path(temp_file.resolve()).is_dir() - ): + if Path(temp_file.resolve()).exists() and Path(temp_file.resolve()).is_dir(): shutil.rmtree(temp_file.resolve()) - if ( - Path(temp_file.resolve()).exists() - and Path(temp_file.resolve()).is_file() - ): + if Path(temp_file.resolve()).exists() and Path(temp_file.resolve()).is_file(): os.remove(temp_file.resolve()) # pylint: disable=broad-except diff --git a/scheduler/model.py b/scheduler/model.py index 1ce36e25..75e7c2f6 100644 --- a/scheduler/model.py +++ b/scheduler/model.py @@ -20,30 +20,25 @@ """ - import datetime from dataclasses import dataclass -from typing import Optional +from typing import List, Optional -from sqlalchemy.orm import declarative_base +from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.sql import functions from .extensions import db -Base = declarative_base() - @dataclass class LoginType(db.Model): """Lookup table of user login types.""" __tablename__ = "login_type" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(120), nullable=True) - login = db.relationship("Login", backref="login_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + login: Mapped[List["Login"]] = relationship(back_populates="login_type", lazy=True) @dataclass @@ -51,15 +46,16 @@ class Login(db.Model): """Table should contain all login attempts.""" __tablename__ = "login" - id: Optional[int] = None - username: Optional[str] = None - login_date: Optional[datetime.datetime] = None - type_id: Optional[int] = None - id = db.Column(db.Integer, primary_key=True, index=True) - type_id = db.Column(db.Integer, db.ForeignKey(LoginType.id), nullable=True) - username = db.Column(db.String(120), nullable=True) - login_date = db.Column(db.DateTime, server_default=functions.now()) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + type_id: Mapped[Optional[int]] = mapped_column( + db.Integer, db.ForeignKey(LoginType.id), nullable=True + ) + username: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + login_date: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, server_default=functions.now() + ) + login_type: Mapped["LoginType"] = relationship(back_populates="login") @dataclass @@ -68,37 +64,29 @@ class User(db.Model): # pylint: disable=too-many-instance-attributes - id: Optional[int] = None - account_name: Optional[str] = None - email: Optional[str] = None - full_name: Optional[str] = None - first_name: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - account_name = db.Column(db.String(200), nullable=True, index=True) - email = db.Column(db.String(200), nullable=True, index=True) - full_name = db.Column(db.String(200), nullable=True) - first_name = db.Column(db.String(200), nullable=True) - project_owner = db.relationship( - "Project", backref="project_owner", lazy=True, foreign_keys="Project.owner_id" - ) - project_creator = db.relationship( - "Project", + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + account_name: Mapped[Optional[str]] = mapped_column(db.String(200), nullable=True, index=True) + email: Mapped[Optional[str]] = mapped_column(db.String(200), nullable=True, index=True) + full_name: Mapped[Optional[str]] = mapped_column(db.String(200), nullable=True) + first_name: Mapped[Optional[str]] = mapped_column(db.String(200), nullable=True) + project_owner: Mapped["Project"] = relationship( + backref="project_owner", lazy=True, foreign_keys="Project.owner_id" + ) + project_creator: Mapped["Project"] = relationship( backref="project_creator", lazy=True, foreign_keys="Project.creator_id", ) - project_updater = db.relationship( - "Project", + project_updater: Mapped["Project"] = relationship( backref="project_updater", lazy=True, foreign_keys="Project.updater_id", ) - task_creator = db.relationship( - "Task", backref="task_creator", lazy=True, foreign_keys="Task.creator_id" + task_creator: Mapped["Task"] = relationship( + backref="task_creator", lazy=True, foreign_keys="Task.creator_id" ) - task_updater = db.relationship( - "Task", backref="task_updater", lazy=True, foreign_keys="Task.updater_id" + task_updater: Mapped["Task"] = relationship( + backref="task_updater", lazy=True, foreign_keys="Task.updater_id" ) is_authenticated = True is_active = True @@ -119,72 +107,43 @@ class Project(db.Model): # pylint: disable=too-many-instance-attributes - id: Optional[int] = None - name: Optional[str] = None - description: Optional[str] = None - owner_id: Optional[int] = None - cron: Optional[int] = None - cron_year: Optional[int] = None - cron_month: Optional[int] = None - cron_week: Optional[int] = None - cron_day: Optional[int] = None - cron_week_day: Optional[int] = None - cron_hour: Optional[int] = None - cron_min: Optional[int] = None - cron_sec: Optional[int] = None - cron_start_date: Optional[datetime.datetime] = None - cron_end_date: Optional[datetime.datetime] = None - - intv: Optional[int] = None - intv_type: Optional[str] = None - intv_value: Optional[int] = None - intv_start_date: Optional[datetime.datetime] = None - intv_end_date: Optional[datetime.datetime] = None - - ooff: Optional[int] = None - ooff_date: Optional[datetime.datetime] = None - - created: Optional[datetime.datetime] = None - creator_id: Optional[int] = None - updated: Optional[datetime.datetime] = None - updater_id: Optional[int] = None - - global_params: Optional[str] = None - - sequence_tasks: Optional[int] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(120), nullable=True) - description = db.Column(db.String(8000), nullable=True) - owner_id = db.Column(db.Integer, db.ForeignKey(User.id), nullable=True, index=True) - - cron = db.Column(db.Integer, nullable=True) - cron_year = db.Column(db.Integer, nullable=True) - cron_month = db.Column(db.Integer, nullable=True) - cron_week = db.Column(db.Integer, nullable=True) - cron_day = db.Column(db.Integer, nullable=True) - cron_week_day = db.Column(db.Integer, nullable=True) - cron_hour = db.Column(db.Integer, nullable=True) - cron_min = db.Column(db.Integer, nullable=True) - cron_sec = db.Column(db.Integer, nullable=True) - cron_start_date = db.Column(db.DateTime, nullable=True) - cron_end_date = db.Column(db.DateTime, nullable=True) - - intv = db.Column(db.Integer, nullable=True) - intv_type = db.Column(db.String(5), nullable=True) - intv_value = db.Column(db.Integer, nullable=True) - intv_start_date = db.Column(db.DateTime, nullable=True) - intv_end_date = db.Column(db.DateTime, nullable=True) - - ooff = db.Column(db.Integer, nullable=True) - ooff_date = db.Column(db.DateTime, nullable=True) - - global_params = db.Column(db.String(8000), nullable=True) - - sequence_tasks = db.Column(db.Integer, nullable=True) - - task = db.relationship( - "Task", + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + description: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + owner_id: Mapped[Optional[int]] = mapped_column( + db.Integer, db.ForeignKey(User.id), nullable=True, index=True + ) + + cron: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + cron_year: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_month: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_week: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_day: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_week_day: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_hour: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_min: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_sec: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_start_date: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, nullable=True + ) + cron_end_date: Mapped[Optional[datetime.datetime]] = mapped_column(db.DateTime, nullable=True) + + intv: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + intv_type: Mapped[Optional[str]] = mapped_column(db.String(5), nullable=True) + intv_value: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + intv_start_date: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, nullable=True + ) + intv_end_date: Mapped[Optional[datetime.datetime]] = mapped_column(db.DateTime, nullable=True) + + ooff: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + ooff_date: Mapped[Optional[datetime.datetime]] = mapped_column(db.DateTime, nullable=True) + + global_params: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + + sequence_tasks: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + + task: Mapped[List["Task"]] = relationship( backref="project", lazy="dynamic", cascade="all, delete, delete-orphan", @@ -192,20 +151,23 @@ class Project(db.Model): ) # projectparams link - params = db.relationship( - "ProjectParam", + params: Mapped[List["ProjectParam"]] = relationship( backref="project", lazy=True, cascade="all, delete, delete-orphan", passive_deletes=True, ) - created = db.Column(db.DateTime, server_default=functions.now()) - creator_id = db.Column( + created: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, server_default=functions.now() + ) + creator_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(User.id), nullable=True, index=True ) - updated = db.Column(db.DateTime, onupdate=functions.now()) - updater_id = db.Column( + updated: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, onupdate=functions.now() + ) + updater_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(User.id), nullable=True, index=True ) @@ -219,12 +181,10 @@ class TaskSourceType(db.Model): """Lookup table of task source types.""" __tablename__ = "task_source_type" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=True) - task = db.relationship("Task", backref="source_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + task: Mapped["Task"] = relationship(backref="source_type", lazy=True) @dataclass @@ -232,12 +192,10 @@ class TaskSourceQueryType(db.Model): """Lookup table of task query source types.""" __tablename__ = "task_source_query_type" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=True) - task = db.relationship("Task", backref="query_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + task: Mapped["Task"] = relationship(backref="query_type", lazy=True) @dataclass @@ -245,12 +203,10 @@ class TaskProcessingType(db.Model): """Lookup table of task query source types.""" __tablename__ = "task_processing_type" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=True) - task = db.relationship("Task", backref="processing_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + task: Mapped["Task"] = relationship(backref="processing_type", lazy=True) @dataclass @@ -261,20 +217,16 @@ class TaskStatus(db.Model): """ __tablename__ = "task_status" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(1000), nullable=True) - task = db.relationship( - "Task", + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + task: Mapped[List["Task"]] = relationship( backref="status", lazy="dynamic", cascade="all, delete, delete-orphan", passive_deletes=True, ) - task_log = db.relationship( - "TaskLog", + task_log: Mapped[List["TaskLog"]] = relationship( backref="status", lazy="dynamic", cascade="all, delete, delete-orphan", @@ -289,53 +241,39 @@ class Connection(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection" - id: Optional[int] = None - name: Optional[str] = None - description: Optional[str] = None - address: Optional[str] = None - primary_contact: Optional[str] = None - primary_contact_email: Optional[str] = None - primary_contact_phone: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(120), nullable=True) - description = db.Column(db.String(120), nullable=True) - address = db.Column(db.String(120), nullable=True) - primary_contact = db.Column(db.String(400), nullable=True) - primary_contact_email = db.Column(db.String(120), nullable=True) - primary_contact_phone = db.Column(db.String(120), nullable=True) - ssh = db.relationship( - "ConnectionSsh", + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + description: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + address: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + primary_contact: Mapped[Optional[str]] = mapped_column(db.String(400), nullable=True) + primary_contact_email: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + primary_contact_phone: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + ssh: Mapped[List["ConnectionSsh"]] = relationship( backref="connection", lazy=True, foreign_keys="ConnectionSsh.connection_id", ) - sftp = db.relationship( - "ConnectionSftp", + sftp: Mapped[List["ConnectionSftp"]] = relationship( backref="connection", lazy=True, foreign_keys="ConnectionSftp.connection_id", ) - ftp = db.relationship( - "ConnectionFtp", + ftp: Mapped[List["ConnectionFtp"]] = relationship( backref="connection", lazy=True, foreign_keys="ConnectionFtp.connection_id", ) - smb = db.relationship( - "ConnectionSmb", + smb: Mapped[List["ConnectionSmb"]] = relationship( backref="connection", lazy=True, foreign_keys="ConnectionSmb.connection_id", ) - database = db.relationship( - "ConnectionDatabase", - backref="connection", + database: Mapped[List["ConnectionDatabase"]] = relationship( + back_populates="connection", lazy=True, - foreign_keys="ConnectionDatabase.connection_id", ) - gpg = db.relationship( - "ConnectionGpg", + gpg: Mapped[List["ConnectionGpg"]] = relationship( backref="connection", lazy=True, foreign_keys="ConnectionGpg.connection_id", @@ -353,45 +291,33 @@ class ConnectionSftp(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection_sftp" - id: Optional[int] = None - connection_id: Optional[int] = None - name: Optional[str] = None - address: Optional[str] = None - port: Optional[int] = None - path: Optional[str] = None - username: Optional[str] = None - key: Optional[str] = None - password: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - connection_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(500), nullable=True) - address = db.Column(db.String(500), nullable=True) - port = db.Column(db.Integer, nullable=True) - path = db.Column(db.String(500), nullable=True) - username = db.Column(db.String(120), nullable=True) - key = db.Column(db.String(8000), nullable=True) - password = db.Column(db.Text, nullable=True) - key_password = db.Column(db.Text, nullable=True) - task = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + address: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + port: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + path: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + username: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + key: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + password: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + key_password: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + task: Mapped["Task"] = relationship( backref="destination_sftp_conn", lazy=True, foreign_keys="Task.destination_sftp_id", ) - task_source = db.relationship( - "Task", + task_source: Mapped["Task"] = relationship( backref="source_sftp_conn", lazy=True, foreign_keys="Task.source_sftp_id", ) - query_source = db.relationship( - "Task", backref="query_sftp_conn", lazy=True, foreign_keys="Task.query_sftp_id" + query_source: Mapped["Task"] = relationship( + backref="query_sftp_conn", lazy=True, foreign_keys="Task.query_sftp_id" ) - processing_source = db.relationship( - "Task", + processing_source: Mapped["Task"] = relationship( backref="processing_sftp_conn", lazy=True, foreign_keys="Task.processing_sftp_id", @@ -409,25 +335,17 @@ class ConnectionSsh(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection_ssh" - id: Optional[int] = None - connection_id: Optional[int] = None - name: Optional[str] = None - address: Optional[str] = None - port: Optional[int] = None - username: Optional[str] = None - password: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - connection_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(500), nullable=True) - address = db.Column(db.String(500), nullable=True) - port = db.Column(db.Integer, nullable=True) - username = db.Column(db.String(120), nullable=True) - password = db.Column(db.Text, nullable=True) - task_source = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + address: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + port: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + username: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + password: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + task_source: Mapped["Task"] = relationship( backref="source_ssh_conn", lazy=True, foreign_keys="Task.source_ssh_id", @@ -445,19 +363,14 @@ class ConnectionGpg(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection_gpg" - id: Optional[int] = None - connection_id: Optional[int] = None - name: Optional[str] = None - key: Optional[str] = None - id = db.Column(db.Integer, primary_key=True, index=True) - connection_id = db.Column( + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(500), nullable=True) - key = db.Column(db.String(8000), nullable=True) - task_source = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + key: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + task_source: Mapped["Task"] = relationship( backref="file_gpg_conn", lazy=True, foreign_keys="Task.file_gpg_id", @@ -475,37 +388,28 @@ class ConnectionFtp(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection_ftp" - id: Optional[int] = None - connection_id: Optional[int] = None - name: Optional[str] = None - address: Optional[str] = None - path: Optional[str] = None - username: Optional[str] = None - password: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - connection_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(500), nullable=True) - address = db.Column(db.String(500), nullable=True) - path = db.Column(db.String(500), nullable=True) - username = db.Column(db.String(500), nullable=True) - password = db.Column(db.Text, nullable=True) - task = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + address: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + path: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + username: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + password: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + task: Mapped["Task"] = relationship( backref="destination_ftp_conn", lazy=True, foreign_keys="Task.destination_ftp_id", ) - task_source = db.relationship( - "Task", backref="source_ftp_conn", lazy=True, foreign_keys="Task.source_ftp_id" + task_source: Mapped["Task"] = relationship( + backref="source_ftp_conn", lazy=True, foreign_keys="Task.source_ftp_id" ) - query_source = db.relationship( - "Task", backref="query_ftp_conn", lazy=True, foreign_keys="Task.query_ftp_id" + query_source: Mapped["Task"] = relationship( + backref="query_ftp_conn", lazy=True, foreign_keys="Task.query_ftp_id" ) - processing_source = db.relationship( - "Task", + processing_source: Mapped["Task"] = relationship( backref="processing_ftp_conn", lazy=True, foreign_keys="Task.processing_ftp_id", @@ -523,41 +427,30 @@ class ConnectionSmb(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection_smb" - id: Optional[int] = None - connection_id: Optional[int] = None - name: Optional[str] = None - share_name: Optional[str] = None - path: Optional[str] = None - username: Optional[str] = None - password: Optional[str] = None - server_ip: Optional[str] = None - server_name: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - connection_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(120), nullable=True) - share_name = db.Column(db.String(500), nullable=True) - path = db.Column(db.String(1000), nullable=True) - username = db.Column(db.String(500), nullable=True) - password = db.Column(db.Text, nullable=True) - server_ip = db.Column(db.String(500), nullable=True) - server_name = db.Column(db.String(500), nullable=True) - task = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + share_name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + path: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + username: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + password: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + server_ip: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + server_name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + task: Mapped["Task"] = relationship( backref="destination_smb_conn", lazy=True, foreign_keys="Task.destination_smb_id", ) - task_source = db.relationship( - "Task", backref="source_smb_conn", lazy=True, foreign_keys="Task.source_smb_id" + task_source: Mapped["Task"] = relationship( + backref="source_smb_conn", lazy=True, foreign_keys="Task.source_smb_id" ) - query_source = db.relationship( - "Task", backref="query_smb_conn", lazy=True, foreign_keys="Task.query_smb_id" + query_source: Mapped["Task"] = relationship( + backref="query_smb_conn", lazy=True, foreign_keys="Task.query_smb_id" ) - processing_source = db.relationship( - "Task", + processing_source: Mapped["Task"] = relationship( backref="processing_smb_conn", lazy=True, foreign_keys="Task.processing_smb_id", @@ -573,12 +466,10 @@ class ConnectionDatabaseType(db.Model): """Lookup table of task source database types.""" __tablename__ = "connection_database_type" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=True) - database = db.relationship("ConnectionDatabase", backref="database_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + database: Mapped["ConnectionDatabase"] = relationship(backref="database_type", lazy=True) @dataclass @@ -586,29 +477,23 @@ class ConnectionDatabase(db.Model): """List of task source databases and connection strings.""" __tablename__ = "connection_database" - id: Optional[int] = None - type_id: Optional[int] = None - name: Optional[str] = None - connection_string: Optional[str] = None - connection_id: Optional[int] = None - timeout: Optional[int] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - type_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + type_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionDatabaseType.id), nullable=True, index=True ) - connection_id = db.Column( + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(500), nullable=True) - connection_string = db.Column(db.Text, nullable=True) - timeout = db.Column(db.Integer, nullable=True) - task_source = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + connection_string: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + timeout: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + task_source: Mapped["Task"] = relationship( backref="source_database_conn", lazy=True, foreign_keys="Task.source_database_id", ) + connection: Mapped["Connection"] = relationship(back_populates="database") def __str__(self) -> str: """Get string of name.""" @@ -620,14 +505,11 @@ class TaskDestinationFileType(db.Model): """Lookup table of task destination file types.""" __tablename__ = "task_destination_file_type" - id: Optional[int] = None - name: Optional[str] = None - ext: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=True) - ext = db.Column(db.String(120), nullable=False) - task = db.relationship("Task", backref="file_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + ext: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=False) + task: Mapped["Task"] = relationship(backref="file_type", lazy=True) @dataclass @@ -635,12 +517,10 @@ class QuoteLevel(db.Model): """Lookup table for python quote levels.""" __tablename__ = "quote_level" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(120), nullable=True) - task = db.relationship("Task", backref="destination_file_quote_level", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + task: Mapped["Task"] = relationship(backref="destination_file_quote_level", lazy=True) @dataclass @@ -648,19 +528,14 @@ class ProjectParam(db.Model): """Task parameters.""" __tablename__ = "project_param" - id: Optional[int] = None - key: Optional[str] = None - value: Optional[str] = None - sensitive: Optional[int] = None - project_id: Optional[int] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - key = db.Column(db.String(500), nullable=True) - value = db.Column(db.String(8000), nullable=True) - project_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + key: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + value: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + project_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Project.id), nullable=True, index=True ) - sensitive = db.Column(db.Integer, nullable=True, index=True) + sensitive: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) @dataclass @@ -670,329 +545,234 @@ class Task(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "task" - # general information - id: Optional[int] = None - name: Optional[str] = None - project_id: Optional[int] = None - status_id: Optional[int] = None - enabled: Optional[int] = None - order: Optional[int] = None - last_run: Optional[datetime.datetime] = None - next_run: Optional[datetime.datetime] = None - last_run_job_id: Optional[str] = None - created: Optional[datetime.datetime] = None - creator_id: Optional[int] = None - updated: Optional[datetime.datetime] = None - updater_id: Optional[int] = None - - # data source - source_type_id: Optional[int] = None - source_database_id: Optional[int] = None - - source_query_type_id: Optional[int] = None - source_query_include_header: Optional[int] = None - source_git: Optional[str] = None - source_devops: Optional[str] = None - source_url: Optional[str] = None - source_code: Optional[str] = None - - source_require_sql_output: Optional[int] = None - - query_smb_id: Optional[int] = None - query_smb_file: Optional[str] = None - query_sftp_id: Optional[int] = None - query_sftp_file: Optional[str] = None - query_ftp_id: Optional[int] = None - query_ftp_file: Optional[str] = None - query_params: Optional[str] = None - - source_smb_delimiter: Optional[str] = None - source_smb_ignore_delimiter: Optional[int] = None - source_smb_file: Optional[str] = None - source_smb_id: Optional[int] = None - - source_ftp_file: Optional[str] = None - source_ftp_delimiter: Optional[str] = None - source_ftp_ignore_delimiter: Optional[int] = None - source_ftp_id: Optional[int] = None - - source_sftp_file: Optional[str] = None - source_sftp_delimiter: Optional[str] = None - source_sftp_ignore_delimiter: Optional[int] = None - source_sftp_id: Optional[int] = None - - source_ssh_id: Optional[int] = None - - # caching - source_cache: Optional[str] = None - enable_source_cache: Optional[int] = None - - # processing - processing_type_id: Optional[int] = None - processing_smb_id: Optional[int] = None - processing_smb_file: Optional[str] = None - processing_sftp_id: Optional[int] = None - processing_sftp_file: Optional[str] = None - processing_ftp_id: Optional[int] = None - processing_ftp_file: Optional[str] = None - processing_code: Optional[str] = None - processing_url: Optional[str] = None - processing_git: Optional[str] = None - processing_devops: Optional[str] = None - processing_command: Optional[str] = None - - # destination - destination_file_delimiter: Optional[str] = None - destination_file_name: Optional[str] = None - destination_ignore_delimiter: Optional[int] = None - destination_file_line_terminator: Optional[str] = None - destination_quote_level_id: Optional[int] = None - - destination_create_zip: Optional[int] = None - destination_zip_name: Optional[str] = None - - destination_file_type_id: Optional[int] = None - - destination_sftp: Optional[int] = None - destination_sftp_overwrite: Optional[int] = None - destination_sftp_id: Optional[int] = None - destination_sftp_dont_send_empty_file: Optional[int] = None - - destination_ftp: Optional[int] = None - destination_ftp_overwrite: Optional[int] = None - destination_ftp_id: Optional[int] = None - destination_ftp_dont_send_empty_file: Optional[int] = None - - destination_smb: Optional[int] = None - destination_smb_overwrite: Optional[int] = None - destination_smb_id: Optional[int] = None - destination_smb_dont_send_empty_file: Optional[int] = None - - file_gpg: Optional[int] = None - file_gpg_id: Optional[int] = None - - email_completion: Optional[int] = None - email_completion_log: Optional[int] = None - email_completion_file: Optional[int] = None - email_completion_file_embed: Optional[int] = None - email_completion_dont_send_empty_file: Optional[int] = None - email_completion_recipients: Optional[str] = None - email_completion_message: Optional[str] = None - - email_error: Optional[int] = None - email_error_recipients: Optional[str] = None - email_error_message: Optional[str] = None - - max_retries: Optional[int] = None - - est_duration: Optional[int] = None # general information - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(1000), nullable=True) - project_id = db.Column( + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + project_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Project.id), nullable=True, index=True ) - status_id = db.Column( + status_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskStatus.id), nullable=True, index=True ) - enabled = db.Column(db.Integer, nullable=True, index=True) - order = db.Column(db.Integer, nullable=True, index=True) - last_run = db.Column(db.DateTime, nullable=True) - last_run_job_id = db.Column(db.String(30), nullable=True, index=True) - next_run = db.Column(db.DateTime, nullable=True, index=True) - created = db.Column(db.DateTime, server_default=functions.now(), index=True) - creator_id = db.Column( + enabled: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + order: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + last_run: Mapped[Optional[datetime.datetime]] = mapped_column(db.DateTime, nullable=True) + last_run_job_id: Mapped[Optional[str]] = mapped_column( + db.String(30), nullable=True, index=True + ) + next_run: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, nullable=True, index=True + ) + created: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, server_default=functions.now(), index=True + ) + creator_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(User.id), nullable=True, index=True ) - updated = db.Column(db.DateTime, onupdate=functions.now(), index=True) - updater_id = db.Column( + updated: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, onupdate=functions.now(), index=True + ) + updater_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(User.id), nullable=True, index=True ) """ data source """ # db/sftp/smb/ftp - source_type_id = db.Column( + source_type_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskSourceType.id), nullable=True, index=True ) # source locations # git/url/code/sftp/ftp/smb/devops - source_query_type_id = db.Column( + source_query_type_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskSourceQueryType.id), nullable=True, index=True ) - source_query_include_header = db.Column(db.Integer, nullable=True) + source_query_include_header: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) - source_require_sql_output = db.Column(db.Integer, nullable=True) + source_require_sql_output: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) # source git - source_git = db.Column(db.String(1000), nullable=True) + source_git: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) # source devops - source_devops = db.Column(db.String(1000), nullable=True) + source_devops: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) # source web url - source_url = db.Column(db.String(1000), nullable=True) + source_url: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) # source typed code - source_code = db.Column(db.Text, nullable=True) + source_code: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) # cached source query - source_cache = db.Column(db.Text, nullable=True) - enable_source_cache = db.Column(db.Integer, nullable=True, index=True) + source_cache: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + enable_source_cache: Mapped[Optional[int]] = mapped_column( + db.Integer, nullable=True, index=True + ) - query_smb_id = db.Column( + query_smb_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSmb.id), nullable=True, index=True ) - query_smb_file = db.Column(db.String(1000), nullable=True) + query_smb_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - query_sftp_id = db.Column( + query_sftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSftp.id), nullable=True, index=True ) - query_sftp_file = db.Column(db.String(1000), nullable=True) + query_sftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - query_ftp_id = db.Column( + query_ftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionFtp.id), nullable=True, index=True ) - query_ftp_file = db.Column(db.String(1000), nullable=True) + query_ftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - query_params = db.Column(db.String(8000), nullable=True) + query_params: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) # source smb sql file - source_smb_file = db.Column(db.String(1000), nullable=True) - source_smb_delimiter = db.Column(db.String(10), nullable=True) - source_smb_ignore_delimiter = db.Column(db.Integer, nullable=True) - source_smb_id = db.Column( + source_smb_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + source_smb_delimiter: Mapped[Optional[str]] = mapped_column(db.String(10), nullable=True) + source_smb_ignore_delimiter: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + source_smb_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSmb.id), nullable=True, index=True ) # source ftp sql file - source_ftp_file = db.Column(db.String(1000), nullable=True) - source_ftp_delimiter = db.Column(db.String(10), nullable=True) - source_ftp_ignore_delimiter = db.Column(db.Integer, nullable=True) - source_ftp_id = db.Column( + source_ftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + source_ftp_delimiter: Mapped[Optional[str]] = mapped_column(db.String(10), nullable=True) + source_ftp_ignore_delimiter: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + source_ftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionFtp.id), nullable=True, index=True ) # source sftp sql file - source_sftp_file = db.Column(db.String(1000), nullable=True) - source_sftp_delimiter = db.Column(db.String(10), nullable=True) - source_sftp_ignore_delimiter = db.Column(db.Integer, nullable=True) - source_sftp_id = db.Column( + source_sftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + source_sftp_delimiter: Mapped[Optional[str]] = mapped_column(db.String(10), nullable=True) + source_sftp_ignore_delimiter: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + source_sftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSftp.id), nullable=True, index=True ) # source database - source_database_id = db.Column( + source_database_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionDatabase.id), nullable=True, index=True ) - source_ssh_id = db.Column( + source_ssh_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSsh.id), nullable=True, index=True ) """ processing script source """ - processing_type_id = db.Column( + processing_type_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskProcessingType.id), nullable=True, index=True ) - processing_smb_id = db.Column( + processing_smb_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSmb.id), nullable=True, index=True ) - processing_smb_file = db.Column(db.String(1000), nullable=True) + processing_smb_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - processing_sftp_id = db.Column( + processing_sftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSftp.id), nullable=True, index=True ) - processing_sftp_file = db.Column(db.String(1000), nullable=True) + processing_sftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - processing_ftp_id = db.Column( + processing_ftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionFtp.id), nullable=True, index=True ) - processing_ftp_file = db.Column(db.String(1000), nullable=True) + processing_ftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - processing_code = db.Column(db.String(8000), nullable=True) - processing_url = db.Column(db.String(1000), nullable=True) - processing_git = db.Column(db.String(1000), nullable=True) - processing_devops = db.Column(db.String(1000), nullable=True) - processing_command = db.Column(db.String(1000), nullable=True) + processing_code: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + processing_url: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + processing_git: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + processing_devops: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + processing_command: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) """ destination """ # destination file - destination_file_name = db.Column(db.String(1000), nullable=True) - destination_file_delimiter = db.Column(db.String(10), nullable=True) - destination_ignore_delimiter = db.Column(db.Integer, nullable=True) - destination_file_line_terminator = db.Column(db.String(10), nullable=True) + destination_file_name: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + destination_file_delimiter: Mapped[Optional[str]] = mapped_column(db.String(10), nullable=True) + destination_ignore_delimiter: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + destination_file_line_terminator: Mapped[Optional[str]] = mapped_column( + db.String(10), nullable=True + ) # destination zip archive - destination_create_zip = db.Column(db.Integer, nullable=True) - destination_zip_name = db.Column(db.String(1000), nullable=True) + destination_create_zip: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + destination_zip_name: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) # csv/txt/other - destination_file_type_id = db.Column( + destination_file_type_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskDestinationFileType.id), nullable=True, index=True ) # save to sftp server - destination_sftp = db.Column(db.Integer, nullable=True, index=True) - destination_sftp_overwrite = db.Column(db.Integer, nullable=True) - destination_sftp_id = db.Column( + destination_sftp: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + destination_sftp_overwrite: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + destination_sftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSftp.id), nullable=True, index=True ) - destination_sftp_dont_send_empty_file = db.Column(db.Integer, nullable=True) + destination_sftp_dont_send_empty_file: Mapped[Optional[int]] = mapped_column( + db.Integer, nullable=True + ) # save to ftp server - destination_ftp = db.Column(db.Integer, nullable=True, index=True) - destination_ftp_overwrite = db.Column(db.Integer, nullable=True) - destination_ftp_id = db.Column( + destination_ftp: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + destination_ftp_overwrite: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + destination_ftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionFtp.id), nullable=True, index=True ) - destination_ftp_dont_send_empty_file = db.Column(db.Integer, nullable=True) + destination_ftp_dont_send_empty_file: Mapped[Optional[int]] = mapped_column( + db.Integer, nullable=True + ) # save to smb server - destination_smb = db.Column(db.Integer, nullable=True, index=True) - destination_smb_overwrite = db.Column(db.Integer, nullable=True) - destination_smb_id = db.Column( + destination_smb: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + destination_smb_overwrite: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + destination_smb_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSmb.id), nullable=True, index=True ) - destination_smb_dont_send_empty_file = db.Column(db.Integer, nullable=True) + destination_smb_dont_send_empty_file: Mapped[Optional[int]] = mapped_column( + db.Integer, nullable=True + ) - file_gpg = db.Column(db.Integer, nullable=True, index=True) - file_gpg_id = db.Column( + file_gpg: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + file_gpg_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionGpg.id), nullable=True, index=True ) - destination_quote_level_id = db.Column( + destination_quote_level_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(QuoteLevel.id), nullable=True, index=True ) """ email """ # completion email - email_completion = db.Column(db.Integer, nullable=True, index=True) - email_completion_log = db.Column(db.Integer, nullable=True) - email_completion_file = db.Column(db.Integer, nullable=True) - email_completion_file_embed = db.Column(db.Integer, nullable=True) - email_completion_recipients = db.Column(db.String(1000), nullable=True) - email_completion_subject = db.Column(db.String(8000), nullable=True) - email_completion_message = db.Column(db.String(8000), nullable=True) - email_completion_dont_send_empty_file = db.Column(db.Integer, nullable=True) + email_completion: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + email_completion_log: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + email_completion_file: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + email_completion_file_embed: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + email_completion_recipients: Mapped[Optional[str]] = mapped_column( + db.String(1000), nullable=True + ) + email_completion_subject: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + email_completion_message: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + email_completion_dont_send_empty_file: Mapped[Optional[int]] = mapped_column( + db.Integer, nullable=True + ) # error email - email_error = db.Column(db.Integer, nullable=True, index=True) - email_error_recipients = db.Column(db.String(1000), nullable=True) - email_error_subject = db.Column(db.String(8000), nullable=True) - email_error_message = db.Column(db.String(8000), nullable=True) + email_error: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + email_error_recipients: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + email_error_subject: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + email_error_message: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) # rerun on fail - max_retries = db.Column(db.Integer, nullable=True, index=True) + max_retries: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) - est_duration = db.Column(db.Integer, nullable=True, index=True) + est_duration: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) # tasklog link - task = db.relationship( - "TaskLog", + task: Mapped[List["TaskLog"]] = relationship( backref="task", lazy=True, cascade="all, delete, delete-orphan", @@ -1000,8 +780,7 @@ class Task(db.Model): ) # taskparams link - params = db.relationship( - "TaskParam", + params: Mapped[List["TaskParam"]] = relationship( backref="task", lazy=True, cascade="all, delete, delete-orphan", @@ -1009,8 +788,7 @@ class Task(db.Model): ) # taskfiles link - files = db.relationship( - "TaskFile", + files: Mapped[List["TaskFile"]] = relationship( backref="task", lazy=True, cascade="all, delete, delete-orphan", @@ -1028,27 +806,22 @@ class TaskLog(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "task_log" - id: Optional[int] = None - task_id: Optional[int] = None - status_id: Optional[int] = None - job_id: Optional[str] = None - message: Optional[str] = None - error: Optional[int] = 0 - status_date: Optional[datetime.datetime] = None - - job_id = db.Column(db.String(1000), nullable=True, index=True) - id = db.Column(db.Integer, primary_key=True, index=True) - task_id = db.Column(db.Integer, db.ForeignKey(Task.id), nullable=True, index=True) - status_id = db.Column( + + job_id: Mapped[Optional[int]] = mapped_column(db.String(1000), nullable=True, index=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + task_id: Mapped[Optional[int]] = mapped_column( + db.Integer, db.ForeignKey(Task.id), nullable=True, index=True + ) + status_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskStatus.id), nullable=True, index=True ) - message = db.Column(db.Text, nullable=True) - status_date = db.Column(db.DateTime, default=datetime.datetime.now, index=True) - error = db.Column(db.Integer, nullable=True, index=True) - - __table_args__ = ( - db.Index("ix_task_log_status_date_error", "status_date", "error"), + message: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + status_date: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, default=datetime.datetime.now, index=True ) + error: Mapped[Optional[str]] = mapped_column(db.Integer, nullable=True, index=True) + + __table_args__ = (db.Index("ix_task_log_status_date_error", "status_date", "error"),) @dataclass @@ -1056,42 +829,33 @@ class TaskFile(db.Model): """Table containing paths to task backup files.""" __tablename__ = "task_file" - id: Optional[int] = None - name: Optional[str] = None - task_id: Optional[int] = None - job_id: Optional[str] = None - size: Optional[str] = None - file_hash: Optional[str] = None - path: Optional[str] = None - created: Optional[datetime.datetime] = None - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(1000), nullable=True, index=True) - task_id = db.Column(db.Integer, db.ForeignKey(Task.id), nullable=True, index=True) - job_id = db.Column(db.String(1000), nullable=True, index=True) - size = db.Column(db.String(200), nullable=True, index=True) - path = db.Column(db.String(1000), nullable=True, index=True) - file_hash = db.Column(db.String(1000), nullable=True) - created = db.Column(db.DateTime, default=datetime.datetime.now, index=True) - - __table_args__ = ( - db.Index("ix_task_file_id_task_id_job_id", "id", "task_id", "job_id"), + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True, index=True) + task_id: Mapped[Optional[int]] = mapped_column( + db.Integer, db.ForeignKey(Task.id), nullable=True, index=True + ) + job_id: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True, index=True) + size: Mapped[Optional[str]] = mapped_column(db.String(200), nullable=True, index=True) + path: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True, index=True) + file_hash: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + created: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, default=datetime.datetime.now, index=True ) + __table_args__ = (db.Index("ix_task_file_id_task_id_job_id", "id", "task_id", "job_id"),) + @dataclass class TaskParam(db.Model): """Task parameters.""" __tablename__ = "task_param" - id: Optional[int] = None - key: Optional[str] = None - value: Optional[str] = None - sensitive: Optional[int] = None - task_id: Optional[int] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - key = db.Column(db.String(500), nullable=True) - value = db.Column(db.String(8000), nullable=True) - task_id = db.Column(db.Integer, db.ForeignKey(Task.id), nullable=True, index=True) - sensitive = db.Column(db.Integer, nullable=True, index=True) + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + key: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + value: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + task_id: Mapped[Optional[int]] = mapped_column( + db.Integer, db.ForeignKey(Task.id), nullable=True, index=True + ) + sensitive: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) diff --git a/scheduler/tests/__init__.py b/scheduler/tests/__init__.py index f8616900..50a87b88 100644 --- a/scheduler/tests/__init__.py +++ b/scheduler/tests/__init__.py @@ -5,6 +5,7 @@ poetry run pytest tests/ \ --cov --cov-append --cov-branch --cov-report=term-missing --disable-warnings """ + import sys from pathlib import Path diff --git a/scheduler/tests/conftest.py b/scheduler/tests/conftest.py index 608a05fe..613651b8 100644 --- a/scheduler/tests/conftest.py +++ b/scheduler/tests/conftest.py @@ -1,4 +1,5 @@ """Setyp pytest.""" + import os import sys from pathlib import Path diff --git a/scheduler/tests/test_api.py b/scheduler/tests/test_api.py index 3bf21543..0655fe8a 100644 --- a/scheduler/tests/test_api.py +++ b/scheduler/tests/test_api.py @@ -9,6 +9,7 @@ --cov --cov-append --cov-branch --cov-report=term-missing --disable-warnings """ + # flake8: noqa, # pylint: skip-file # check all admin links @@ -241,9 +242,7 @@ def test_run_task_with_delay(client_fixture: fixture) -> None: # check that job is in scheduler scheduled_task = [ - x - for x in atlas_scheduler.get_jobs() - if len(x.args) > 0 and x.args[0] == str(t_id) + x for x in atlas_scheduler.get_jobs() if len(x.args) > 0 and x.args[0] == str(t_id) ][0] assert ( scheduled_task.next_run_time.replace(microsecond=0, second=0).isoformat() diff --git a/scheduler/tests/test_events.py b/scheduler/tests/test_events.py index 510d1ab6..00558e20 100644 --- a/scheduler/tests/test_events.py +++ b/scheduler/tests/test_events.py @@ -9,6 +9,7 @@ --cov --cov-append --cov-branch --cov-report=term-missing --disable-warnings """ + print("importing tests") import time from datetime import datetime, timedelta @@ -284,9 +285,7 @@ def test_job_removed(api_fixture: fixture, caplog: fixture) -> None: for record in caplog.records: assert record.levelname not in ["CRITICAL", "ERROR"] - log = TaskLog.query.filter_by( - task_id=t_id, status_id=6, message="Job removed." - ).first() + log = TaskLog.query.filter_by(task_id=t_id, status_id=6, message="Job removed.").first() assert log is not None caplog.clear() # try invalid task_id @@ -306,9 +305,7 @@ def test_job_removed(api_fixture: fixture, caplog: fixture) -> None: for record in caplog.records: assert record.levelname not in ["CRITICAL", "ERROR"] - log = TaskLog.query.filter_by( - task_id=t_id, status_id=6, message="Job removed." - ).first() + log = TaskLog.query.filter_by(task_id=t_id, status_id=6, message="Job removed.").first() assert log is None caplog.clear() @@ -326,9 +323,7 @@ def test_job_removed(api_fixture: fixture, caplog: fixture) -> None: for record in caplog.records: assert record.levelname not in ["CRITICAL", "ERROR"] - log = TaskLog.query.filter_by( - task_id=t_id, status_id=6, message="Job removed." - ).first() + log = TaskLog.query.filter_by(task_id=t_id, status_id=6, message="Job removed.").first() assert log is None diff --git a/scheduler/web.py b/scheduler/web.py index 67adde85..4daa2da9 100644 --- a/scheduler/web.py +++ b/scheduler/web.py @@ -37,9 +37,7 @@ def schedule() -> Response: Merge two lists and put 0 where needed. """ - now = datetime.datetime.now( - datetime.datetime.now(datetime.timezone.utc).astimezone().tzinfo - ) + now = datetime.datetime.now(datetime.datetime.now(datetime.timezone.utc).astimezone().tzinfo) tomorrow = now + datetime.timedelta(hours=24) hour_list = ["now"] @@ -100,7 +98,7 @@ def schedule() -> Response: @web_bp.route("/api/add/") -def add_task(task_id: int) -> str: +def add_task(task_id: int) -> Response: """Schedule task to run. First check for any existing schedules, remove them, then add a new schedule. diff --git a/scripts/cron_descriptor.py b/scripts/cron_descriptor.py new file mode 100644 index 00000000..e75b18ef --- /dev/null +++ b/scripts/cron_descriptor.py @@ -0,0 +1,499 @@ +""" +Cron schedule descriptions. +Returns schedules in a readable format. +""" + +import calendar +import re + + +class ExpressionDescriptor: + """ + Converts a Cron Expression into a human readable string + """ + + _cron_days = {v.upper(): k for (k, v) in enumerate(calendar.day_abbr)} + _special_characters = ["/", "-", ",", "*"] + + def __init__( + self, + cron_year="*", + cron_month="*", + cron_week="*", + cron_day="*", + cron_week_day="*", + cron_hour="0", + cron_min="0", + cron_sec="0", + ) -> None: + """Initializes a new instance of the ExpressionDescriptor""" + self.cron_year = "*" if cron_year is None or cron_year == "" else cron_year + self.cron_month = "*" if cron_month is None or cron_month == "" else cron_month + self.cron_week = "*" if cron_week is None or cron_week == "" else cron_week + self.cron_day = "*" if cron_day is None or cron_day == "" else cron_day + self.cron_week_day = "*" if cron_week_day is None or cron_week_day == "" else cron_week_day + self.cron_hour = "0" if cron_hour is None or cron_hour == "" else cron_hour + self.cron_min = "0" if cron_min is None or cron_min == "" else cron_min + self.cron_sec = "0" if cron_sec is None or cron_sec == "" else cron_sec + + def get_full_description(self): + """Generates the FULL description + + Returns: + The FULL description + Raises: + FormatException: if formatting fails + + """ + + def remove_adjacent_duplicates(sentence): + """remove duplicate words that might pop up such as week week""" + words = sentence.split() + unique_words = [words[0]] # Initialize unique words list with the first word + for word in words[1:]: + if ( + word != unique_words[-1] + ): # Check if the current word is different from the previous word + unique_words.append(word) + return " ".join(unique_words) + + try: + time_segment = self.get_time_of_day_description() + day_of_month_desc = self.get_day_of_month_description() + month_desc = self.get_month_description() + day_of_week_desc = self.get_day_of_week_description() + week_desc = self.get_week_number_description() + year_desc = self.get_year_description() + + description = f"{time_segment}{day_of_month_desc}{day_of_week_desc}{month_desc}{week_desc}{year_desc}" + description = remove_adjacent_duplicates(description) + description = f"{description[0].upper()}{description[1:]}" + + except Exception as e: + description = ( + f"An error occurred when generating the expression description. error is {e}" + ) + + raise ValueError(description) from e + + return description + + def get_time_of_day_description(self): + """Generates a description for only the TIMEOFDAY portion of the expression + + Returns: + The TIMEOFDAY description + + """ + seconds_expression = self.cron_sec + minute_expression = self.cron_min + hour_expression = self.cron_hour + description = "" + + # handle special cases first + if ( + any(exp in minute_expression for exp in self._special_characters) is False + and any(exp in hour_expression for exp in self._special_characters) is False + and any(exp in seconds_expression for exp in self._special_characters) is False + ): + # specific time of day (i.e. 10 14) + description = ( + f"At {self.format_time(hour_expression, minute_expression, seconds_expression)} " + ) + + elif ( + seconds_expression == "" + and "-" in minute_expression + and "," not in minute_expression + and any(exp in hour_expression for exp in self._special_characters) is False + ): + # minute range in single hour (i.e. 0-10 11) + minute_parts = minute_expression.split("-") + description = f"Every minute between {self.format_time(hour_expression, minute_parts[0])} and {self.format_time(hour_expression, minute_parts[1])} " + + elif ( + seconds_expression == "" + and "," in hour_expression + and "-" not in hour_expression + and any(exp in minute_expression for exp in self._special_characters) is False + ): + # hours list with single minute (o.e. 30 6,14,16) + hour_parts = hour_expression.split(",") + description = "At" + "".join( + f" {self.format_time(hour_part, minute_expression)}" + + ( + "," + if i < len(hour_parts) - 2 + else (" and" if i == len(hour_parts) - 2 else "") + ) + for i, hour_part in enumerate(hour_parts) + ) + + else: + # default time description + seconds_description = self.get_seconds_description() + minutes_description = self.get_minutes_description() + hours_description = self.get_hours_description() + + description = seconds_description + + if description and minutes_description: + description += ", " + + description += minutes_description + + if description and hours_description: + description += ", " + + description += hours_description + return description + + def get_seconds_description(self): + """Generates a description for only the SECONDS portion of the expression + + Returns: + The SECONDS description + + """ + + return self.get_segment_description( + self.cron_sec, + "every second", + lambda s: s, + lambda s: f"every {s} seconds", + lambda s: "seconds {0} through {1} past the minute", + lambda s: "" if s == "0" else "at {0} seconds past the minute", + lambda s: ", {0} through {1}", + ) + + def get_minutes_description(self): + """Generates a description for only the MINUTE portion of the expression + + Returns: + The MINUTE description + + """ + return self.get_segment_description( + self.cron_min, + "every minute", + lambda s: s, + lambda s: f"every {s} minutes", + lambda s: "minutes {0} through {1} past the hour", + lambda s: ("" if s == "0" and self.cron_sec == "" else "at {0} minutes past the hour"), + lambda s: ", {0} through {1}", + ) + + def get_hours_description(self): + """Generates a description for only the HOUR portion of the expression + + Returns: + The HOUR description + + """ + return self.get_segment_description( + self.cron_hour, + "every hour", + lambda s: self.format_time(s, "0"), + lambda s: f"every {s} hours", + lambda s: "between {0} and {1}", + lambda s: "at {0}", + lambda s: ", {0} through {1}", + ) + + def get_day_of_week_description(self): + """Generates a description for only the DAYOFWEEK portion of the expression + + Returns: + The DAYOFWEEK description + + """ + if self.cron_week_day == "*": + # DOW is specified as * so we will not generate a description and defer to DOM part. + # Otherwise, we could get a contradiction like "on day 1 of the month, every day" + # or a dupe description like "every day, every day". + return "" + + def get_day_name(s): + try: + return calendar.day_name[int(s)] + except Exception: + try: + return calendar.day_name[list(calendar.day_abbr).index(s.title())] + except Exception: + return s + + return self.get_segment_description( + self.cron_week_day, + ", every day", + get_day_name, + lambda s: f", every {s} days of the week", + lambda s: ", {0} through {1}", + lambda s: ", only on {0}", + lambda s: ", {0} through {1}", + ) + + def get_week_number_description(self): + """Generates a description for only the week number portion of the expression + + Returns: + The week description + + """ + return self.get_segment_description( + self.cron_week, + "", + lambda s: s, + lambda s: f", every {s} weeks", + lambda s: ", week {0} through {1}", + lambda s: ", only on week {0} of the year", + lambda s: ", week {0} through {1}", + ) + + def get_month_description(self): + """Generates a description for only the MONTH portion of the expression + + Returns: + The MONTH description + + """ + + def get_month_name(s): + try: + return calendar.month_name[int(s)] + except Exception: + try: + return calendar.month_name[list(calendar.month_abbr).index(s.title())] + except Exception: + return s + + return self.get_segment_description( + self.cron_month, + "", + get_month_name, + lambda s: f", every {s} months", + lambda s: ", {0} through {1}", + lambda s: ", only in {0}", + lambda s: ", {0} through {1}", + ) + + def get_day_of_month_description(self): + """Generates a description for only the DAYOFMONTH portion of the expression + + Returns: + The DAYOFMONTH description + + """ + + def _add_suffix(day): + try: + d = int(day) + if 10 <= d % 100 <= 20: + suffix = "th" + else: + suffix = {1: "st", 2: "nd", 3: "rd"}.get(d % 10, "th") + return str(d) + suffix + " day" + except ValueError: + return day + + exp = self.cron_day + if exp.lower() == "last": + description = ", on the last day of the month" + elif re.match(r"^last\s\D{3}$", exp, re.IGNORECASE): + parts = exp.split() + description = f", on the last {calendar.day_name[self._cron_days[parts[1].upper()]]} of the month" + + else: + description = self.get_segment_description( + exp, + ", every day" if self.cron_week_day == "*" else "", + _add_suffix, + lambda s: ", every day" if s == "1" else ", every {0}", + lambda s: ", between {0} and {1} day of the month", + lambda s: " on the {0} of the month", + lambda s: ", {0} through {1}", + ) + + return description + + def get_year_description(self): + """Generates a description for only the YEAR portion of the expression + + Returns: + The YEAR description + + """ + return self.get_segment_description( + self.cron_year, + "", + lambda s: s, + lambda s: f", every {s} years", + lambda s: ", year {0} through year {1}", + lambda s: ", only in {0}", + lambda s: ", year {0} through year {1}", + ) + + def get_segment_description( + self, + expression, + all_description, + get_single_item_description, + get_interval_description_format, + get_between_description_format, + get_description_format, + get_range_format, + ): + """Returns segment description + Args: + expression: Segment to descript + all_description: * + get_single_item_description: 1 + get_interval_description_format: 1/2 + get_between_description_format: 1-2 + get_description_format: format get_single_item_description + get_range_format: function that formats range expressions depending on cron parts + Returns: + segment description + + """ + + description = "" + expression = expression.strip() + if not expression or expression == "": + return description + if expression == "*": + return all_description + + if not any(ext in expression for ext in ["/", "-", ",", " "]): + return get_description_format(expression).format( + get_single_item_description(expression) + ) + if "," in expression: + segments = expression.split(",") + description_content = "" + for i, seg in enumerate(segments): + seg = seg.strip() + if i > 0 and len(segments) > 2: + description_content += ", " + + if i < len(segments) - 1: + description_content += " " + + if i > 0 and len(segments) > 1 and (i == len(segments) - 1 or len(segments) == 2): + description_content += " and " + description_content += self.get_segment_description( + seg, + all_description, + get_single_item_description, + get_interval_description_format, + get_between_description_format, + get_single_item_description, + get_range_format, + ) + # replace weirdness + description_content = description_content.replace("and ,", "and") + description_content = description_content.replace("of the month", "") + + description = get_description_format(expression).format(description_content) + elif " " in expression and not any(ext in expression for ext in ["/", "-", ","]): + daypart = expression.split() + if len(daypart) > 1 and daypart[1].lower() in map(str.lower, calendar.day_abbr): + expression = ( + f"{daypart[0]} {calendar.day_name[self._cron_days[daypart[1].upper()]]}" + ) + description = get_description_format(expression).format( + get_single_item_description(expression) + ) + elif "/" in expression: + segments = expression.split("/") + description = get_interval_description_format(segments[1]).format( + get_single_item_description(segments[1]) + ) + + # interval contains 'between' piece (i.e. 2-59/3 ) + if "-" in segments[0]: + between_segment_description = self.generate_between_segment_description( + segments[0], + get_between_description_format, + get_single_item_description, + ) + if not between_segment_description.startswith(", "): + description += ", " + + description += between_segment_description + elif not any(ext in segments[0] for ext in ["*", ","]): + range_item_description = get_description_format(segments[0]).format( + get_single_item_description(segments[0]) + ) + range_item_description = range_item_description.replace(", ", "") + + description += f", starting {range_item_description}" + elif "-" in expression: + description = self.generate_between_segment_description( + expression, get_between_description_format, get_single_item_description + ) + + return description + + def generate_between_segment_description( + self, + between_expression, + get_between_description_format, + get_single_item_description, + ): + """ + Generates the between segment description + :param between_expression: + :param get_between_description_format: + :param get_single_item_description: + :return: The between segment description + """ + description = "" + between_segments = between_expression.split("-") + between_segment_1_description = get_single_item_description(between_segments[0]) + between_segment_2_description = get_single_item_description(between_segments[1]) + between_segment_2_description = between_segment_2_description.replace(":00", ":59") + + between_description_format = get_between_description_format(between_expression) + description += between_description_format.format( + between_segment_1_description, between_segment_2_description + ) + + return description + + def format_time(self, hour_expression, minute_expression, second_expression=""): + """Given time parts, will construct a formatted time description + Args: + hour_expression: Hours part + minute_expression: Minutes part + second_expression: Seconds part + Returns: + Formatted time description + + """ + hour = int(hour_expression) + + period = "" + + period = "PM" if (hour >= 12) else "AM" + if period: + # add preceding space + period = " " + period + + if hour > 12: + hour -= 12 + + if hour == 0: + hour = 12 + + minute = str(int(minute_expression)) # Removes leading zero if any + second = "" + if second_expression is not None and second_expression: + second = f":{str(int(second_expression)).zfill(2)}" + + return f"{str(hour).zfill(2)}:{minute.zfill(2)}{second}{period}" + + def __str__(self): + return self.get_full_description() + + def __repr__(self): + return self.get_full_description() diff --git a/scripts/cron_validator.py b/scripts/cron_validator.py new file mode 100644 index 00000000..913f2140 --- /dev/null +++ b/scripts/cron_validator.py @@ -0,0 +1,282 @@ +""" +Cron validation. +Will validate that the values entered into the schedule are valid. +""" + +import calendar +import re + + +class CronValidator: + """Group of functions to make sure each cron field is correct""" + + _cron_days = {v.upper(): k for (k, v) in enumerate(calendar.day_abbr)} + _cron_months = {v.upper(): k for (k, v) in enumerate(calendar.month_abbr) if k != 0} + + def __init__( + self, + cron, + cron_year, + cron_month, + cron_week, + cron_day, + cron_week_day, + cron_hour, + cron_min, + cron_sec, + ) -> None: + if not cron: + pass + else: + self.cron_year = cron_year + self.cron_month = cron_month + self.cron_week = cron_week + self.cron_day = cron_day + self.cron_week_day = cron_week_day + self.cron_hour = cron_hour + self.cron_min = cron_min + self.cron_sec = cron_sec + + def validate(self): + self._month(expr=self.cron_month, prefix="Month") + self._day_of_month(expr=self.cron_day, prefix="Day") + self._day_of_week(expr=self.cron_week_day, prefix="Week Day") + self._number_validate(expr=self.cron_year, prefix="Year", mi=1970, mx=2099, limit=84) + self._number_validate(expr=self.cron_week, prefix="Week", mi=1, mx=53, limit=53) + self._number_validate(expr=self.cron_hour, prefix="Hour", mi=0, mx=23, limit=24) + self._number_validate(expr=self.cron_min, prefix="Minute", mi=0, mx=59, limit=60) + self._number_validate(expr=self.cron_sec, prefix="Second", mi=0, mx=59, limit=60) + + def _number_validate(self, expr: str, prefix: str, mi: int, mx: int, limit: int): + """validates any records that are number only + * + nn (mi-mx) + nn-nn + nn/nn + nn-nn/nn + */nn + nn,nn,nn + """ + if expr is None or expr == "": + pass + elif "*" == expr: + pass + elif re.match(r"^\d*$", expr): + self.check_range(expr=expr, mi=mi, mx=mx, prefix=prefix) + + elif re.match(r"^\d*-\d*$", expr): + parts = expr.split("-") + self.check_range(expr=parts[0], mi=mi, mx=mx, prefix=prefix) + self.check_range(expr=parts[1], mi=mi, mx=mx, prefix=prefix) + self.compare_range(st=parts[0], ed=parts[1], mi=mi, mx=mx, prefix=prefix) + + elif re.match(r"^\d*/\d*$", expr): + parts = expr.split("/") + self.check_range(expr=parts[0], mi=mi, mx=mx, prefix=prefix) + self.check_range(ty="interval", expr=parts[1], mi=1, mx=mx, prefix=prefix) + + elif re.match(r"^\d*-\d*/\d*$", expr): + parts = expr.split("/") + fst_parts = parts[0].split("-") + self.check_range(expr=fst_parts[0], mi=mi, mx=mx, prefix=prefix) + self.check_range(expr=fst_parts[1], mi=mi, mx=mx, prefix=prefix) + self.compare_range(st=fst_parts[0], ed=fst_parts[1], mi=mi, mx=mx, prefix=prefix) + self.check_range(ty="interval", expr=parts[1], mi=1, mx=mx, prefix=prefix) + + elif re.match(r"^\*/\d*$", expr): + parts = expr.split("/") + self.check_range(ty="interval", expr=parts[1], mi=1, mx=mx, prefix=prefix) + + elif "," in expr: + expr_ls = expr.split(",") + if len(expr_ls) > limit: + msg = f"({prefix}) Exceeded maximum number({limit}) of specified value. '{len(expr_ls)}' is provided" + raise ValueError(msg) + else: + for n in expr_ls: + self._number_validate(expr=n.strip(), prefix=prefix, mi=mi, mx=mx, limit=limit) + else: + msg = f"({prefix}) Illegal Expression Format '{expr}'" + raise ValueError(msg) + + def _day_of_month(self, expr: str, prefix: str): + """DAY Of Month expressions (n : Number, s: String) + * + nn (1~31) + nn-nn + nn/nn + nn-nn/nn + */nn + nn,nn,nn, nth sss, last sss, last (Maximum 31 elements) + last + nth sss + last sss + """ + mi, mx = (1, 31) + if expr is None or expr == "": + pass + elif "*" == expr: + pass + elif "," in expr: + limit = 31 + expr_ls = expr.split(",") + if len(expr_ls) > 31: + msg = f"({prefix}) Exceeded maximum number({limit}) of specified value. '{len(expr_ls)}' is provided" + raise ValueError(msg) + else: + for dayofmonth in expr_ls: + self._day_of_month(expr=dayofmonth.strip(), prefix=prefix) + # if it is number only then just use _number_validate function + elif re.match( + r"^(\*|(\d{1,2})-(\d{1,2})(/(\d{1,2}))?|\*/\d{1,2}|\d{1,2}(/\d{1,2})?)$", + expr, + ): + self._number_validate(expr=expr, prefix=prefix, mi=mi, mx=mx, limit=31) + elif "last" == expr.lower(): + pass + elif re.match(r"^[1-5](nd|st|rd|th)\s\D{3}$", expr, re.IGNORECASE): + parts = expr.split() + parts[0] = re.sub("[nd|st|rd|th]", "", parts[0]) + try: + self._cron_days[parts[1].upper()] + except KeyError: + msg = f"({prefix}) Invalid value '{expr}'" + raise ValueError(msg) + self.check_range(expr=parts[0], mi=mi, mx=5, prefix=prefix, ty=None) + elif re.match(r"^last\s\D{3}$", expr, re.IGNORECASE): + parts = expr.split() + try: + self._cron_days[parts[1].upper()] + except KeyError: + msg = f"({prefix}) Invalid value '{expr}'" + raise ValueError(msg) + else: + msg = f"({prefix}) Illegal Expression Format '{expr}'" + raise ValueError(msg) + + def _month(self, expr: str, prefix: str): + """month expressions (n : Number, s: String) + * + nn (1~12) + sss (JAN~DEC) + nn-nn + sss-sss + nn/nn + nn-nn/nn + */nn + nn,nn,nn,nn-nn,sss-sss (Maximum 12 elements) + """ + mi, mx = (1, 12) + if expr is None or expr == "": + pass + elif "*" == expr: + pass + elif "," in expr: + # get values with a comma and then run each part through months again. + limit = 12 + expr_ls = expr.split(",") + if len(expr_ls) > limit: + msg = f"({prefix}) Exceeded maximum number({limit}) of specified value. '{len(expr_ls)}' is provided" + raise ValueError(msg) + else: + for mon in expr_ls: + self._month(expr=mon.strip(), prefix=prefix) + # if it is number only then just use _number_validate function + elif re.match( + r"^(\*|(\d{1,2})-(\d{1,2})(/(\d{1,2}))?|\*/\d{1,2}|\d{1,2}(/\d{1,2})?)$", + expr, + ): + self._number_validate(expr=expr, prefix=prefix, mi=mi, mx=mx, limit=12) + elif re.match(r"\D{3}$", expr): + try: + st_mon = self._cron_months[expr.upper()] + except KeyError: + msg = f"Invalid Month value '{expr}'" + raise ValueError(msg) + elif re.match(r"\D{3}-\D{3}$", expr): + parts = expr.split("-") + try: + st_mon = self._cron_months[parts[0].upper()] + ed_mon = self._cron_months[parts[1].upper()] + except KeyError: + msg = f"Invalid Month value '{expr}'" + raise ValueError(msg) + self.compare_range( + st=st_mon, + ed=ed_mon, + mi=mi, + mx=mx, + prefix=prefix, + ) + else: + msg = f"({prefix}) Illegal Expression Format '{expr}'" + raise ValueError(msg) + + def _day_of_week(self, expr: str, prefix: str): + """DAYOfWeek expressions (n : Number, s: String) + * + n (0~6) + sss (SUN~SAT) + n/n + n-n/n + */n + n-n + sss-sss + n-n,sss-sss (maximum 7 elements) + """ + mi, mx = (0, 6) + if expr is None or expr == "": + pass + elif "*" == expr: + pass + elif "," in expr: + limit = 7 + expr_ls = expr.split(",") + + if len(expr_ls) > limit: + msg = f"({prefix}) Exceeded maximum number({limit}) of specified value. '{len(expr_ls)}' is provided" + raise ValueError(msg) + else: + for day in expr_ls: + self._day_of_week(expr=day.strip(), prefix=prefix) + # if it is number only then just use _number_validate function + elif re.match(r"^(\*|(\d{1})-(\d{1})(/(\d{1}))?|\*/\d{1}|\d{1}(/\d{1})?)$", expr): + self._number_validate(expr=expr, prefix=prefix, mi=mi, mx=mx, limit=7) + elif expr.upper() in self._cron_days.keys(): + pass + elif re.match(r"\D{3}-\D{3}$", expr): + parts = expr.split("-") + try: + st_day = self._cron_days[parts[0].upper()] + ed_day = self._cron_days[parts[1].upper()] + except KeyError: + msg = f"({prefix}) Invalid value '{expr}'" + raise ValueError(msg) + self.compare_range(st=st_day, ed=ed_day, mi=mi, mx=mx, prefix=prefix, ty="dow") + else: + msg = f"({prefix}) Illegal Expression Format '{expr}'" + raise ValueError(msg) + + def check_range(self, expr, mi, mx, prefix, ty=None): + """ + check if expression value within range of specified limit + """ + if int(expr) < mi or mx < int(expr): + if ty is None: + msg = f"{prefix} values must be between {mi} and {mx} but '{expr}' is provided" + elif ty == "interval": + msg = f"({prefix}) Accepted increment value range is {mi}~{mx} but '{expr}' is provided" + elif ty == "dow": + msg = f"({prefix}) Accepted week value is {mi}~{mx} but '{expr}' is provided" + raise ValueError(msg) + + def compare_range(self, prefix, st, ed, mi, mx, ty=None): + """check 2 expression values size + does not allow {st} value to be greater than {ed} value + """ + if int(st) > int(ed): + if ty is None: + msg = f"({prefix}) Invalid range '{st}-{ed}'. Accepted range is {mi}-{mx}" + elif ty == "dow": + msg = f"({prefix}) Invalid range '{self._cron_days[st]}-{self._cron_days[ed]}'. Accepted range is {mi}-{mx}" + raise ValueError(msg) diff --git a/scripts/crypto.py b/scripts/crypto.py index b97bb6ac..55b1d3e6 100644 --- a/scripts/crypto.py +++ b/scripts/crypto.py @@ -1,6 +1,5 @@ """Password encryption and decryption.""" - from base64 import b64decode, b64encode from cryptography.fernet import Fernet diff --git a/scripts/database.py b/scripts/database.py index efc0548a..fc573b26 100644 --- a/scripts/database.py +++ b/scripts/database.py @@ -43,9 +43,7 @@ def seed(session: SqlSession, model: Any) -> None: get_or_create(session, model.TaskSourceType, name="SSH Command") # task processing type - get_or_create( - session, model.TaskProcessingType, name="Network File (SMB Connection)" - ) + get_or_create(session, model.TaskProcessingType, name="Network File (SMB Connection)") get_or_create(session, model.TaskProcessingType, name="File (SFTP Connection)") get_or_create(session, model.TaskProcessingType, name="File (FTP Connection)") get_or_create(session, model.TaskProcessingType, name="Git URL") @@ -58,22 +56,19 @@ def seed(session: SqlSession, model: Any) -> None: get_or_create(session, model.TaskSourceQueryType, name="File Path (SMB Connection)") get_or_create(session, model.TaskSourceQueryType, name="Other URL (no auth)") get_or_create(session, model.TaskSourceQueryType, name="Source Code") - get_or_create( - session, model.TaskSourceQueryType, name="File Path (SFTP Connection)" - ) + get_or_create(session, model.TaskSourceQueryType, name="File Path (SFTP Connection)") get_or_create(session, model.TaskSourceQueryType, name="File Path (FTP Connection)") get_or_create(session, model.TaskSourceQueryType, name="Devops") # database type get_or_create(session, model.ConnectionDatabaseType, name="Postgres") get_or_create(session, model.ConnectionDatabaseType, name="SQL Sever") + get_or_create(session, model.ConnectionDatabaseType, name="Jdbc") # file types get_or_create(session, model.TaskDestinationFileType, name="CSV (.csv)", ext="csv") get_or_create(session, model.TaskDestinationFileType, name="Text (.txt)", ext="txt") - get_or_create( - session, model.TaskDestinationFileType, name="Excel (.csv)", ext="csv" - ) + get_or_create(session, model.TaskDestinationFileType, name="Excel (.csv)", ext="csv") get_or_create( session, model.TaskDestinationFileType, @@ -103,3 +98,4 @@ def seed(session: SqlSession, model: Any) -> None: get_or_create(session, model.TaskStatus, name="SSH") get_or_create(session, model.TaskStatus, name="SQL Server") get_or_create(session, model.TaskStatus, name="Postgres") + get_or_create(session, model.TaskStatus, name="Jdbc") diff --git a/sonar-project.properties b/sonar-project.properties index 44154da0..7cc46555 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,2 +1,2 @@ sonar.exclusions = web/static/lib/**/*, migrations_dev/, migrations/, runner/tests/, web/tests/, scheduler/tests/, web/static/fonts/**/* -sonar.python.version = 3.9 +sonar.python.version = 3.10 diff --git a/tox.ini b/tox.ini index 962e712d..3f9a1897 100644 --- a/tox.ini +++ b/tox.ini @@ -41,11 +41,9 @@ description = reformat code commands = black . isort . - djlint . -e html.j2 --reformat --quiet --warn allowlist_externals = isort black - djlint skip_install = true skip_gitignore = true @@ -54,14 +52,11 @@ description = check code style commands = isort . --check black . --fast --check - ruff scheduler/ web/ runner/ + ruff check scheduler/ web/ runner/ mypy scheduler web runner --show-traceback --show-error-codes - djlint . -e html.j2 --check --quiet - djlint . -e html.j2 --lint skip_install = true allowlist_externals = black isort ruff mypy - djlint diff --git a/web/cli.py b/web/cli.py index a30360da..dc7f1e23 100644 --- a/web/cli.py +++ b/web/cli.py @@ -1,4 +1,5 @@ """EM Web Custom CLI.""" + import sys from pathlib import Path diff --git a/web/extensions.py b/web/extensions.py index 090e1f3a..e4c4a1d8 100644 --- a/web/extensions.py +++ b/web/extensions.py @@ -9,6 +9,7 @@ scripts after running :obj:`web.create_app` """ + import logging from flask_assets import Environment diff --git a/web/model.py b/web/model.py index 1ce36e25..75e7c2f6 100644 --- a/web/model.py +++ b/web/model.py @@ -20,30 +20,25 @@ """ - import datetime from dataclasses import dataclass -from typing import Optional +from typing import List, Optional -from sqlalchemy.orm import declarative_base +from sqlalchemy.orm import Mapped, mapped_column, relationship from sqlalchemy.sql import functions from .extensions import db -Base = declarative_base() - @dataclass class LoginType(db.Model): """Lookup table of user login types.""" __tablename__ = "login_type" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(120), nullable=True) - login = db.relationship("Login", backref="login_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + login: Mapped[List["Login"]] = relationship(back_populates="login_type", lazy=True) @dataclass @@ -51,15 +46,16 @@ class Login(db.Model): """Table should contain all login attempts.""" __tablename__ = "login" - id: Optional[int] = None - username: Optional[str] = None - login_date: Optional[datetime.datetime] = None - type_id: Optional[int] = None - id = db.Column(db.Integer, primary_key=True, index=True) - type_id = db.Column(db.Integer, db.ForeignKey(LoginType.id), nullable=True) - username = db.Column(db.String(120), nullable=True) - login_date = db.Column(db.DateTime, server_default=functions.now()) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + type_id: Mapped[Optional[int]] = mapped_column( + db.Integer, db.ForeignKey(LoginType.id), nullable=True + ) + username: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + login_date: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, server_default=functions.now() + ) + login_type: Mapped["LoginType"] = relationship(back_populates="login") @dataclass @@ -68,37 +64,29 @@ class User(db.Model): # pylint: disable=too-many-instance-attributes - id: Optional[int] = None - account_name: Optional[str] = None - email: Optional[str] = None - full_name: Optional[str] = None - first_name: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - account_name = db.Column(db.String(200), nullable=True, index=True) - email = db.Column(db.String(200), nullable=True, index=True) - full_name = db.Column(db.String(200), nullable=True) - first_name = db.Column(db.String(200), nullable=True) - project_owner = db.relationship( - "Project", backref="project_owner", lazy=True, foreign_keys="Project.owner_id" - ) - project_creator = db.relationship( - "Project", + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + account_name: Mapped[Optional[str]] = mapped_column(db.String(200), nullable=True, index=True) + email: Mapped[Optional[str]] = mapped_column(db.String(200), nullable=True, index=True) + full_name: Mapped[Optional[str]] = mapped_column(db.String(200), nullable=True) + first_name: Mapped[Optional[str]] = mapped_column(db.String(200), nullable=True) + project_owner: Mapped["Project"] = relationship( + backref="project_owner", lazy=True, foreign_keys="Project.owner_id" + ) + project_creator: Mapped["Project"] = relationship( backref="project_creator", lazy=True, foreign_keys="Project.creator_id", ) - project_updater = db.relationship( - "Project", + project_updater: Mapped["Project"] = relationship( backref="project_updater", lazy=True, foreign_keys="Project.updater_id", ) - task_creator = db.relationship( - "Task", backref="task_creator", lazy=True, foreign_keys="Task.creator_id" + task_creator: Mapped["Task"] = relationship( + backref="task_creator", lazy=True, foreign_keys="Task.creator_id" ) - task_updater = db.relationship( - "Task", backref="task_updater", lazy=True, foreign_keys="Task.updater_id" + task_updater: Mapped["Task"] = relationship( + backref="task_updater", lazy=True, foreign_keys="Task.updater_id" ) is_authenticated = True is_active = True @@ -119,72 +107,43 @@ class Project(db.Model): # pylint: disable=too-many-instance-attributes - id: Optional[int] = None - name: Optional[str] = None - description: Optional[str] = None - owner_id: Optional[int] = None - cron: Optional[int] = None - cron_year: Optional[int] = None - cron_month: Optional[int] = None - cron_week: Optional[int] = None - cron_day: Optional[int] = None - cron_week_day: Optional[int] = None - cron_hour: Optional[int] = None - cron_min: Optional[int] = None - cron_sec: Optional[int] = None - cron_start_date: Optional[datetime.datetime] = None - cron_end_date: Optional[datetime.datetime] = None - - intv: Optional[int] = None - intv_type: Optional[str] = None - intv_value: Optional[int] = None - intv_start_date: Optional[datetime.datetime] = None - intv_end_date: Optional[datetime.datetime] = None - - ooff: Optional[int] = None - ooff_date: Optional[datetime.datetime] = None - - created: Optional[datetime.datetime] = None - creator_id: Optional[int] = None - updated: Optional[datetime.datetime] = None - updater_id: Optional[int] = None - - global_params: Optional[str] = None - - sequence_tasks: Optional[int] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(120), nullable=True) - description = db.Column(db.String(8000), nullable=True) - owner_id = db.Column(db.Integer, db.ForeignKey(User.id), nullable=True, index=True) - - cron = db.Column(db.Integer, nullable=True) - cron_year = db.Column(db.Integer, nullable=True) - cron_month = db.Column(db.Integer, nullable=True) - cron_week = db.Column(db.Integer, nullable=True) - cron_day = db.Column(db.Integer, nullable=True) - cron_week_day = db.Column(db.Integer, nullable=True) - cron_hour = db.Column(db.Integer, nullable=True) - cron_min = db.Column(db.Integer, nullable=True) - cron_sec = db.Column(db.Integer, nullable=True) - cron_start_date = db.Column(db.DateTime, nullable=True) - cron_end_date = db.Column(db.DateTime, nullable=True) - - intv = db.Column(db.Integer, nullable=True) - intv_type = db.Column(db.String(5), nullable=True) - intv_value = db.Column(db.Integer, nullable=True) - intv_start_date = db.Column(db.DateTime, nullable=True) - intv_end_date = db.Column(db.DateTime, nullable=True) - - ooff = db.Column(db.Integer, nullable=True) - ooff_date = db.Column(db.DateTime, nullable=True) - - global_params = db.Column(db.String(8000), nullable=True) - - sequence_tasks = db.Column(db.Integer, nullable=True) - - task = db.relationship( - "Task", + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + description: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + owner_id: Mapped[Optional[int]] = mapped_column( + db.Integer, db.ForeignKey(User.id), nullable=True, index=True + ) + + cron: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + cron_year: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_month: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_week: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_day: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_week_day: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_hour: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_min: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_sec: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + cron_start_date: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, nullable=True + ) + cron_end_date: Mapped[Optional[datetime.datetime]] = mapped_column(db.DateTime, nullable=True) + + intv: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + intv_type: Mapped[Optional[str]] = mapped_column(db.String(5), nullable=True) + intv_value: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + intv_start_date: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, nullable=True + ) + intv_end_date: Mapped[Optional[datetime.datetime]] = mapped_column(db.DateTime, nullable=True) + + ooff: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + ooff_date: Mapped[Optional[datetime.datetime]] = mapped_column(db.DateTime, nullable=True) + + global_params: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + + sequence_tasks: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + + task: Mapped[List["Task"]] = relationship( backref="project", lazy="dynamic", cascade="all, delete, delete-orphan", @@ -192,20 +151,23 @@ class Project(db.Model): ) # projectparams link - params = db.relationship( - "ProjectParam", + params: Mapped[List["ProjectParam"]] = relationship( backref="project", lazy=True, cascade="all, delete, delete-orphan", passive_deletes=True, ) - created = db.Column(db.DateTime, server_default=functions.now()) - creator_id = db.Column( + created: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, server_default=functions.now() + ) + creator_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(User.id), nullable=True, index=True ) - updated = db.Column(db.DateTime, onupdate=functions.now()) - updater_id = db.Column( + updated: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, onupdate=functions.now() + ) + updater_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(User.id), nullable=True, index=True ) @@ -219,12 +181,10 @@ class TaskSourceType(db.Model): """Lookup table of task source types.""" __tablename__ = "task_source_type" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=True) - task = db.relationship("Task", backref="source_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + task: Mapped["Task"] = relationship(backref="source_type", lazy=True) @dataclass @@ -232,12 +192,10 @@ class TaskSourceQueryType(db.Model): """Lookup table of task query source types.""" __tablename__ = "task_source_query_type" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=True) - task = db.relationship("Task", backref="query_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + task: Mapped["Task"] = relationship(backref="query_type", lazy=True) @dataclass @@ -245,12 +203,10 @@ class TaskProcessingType(db.Model): """Lookup table of task query source types.""" __tablename__ = "task_processing_type" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=True) - task = db.relationship("Task", backref="processing_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + task: Mapped["Task"] = relationship(backref="processing_type", lazy=True) @dataclass @@ -261,20 +217,16 @@ class TaskStatus(db.Model): """ __tablename__ = "task_status" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(1000), nullable=True) - task = db.relationship( - "Task", + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + task: Mapped[List["Task"]] = relationship( backref="status", lazy="dynamic", cascade="all, delete, delete-orphan", passive_deletes=True, ) - task_log = db.relationship( - "TaskLog", + task_log: Mapped[List["TaskLog"]] = relationship( backref="status", lazy="dynamic", cascade="all, delete, delete-orphan", @@ -289,53 +241,39 @@ class Connection(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection" - id: Optional[int] = None - name: Optional[str] = None - description: Optional[str] = None - address: Optional[str] = None - primary_contact: Optional[str] = None - primary_contact_email: Optional[str] = None - primary_contact_phone: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(120), nullable=True) - description = db.Column(db.String(120), nullable=True) - address = db.Column(db.String(120), nullable=True) - primary_contact = db.Column(db.String(400), nullable=True) - primary_contact_email = db.Column(db.String(120), nullable=True) - primary_contact_phone = db.Column(db.String(120), nullable=True) - ssh = db.relationship( - "ConnectionSsh", + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + description: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + address: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + primary_contact: Mapped[Optional[str]] = mapped_column(db.String(400), nullable=True) + primary_contact_email: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + primary_contact_phone: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + ssh: Mapped[List["ConnectionSsh"]] = relationship( backref="connection", lazy=True, foreign_keys="ConnectionSsh.connection_id", ) - sftp = db.relationship( - "ConnectionSftp", + sftp: Mapped[List["ConnectionSftp"]] = relationship( backref="connection", lazy=True, foreign_keys="ConnectionSftp.connection_id", ) - ftp = db.relationship( - "ConnectionFtp", + ftp: Mapped[List["ConnectionFtp"]] = relationship( backref="connection", lazy=True, foreign_keys="ConnectionFtp.connection_id", ) - smb = db.relationship( - "ConnectionSmb", + smb: Mapped[List["ConnectionSmb"]] = relationship( backref="connection", lazy=True, foreign_keys="ConnectionSmb.connection_id", ) - database = db.relationship( - "ConnectionDatabase", - backref="connection", + database: Mapped[List["ConnectionDatabase"]] = relationship( + back_populates="connection", lazy=True, - foreign_keys="ConnectionDatabase.connection_id", ) - gpg = db.relationship( - "ConnectionGpg", + gpg: Mapped[List["ConnectionGpg"]] = relationship( backref="connection", lazy=True, foreign_keys="ConnectionGpg.connection_id", @@ -353,45 +291,33 @@ class ConnectionSftp(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection_sftp" - id: Optional[int] = None - connection_id: Optional[int] = None - name: Optional[str] = None - address: Optional[str] = None - port: Optional[int] = None - path: Optional[str] = None - username: Optional[str] = None - key: Optional[str] = None - password: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - connection_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(500), nullable=True) - address = db.Column(db.String(500), nullable=True) - port = db.Column(db.Integer, nullable=True) - path = db.Column(db.String(500), nullable=True) - username = db.Column(db.String(120), nullable=True) - key = db.Column(db.String(8000), nullable=True) - password = db.Column(db.Text, nullable=True) - key_password = db.Column(db.Text, nullable=True) - task = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + address: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + port: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + path: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + username: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + key: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + password: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + key_password: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + task: Mapped["Task"] = relationship( backref="destination_sftp_conn", lazy=True, foreign_keys="Task.destination_sftp_id", ) - task_source = db.relationship( - "Task", + task_source: Mapped["Task"] = relationship( backref="source_sftp_conn", lazy=True, foreign_keys="Task.source_sftp_id", ) - query_source = db.relationship( - "Task", backref="query_sftp_conn", lazy=True, foreign_keys="Task.query_sftp_id" + query_source: Mapped["Task"] = relationship( + backref="query_sftp_conn", lazy=True, foreign_keys="Task.query_sftp_id" ) - processing_source = db.relationship( - "Task", + processing_source: Mapped["Task"] = relationship( backref="processing_sftp_conn", lazy=True, foreign_keys="Task.processing_sftp_id", @@ -409,25 +335,17 @@ class ConnectionSsh(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection_ssh" - id: Optional[int] = None - connection_id: Optional[int] = None - name: Optional[str] = None - address: Optional[str] = None - port: Optional[int] = None - username: Optional[str] = None - password: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - connection_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(500), nullable=True) - address = db.Column(db.String(500), nullable=True) - port = db.Column(db.Integer, nullable=True) - username = db.Column(db.String(120), nullable=True) - password = db.Column(db.Text, nullable=True) - task_source = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + address: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + port: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + username: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + password: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + task_source: Mapped["Task"] = relationship( backref="source_ssh_conn", lazy=True, foreign_keys="Task.source_ssh_id", @@ -445,19 +363,14 @@ class ConnectionGpg(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection_gpg" - id: Optional[int] = None - connection_id: Optional[int] = None - name: Optional[str] = None - key: Optional[str] = None - id = db.Column(db.Integer, primary_key=True, index=True) - connection_id = db.Column( + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(500), nullable=True) - key = db.Column(db.String(8000), nullable=True) - task_source = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + key: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + task_source: Mapped["Task"] = relationship( backref="file_gpg_conn", lazy=True, foreign_keys="Task.file_gpg_id", @@ -475,37 +388,28 @@ class ConnectionFtp(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection_ftp" - id: Optional[int] = None - connection_id: Optional[int] = None - name: Optional[str] = None - address: Optional[str] = None - path: Optional[str] = None - username: Optional[str] = None - password: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - connection_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(500), nullable=True) - address = db.Column(db.String(500), nullable=True) - path = db.Column(db.String(500), nullable=True) - username = db.Column(db.String(500), nullable=True) - password = db.Column(db.Text, nullable=True) - task = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + address: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + path: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + username: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + password: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + task: Mapped["Task"] = relationship( backref="destination_ftp_conn", lazy=True, foreign_keys="Task.destination_ftp_id", ) - task_source = db.relationship( - "Task", backref="source_ftp_conn", lazy=True, foreign_keys="Task.source_ftp_id" + task_source: Mapped["Task"] = relationship( + backref="source_ftp_conn", lazy=True, foreign_keys="Task.source_ftp_id" ) - query_source = db.relationship( - "Task", backref="query_ftp_conn", lazy=True, foreign_keys="Task.query_ftp_id" + query_source: Mapped["Task"] = relationship( + backref="query_ftp_conn", lazy=True, foreign_keys="Task.query_ftp_id" ) - processing_source = db.relationship( - "Task", + processing_source: Mapped["Task"] = relationship( backref="processing_ftp_conn", lazy=True, foreign_keys="Task.processing_ftp_id", @@ -523,41 +427,30 @@ class ConnectionSmb(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "connection_smb" - id: Optional[int] = None - connection_id: Optional[int] = None - name: Optional[str] = None - share_name: Optional[str] = None - path: Optional[str] = None - username: Optional[str] = None - password: Optional[str] = None - server_ip: Optional[str] = None - server_name: Optional[str] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - connection_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(120), nullable=True) - share_name = db.Column(db.String(500), nullable=True) - path = db.Column(db.String(1000), nullable=True) - username = db.Column(db.String(500), nullable=True) - password = db.Column(db.Text, nullable=True) - server_ip = db.Column(db.String(500), nullable=True) - server_name = db.Column(db.String(500), nullable=True) - task = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + share_name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + path: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + username: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + password: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + server_ip: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + server_name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + task: Mapped["Task"] = relationship( backref="destination_smb_conn", lazy=True, foreign_keys="Task.destination_smb_id", ) - task_source = db.relationship( - "Task", backref="source_smb_conn", lazy=True, foreign_keys="Task.source_smb_id" + task_source: Mapped["Task"] = relationship( + backref="source_smb_conn", lazy=True, foreign_keys="Task.source_smb_id" ) - query_source = db.relationship( - "Task", backref="query_smb_conn", lazy=True, foreign_keys="Task.query_smb_id" + query_source: Mapped["Task"] = relationship( + backref="query_smb_conn", lazy=True, foreign_keys="Task.query_smb_id" ) - processing_source = db.relationship( - "Task", + processing_source: Mapped["Task"] = relationship( backref="processing_smb_conn", lazy=True, foreign_keys="Task.processing_smb_id", @@ -573,12 +466,10 @@ class ConnectionDatabaseType(db.Model): """Lookup table of task source database types.""" __tablename__ = "connection_database_type" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=True) - database = db.relationship("ConnectionDatabase", backref="database_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + database: Mapped["ConnectionDatabase"] = relationship(backref="database_type", lazy=True) @dataclass @@ -586,29 +477,23 @@ class ConnectionDatabase(db.Model): """List of task source databases and connection strings.""" __tablename__ = "connection_database" - id: Optional[int] = None - type_id: Optional[int] = None - name: Optional[str] = None - connection_string: Optional[str] = None - connection_id: Optional[int] = None - timeout: Optional[int] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - type_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + type_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionDatabaseType.id), nullable=True, index=True ) - connection_id = db.Column( + connection_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Connection.id), nullable=True, index=True ) - name = db.Column(db.String(500), nullable=True) - connection_string = db.Column(db.Text, nullable=True) - timeout = db.Column(db.Integer, nullable=True) - task_source = db.relationship( - "Task", + name: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + connection_string: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + timeout: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + task_source: Mapped["Task"] = relationship( backref="source_database_conn", lazy=True, foreign_keys="Task.source_database_id", ) + connection: Mapped["Connection"] = relationship(back_populates="database") def __str__(self) -> str: """Get string of name.""" @@ -620,14 +505,11 @@ class TaskDestinationFileType(db.Model): """Lookup table of task destination file types.""" __tablename__ = "task_destination_file_type" - id: Optional[int] = None - name: Optional[str] = None - ext: Optional[str] = None - id = db.Column(db.Integer, primary_key=True) - name = db.Column(db.String(120), nullable=True) - ext = db.Column(db.String(120), nullable=False) - task = db.relationship("Task", backref="file_type", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + ext: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=False) + task: Mapped["Task"] = relationship(backref="file_type", lazy=True) @dataclass @@ -635,12 +517,10 @@ class QuoteLevel(db.Model): """Lookup table for python quote levels.""" __tablename__ = "quote_level" - id: Optional[int] = None - name: Optional[str] = None - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(120), nullable=True) - task = db.relationship("Task", backref="destination_file_quote_level", lazy=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(120), nullable=True) + task: Mapped["Task"] = relationship(backref="destination_file_quote_level", lazy=True) @dataclass @@ -648,19 +528,14 @@ class ProjectParam(db.Model): """Task parameters.""" __tablename__ = "project_param" - id: Optional[int] = None - key: Optional[str] = None - value: Optional[str] = None - sensitive: Optional[int] = None - project_id: Optional[int] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - key = db.Column(db.String(500), nullable=True) - value = db.Column(db.String(8000), nullable=True) - project_id = db.Column( + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + key: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + value: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + project_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Project.id), nullable=True, index=True ) - sensitive = db.Column(db.Integer, nullable=True, index=True) + sensitive: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) @dataclass @@ -670,329 +545,234 @@ class Task(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "task" - # general information - id: Optional[int] = None - name: Optional[str] = None - project_id: Optional[int] = None - status_id: Optional[int] = None - enabled: Optional[int] = None - order: Optional[int] = None - last_run: Optional[datetime.datetime] = None - next_run: Optional[datetime.datetime] = None - last_run_job_id: Optional[str] = None - created: Optional[datetime.datetime] = None - creator_id: Optional[int] = None - updated: Optional[datetime.datetime] = None - updater_id: Optional[int] = None - - # data source - source_type_id: Optional[int] = None - source_database_id: Optional[int] = None - - source_query_type_id: Optional[int] = None - source_query_include_header: Optional[int] = None - source_git: Optional[str] = None - source_devops: Optional[str] = None - source_url: Optional[str] = None - source_code: Optional[str] = None - - source_require_sql_output: Optional[int] = None - - query_smb_id: Optional[int] = None - query_smb_file: Optional[str] = None - query_sftp_id: Optional[int] = None - query_sftp_file: Optional[str] = None - query_ftp_id: Optional[int] = None - query_ftp_file: Optional[str] = None - query_params: Optional[str] = None - - source_smb_delimiter: Optional[str] = None - source_smb_ignore_delimiter: Optional[int] = None - source_smb_file: Optional[str] = None - source_smb_id: Optional[int] = None - - source_ftp_file: Optional[str] = None - source_ftp_delimiter: Optional[str] = None - source_ftp_ignore_delimiter: Optional[int] = None - source_ftp_id: Optional[int] = None - - source_sftp_file: Optional[str] = None - source_sftp_delimiter: Optional[str] = None - source_sftp_ignore_delimiter: Optional[int] = None - source_sftp_id: Optional[int] = None - - source_ssh_id: Optional[int] = None - - # caching - source_cache: Optional[str] = None - enable_source_cache: Optional[int] = None - - # processing - processing_type_id: Optional[int] = None - processing_smb_id: Optional[int] = None - processing_smb_file: Optional[str] = None - processing_sftp_id: Optional[int] = None - processing_sftp_file: Optional[str] = None - processing_ftp_id: Optional[int] = None - processing_ftp_file: Optional[str] = None - processing_code: Optional[str] = None - processing_url: Optional[str] = None - processing_git: Optional[str] = None - processing_devops: Optional[str] = None - processing_command: Optional[str] = None - - # destination - destination_file_delimiter: Optional[str] = None - destination_file_name: Optional[str] = None - destination_ignore_delimiter: Optional[int] = None - destination_file_line_terminator: Optional[str] = None - destination_quote_level_id: Optional[int] = None - - destination_create_zip: Optional[int] = None - destination_zip_name: Optional[str] = None - - destination_file_type_id: Optional[int] = None - - destination_sftp: Optional[int] = None - destination_sftp_overwrite: Optional[int] = None - destination_sftp_id: Optional[int] = None - destination_sftp_dont_send_empty_file: Optional[int] = None - - destination_ftp: Optional[int] = None - destination_ftp_overwrite: Optional[int] = None - destination_ftp_id: Optional[int] = None - destination_ftp_dont_send_empty_file: Optional[int] = None - - destination_smb: Optional[int] = None - destination_smb_overwrite: Optional[int] = None - destination_smb_id: Optional[int] = None - destination_smb_dont_send_empty_file: Optional[int] = None - - file_gpg: Optional[int] = None - file_gpg_id: Optional[int] = None - - email_completion: Optional[int] = None - email_completion_log: Optional[int] = None - email_completion_file: Optional[int] = None - email_completion_file_embed: Optional[int] = None - email_completion_dont_send_empty_file: Optional[int] = None - email_completion_recipients: Optional[str] = None - email_completion_message: Optional[str] = None - - email_error: Optional[int] = None - email_error_recipients: Optional[str] = None - email_error_message: Optional[str] = None - - max_retries: Optional[int] = None - - est_duration: Optional[int] = None # general information - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(1000), nullable=True) - project_id = db.Column( + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + project_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(Project.id), nullable=True, index=True ) - status_id = db.Column( + status_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskStatus.id), nullable=True, index=True ) - enabled = db.Column(db.Integer, nullable=True, index=True) - order = db.Column(db.Integer, nullable=True, index=True) - last_run = db.Column(db.DateTime, nullable=True) - last_run_job_id = db.Column(db.String(30), nullable=True, index=True) - next_run = db.Column(db.DateTime, nullable=True, index=True) - created = db.Column(db.DateTime, server_default=functions.now(), index=True) - creator_id = db.Column( + enabled: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + order: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + last_run: Mapped[Optional[datetime.datetime]] = mapped_column(db.DateTime, nullable=True) + last_run_job_id: Mapped[Optional[str]] = mapped_column( + db.String(30), nullable=True, index=True + ) + next_run: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, nullable=True, index=True + ) + created: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, server_default=functions.now(), index=True + ) + creator_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(User.id), nullable=True, index=True ) - updated = db.Column(db.DateTime, onupdate=functions.now(), index=True) - updater_id = db.Column( + updated: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, onupdate=functions.now(), index=True + ) + updater_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(User.id), nullable=True, index=True ) """ data source """ # db/sftp/smb/ftp - source_type_id = db.Column( + source_type_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskSourceType.id), nullable=True, index=True ) # source locations # git/url/code/sftp/ftp/smb/devops - source_query_type_id = db.Column( + source_query_type_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskSourceQueryType.id), nullable=True, index=True ) - source_query_include_header = db.Column(db.Integer, nullable=True) + source_query_include_header: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) - source_require_sql_output = db.Column(db.Integer, nullable=True) + source_require_sql_output: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) # source git - source_git = db.Column(db.String(1000), nullable=True) + source_git: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) # source devops - source_devops = db.Column(db.String(1000), nullable=True) + source_devops: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) # source web url - source_url = db.Column(db.String(1000), nullable=True) + source_url: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) # source typed code - source_code = db.Column(db.Text, nullable=True) + source_code: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) # cached source query - source_cache = db.Column(db.Text, nullable=True) - enable_source_cache = db.Column(db.Integer, nullable=True, index=True) + source_cache: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + enable_source_cache: Mapped[Optional[int]] = mapped_column( + db.Integer, nullable=True, index=True + ) - query_smb_id = db.Column( + query_smb_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSmb.id), nullable=True, index=True ) - query_smb_file = db.Column(db.String(1000), nullable=True) + query_smb_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - query_sftp_id = db.Column( + query_sftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSftp.id), nullable=True, index=True ) - query_sftp_file = db.Column(db.String(1000), nullable=True) + query_sftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - query_ftp_id = db.Column( + query_ftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionFtp.id), nullable=True, index=True ) - query_ftp_file = db.Column(db.String(1000), nullable=True) + query_ftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - query_params = db.Column(db.String(8000), nullable=True) + query_params: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) # source smb sql file - source_smb_file = db.Column(db.String(1000), nullable=True) - source_smb_delimiter = db.Column(db.String(10), nullable=True) - source_smb_ignore_delimiter = db.Column(db.Integer, nullable=True) - source_smb_id = db.Column( + source_smb_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + source_smb_delimiter: Mapped[Optional[str]] = mapped_column(db.String(10), nullable=True) + source_smb_ignore_delimiter: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + source_smb_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSmb.id), nullable=True, index=True ) # source ftp sql file - source_ftp_file = db.Column(db.String(1000), nullable=True) - source_ftp_delimiter = db.Column(db.String(10), nullable=True) - source_ftp_ignore_delimiter = db.Column(db.Integer, nullable=True) - source_ftp_id = db.Column( + source_ftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + source_ftp_delimiter: Mapped[Optional[str]] = mapped_column(db.String(10), nullable=True) + source_ftp_ignore_delimiter: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + source_ftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionFtp.id), nullable=True, index=True ) # source sftp sql file - source_sftp_file = db.Column(db.String(1000), nullable=True) - source_sftp_delimiter = db.Column(db.String(10), nullable=True) - source_sftp_ignore_delimiter = db.Column(db.Integer, nullable=True) - source_sftp_id = db.Column( + source_sftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + source_sftp_delimiter: Mapped[Optional[str]] = mapped_column(db.String(10), nullable=True) + source_sftp_ignore_delimiter: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + source_sftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSftp.id), nullable=True, index=True ) # source database - source_database_id = db.Column( + source_database_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionDatabase.id), nullable=True, index=True ) - source_ssh_id = db.Column( + source_ssh_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSsh.id), nullable=True, index=True ) """ processing script source """ - processing_type_id = db.Column( + processing_type_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskProcessingType.id), nullable=True, index=True ) - processing_smb_id = db.Column( + processing_smb_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSmb.id), nullable=True, index=True ) - processing_smb_file = db.Column(db.String(1000), nullable=True) + processing_smb_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - processing_sftp_id = db.Column( + processing_sftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSftp.id), nullable=True, index=True ) - processing_sftp_file = db.Column(db.String(1000), nullable=True) + processing_sftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - processing_ftp_id = db.Column( + processing_ftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionFtp.id), nullable=True, index=True ) - processing_ftp_file = db.Column(db.String(1000), nullable=True) + processing_ftp_file: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) - processing_code = db.Column(db.String(8000), nullable=True) - processing_url = db.Column(db.String(1000), nullable=True) - processing_git = db.Column(db.String(1000), nullable=True) - processing_devops = db.Column(db.String(1000), nullable=True) - processing_command = db.Column(db.String(1000), nullable=True) + processing_code: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + processing_url: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + processing_git: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + processing_devops: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + processing_command: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) """ destination """ # destination file - destination_file_name = db.Column(db.String(1000), nullable=True) - destination_file_delimiter = db.Column(db.String(10), nullable=True) - destination_ignore_delimiter = db.Column(db.Integer, nullable=True) - destination_file_line_terminator = db.Column(db.String(10), nullable=True) + destination_file_name: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + destination_file_delimiter: Mapped[Optional[str]] = mapped_column(db.String(10), nullable=True) + destination_ignore_delimiter: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + destination_file_line_terminator: Mapped[Optional[str]] = mapped_column( + db.String(10), nullable=True + ) # destination zip archive - destination_create_zip = db.Column(db.Integer, nullable=True) - destination_zip_name = db.Column(db.String(1000), nullable=True) + destination_create_zip: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + destination_zip_name: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) # csv/txt/other - destination_file_type_id = db.Column( + destination_file_type_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskDestinationFileType.id), nullable=True, index=True ) # save to sftp server - destination_sftp = db.Column(db.Integer, nullable=True, index=True) - destination_sftp_overwrite = db.Column(db.Integer, nullable=True) - destination_sftp_id = db.Column( + destination_sftp: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + destination_sftp_overwrite: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + destination_sftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSftp.id), nullable=True, index=True ) - destination_sftp_dont_send_empty_file = db.Column(db.Integer, nullable=True) + destination_sftp_dont_send_empty_file: Mapped[Optional[int]] = mapped_column( + db.Integer, nullable=True + ) # save to ftp server - destination_ftp = db.Column(db.Integer, nullable=True, index=True) - destination_ftp_overwrite = db.Column(db.Integer, nullable=True) - destination_ftp_id = db.Column( + destination_ftp: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + destination_ftp_overwrite: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + destination_ftp_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionFtp.id), nullable=True, index=True ) - destination_ftp_dont_send_empty_file = db.Column(db.Integer, nullable=True) + destination_ftp_dont_send_empty_file: Mapped[Optional[int]] = mapped_column( + db.Integer, nullable=True + ) # save to smb server - destination_smb = db.Column(db.Integer, nullable=True, index=True) - destination_smb_overwrite = db.Column(db.Integer, nullable=True) - destination_smb_id = db.Column( + destination_smb: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + destination_smb_overwrite: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + destination_smb_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionSmb.id), nullable=True, index=True ) - destination_smb_dont_send_empty_file = db.Column(db.Integer, nullable=True) + destination_smb_dont_send_empty_file: Mapped[Optional[int]] = mapped_column( + db.Integer, nullable=True + ) - file_gpg = db.Column(db.Integer, nullable=True, index=True) - file_gpg_id = db.Column( + file_gpg: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + file_gpg_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(ConnectionGpg.id), nullable=True, index=True ) - destination_quote_level_id = db.Column( + destination_quote_level_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(QuoteLevel.id), nullable=True, index=True ) """ email """ # completion email - email_completion = db.Column(db.Integer, nullable=True, index=True) - email_completion_log = db.Column(db.Integer, nullable=True) - email_completion_file = db.Column(db.Integer, nullable=True) - email_completion_file_embed = db.Column(db.Integer, nullable=True) - email_completion_recipients = db.Column(db.String(1000), nullable=True) - email_completion_subject = db.Column(db.String(8000), nullable=True) - email_completion_message = db.Column(db.String(8000), nullable=True) - email_completion_dont_send_empty_file = db.Column(db.Integer, nullable=True) + email_completion: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + email_completion_log: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + email_completion_file: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + email_completion_file_embed: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True) + email_completion_recipients: Mapped[Optional[str]] = mapped_column( + db.String(1000), nullable=True + ) + email_completion_subject: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + email_completion_message: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + email_completion_dont_send_empty_file: Mapped[Optional[int]] = mapped_column( + db.Integer, nullable=True + ) # error email - email_error = db.Column(db.Integer, nullable=True, index=True) - email_error_recipients = db.Column(db.String(1000), nullable=True) - email_error_subject = db.Column(db.String(8000), nullable=True) - email_error_message = db.Column(db.String(8000), nullable=True) + email_error: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) + email_error_recipients: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + email_error_subject: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + email_error_message: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) # rerun on fail - max_retries = db.Column(db.Integer, nullable=True, index=True) + max_retries: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) - est_duration = db.Column(db.Integer, nullable=True, index=True) + est_duration: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) # tasklog link - task = db.relationship( - "TaskLog", + task: Mapped[List["TaskLog"]] = relationship( backref="task", lazy=True, cascade="all, delete, delete-orphan", @@ -1000,8 +780,7 @@ class Task(db.Model): ) # taskparams link - params = db.relationship( - "TaskParam", + params: Mapped[List["TaskParam"]] = relationship( backref="task", lazy=True, cascade="all, delete, delete-orphan", @@ -1009,8 +788,7 @@ class Task(db.Model): ) # taskfiles link - files = db.relationship( - "TaskFile", + files: Mapped[List["TaskFile"]] = relationship( backref="task", lazy=True, cascade="all, delete, delete-orphan", @@ -1028,27 +806,22 @@ class TaskLog(db.Model): # pylint: disable=too-many-instance-attributes __tablename__ = "task_log" - id: Optional[int] = None - task_id: Optional[int] = None - status_id: Optional[int] = None - job_id: Optional[str] = None - message: Optional[str] = None - error: Optional[int] = 0 - status_date: Optional[datetime.datetime] = None - - job_id = db.Column(db.String(1000), nullable=True, index=True) - id = db.Column(db.Integer, primary_key=True, index=True) - task_id = db.Column(db.Integer, db.ForeignKey(Task.id), nullable=True, index=True) - status_id = db.Column( + + job_id: Mapped[Optional[int]] = mapped_column(db.String(1000), nullable=True, index=True) + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + task_id: Mapped[Optional[int]] = mapped_column( + db.Integer, db.ForeignKey(Task.id), nullable=True, index=True + ) + status_id: Mapped[Optional[int]] = mapped_column( db.Integer, db.ForeignKey(TaskStatus.id), nullable=True, index=True ) - message = db.Column(db.Text, nullable=True) - status_date = db.Column(db.DateTime, default=datetime.datetime.now, index=True) - error = db.Column(db.Integer, nullable=True, index=True) - - __table_args__ = ( - db.Index("ix_task_log_status_date_error", "status_date", "error"), + message: Mapped[Optional[str]] = mapped_column(db.Text, nullable=True) + status_date: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, default=datetime.datetime.now, index=True ) + error: Mapped[Optional[str]] = mapped_column(db.Integer, nullable=True, index=True) + + __table_args__ = (db.Index("ix_task_log_status_date_error", "status_date", "error"),) @dataclass @@ -1056,42 +829,33 @@ class TaskFile(db.Model): """Table containing paths to task backup files.""" __tablename__ = "task_file" - id: Optional[int] = None - name: Optional[str] = None - task_id: Optional[int] = None - job_id: Optional[str] = None - size: Optional[str] = None - file_hash: Optional[str] = None - path: Optional[str] = None - created: Optional[datetime.datetime] = None - id = db.Column(db.Integer, primary_key=True, index=True) - name = db.Column(db.String(1000), nullable=True, index=True) - task_id = db.Column(db.Integer, db.ForeignKey(Task.id), nullable=True, index=True) - job_id = db.Column(db.String(1000), nullable=True, index=True) - size = db.Column(db.String(200), nullable=True, index=True) - path = db.Column(db.String(1000), nullable=True, index=True) - file_hash = db.Column(db.String(1000), nullable=True) - created = db.Column(db.DateTime, default=datetime.datetime.now, index=True) - - __table_args__ = ( - db.Index("ix_task_file_id_task_id_job_id", "id", "task_id", "job_id"), + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + name: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True, index=True) + task_id: Mapped[Optional[int]] = mapped_column( + db.Integer, db.ForeignKey(Task.id), nullable=True, index=True + ) + job_id: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True, index=True) + size: Mapped[Optional[str]] = mapped_column(db.String(200), nullable=True, index=True) + path: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True, index=True) + file_hash: Mapped[Optional[str]] = mapped_column(db.String(1000), nullable=True) + created: Mapped[Optional[datetime.datetime]] = mapped_column( + db.DateTime, default=datetime.datetime.now, index=True ) + __table_args__ = (db.Index("ix_task_file_id_task_id_job_id", "id", "task_id", "job_id"),) + @dataclass class TaskParam(db.Model): """Task parameters.""" __tablename__ = "task_param" - id: Optional[int] = None - key: Optional[str] = None - value: Optional[str] = None - sensitive: Optional[int] = None - task_id: Optional[int] = None - - id = db.Column(db.Integer, primary_key=True, index=True) - key = db.Column(db.String(500), nullable=True) - value = db.Column(db.String(8000), nullable=True) - task_id = db.Column(db.Integer, db.ForeignKey(Task.id), nullable=True, index=True) - sensitive = db.Column(db.Integer, nullable=True, index=True) + + id: Mapped[int] = mapped_column(db.Integer, primary_key=True, index=True) + key: Mapped[Optional[str]] = mapped_column(db.String(500), nullable=True) + value: Mapped[Optional[str]] = mapped_column(db.String(8000), nullable=True) + task_id: Mapped[Optional[int]] = mapped_column( + db.Integer, db.ForeignKey(Task.id), nullable=True, index=True + ) + sensitive: Mapped[Optional[int]] = mapped_column(db.Integer, nullable=True, index=True) diff --git a/web/seed.py b/web/seed.py index f63b57cf..91bed61b 100644 --- a/web/seed.py +++ b/web/seed.py @@ -14,6 +14,7 @@ flask seed_demo """ + # pylint: disable=C0301 import sys diff --git a/web/static/assets/base.scss b/web/static/assets/base.scss index 15e88861..addd177f 100644 --- a/web/static/assets/base.scss +++ b/web/static/assets/base.scss @@ -1,5 +1,42 @@ +@use 'sass:math'; +@use 'sass:meta'; @use '../../../node_modules/@fontsource/inter/scss/mixins' as Inter; @use '../../../node_modules/@fontsource/rasa/scss/mixins' as Rasa; +@use '../../../node_modules/bulma/sass/utilities' + with( + $family-primary: + 'Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Lucida Sans Unicode, Lucida Grande, Arial, sans-serif', + $cssvars-prefix: '' + ); +@use '../../../node_modules/bulma/sass/elements' with ( + $title-family: 'Rasa, Georgia, Times New Roman, serif' +); +@forward '../../../node_modules/bulma/sass/base'; +@use '../../../node_modules/bulma/sass/components' with ( + $breadcrumb-item-active-color: #363636 +); + +@forward '../../../node_modules/bulma/sass/layout'; +@forward '../../../node_modules/bulma/sass/form'; +@forward '../../../node_modules/bulma/sass/grid'; +@forward '../../../node_modules/bulma/sass/helpers'; + +// Import the themes so that all CSS variables have a value +@use '../../../node_modules/bulma/sass/themes'; + +@forward 'bulma-switch'; +@forward 'bulma-tooltip'; +@forward 'bulma-checkradio'; +/* purgecss start ignore */ +@forward '../fonts/fontawesome/stylesheet'; +@forward '../lib/codemirror/codemirror'; +@forward '../lib/codemirror/ttcn'; +@forward '../lib/codemirror/simplescrollbars'; +@forward '../lib/scroll/scroll'; +@forward '../lib/prism/prism'; +@forward '../lib/table/table'; +@forward '../lib/prism/prism_line_numbers'; +@forward '../lib/flatpickr/flatpickr'; @include Inter.faces( $family: 'Inter', @@ -23,41 +60,6 @@ $display: swap ); -$title-family: 'Rasa', 'Georgia', 'Times New Roman', serif; - -$family-sans-serif: - 'Inter', - -apple-system, - 'BlinkMacSystemFont', - 'Segoe UI', - 'Roboto', - 'Helvetica Neue', - 'Lucida Sans Unicode', - 'Lucida Grande', - 'Arial', - sans-serif, - 'Apple Color Emoji', - 'Segoe UI Emoji', - 'Segoe UI Symbol'; - -@import '../../../node_modules/bulma-checkradio/src/sass'; -@import '../../../node_modules/bulma/bulma'; - -@import '../../../node_modules/bulma-switch/src/sass'; -@import '../../../node_modules/bulma-tooltip/src/sass'; - -/* purgecss start ignore */ -@import '../fonts/fontawesome/stylesheet'; -@import '../lib/codemirror/codemirror'; -@import '../lib/codemirror/ttcn'; -@import '../lib/codemirror/simplescrollbars'; -@import '../lib/scroll/scroll'; -@import '../lib/prism/prism'; -@import '../lib/table/table'; -@import '../lib/prism/prism_line_numbers'; -@import '../lib/flatpickr/flatpickr'; -@import '../lib/table/table'; - .column { min-width: 0px; } @@ -79,25 +81,25 @@ $family-sans-serif: } a.navbar-item { &:hover { - color: $grey-darker; + color: utilities.$grey-darker; } } .has-dropdown { .navbar-link { &:hover { - color: $grey-darker; + color: utilities.$grey-darker; } } } } -@media screen and (min-width: $desktop) { +@media screen and (min-width: utilities.$desktop) { .atlas-navbar .navbar-start { padding-top: 0 !important; } } -@media screen and (min-width: $desktop) { +@media screen and (min-width: utilities.$desktop) { .hide-desktop { display: none !important; } @@ -116,13 +118,13 @@ $family-sans-serif: min-width: max(50vw, 100%); max-width: 800px; display: none; - border-radius: $radius; + border-radius: utilities.$radius; z-index: 999999; max-height: calc(100vh - 145px); overflow-y: auto; } -@media screen and (min-width: $desktop) { +@media screen and (min-width: utilities.$desktop) { #search-results { min-width: max(30vw, 100%); } @@ -135,8 +137,8 @@ $family-sans-serif: #search-results:active, #search-results.search-focus { display: block; - box-shadow: $shadow; - border: 1px solid $border; + //box-shadow: utilities.$shadow; + border: 1px solid utilities.$border; } #search-results .panel-block:first-of-type { @@ -163,8 +165,8 @@ $family-sans-serif: } #search-results em { - background-color: $info-light; - color: $info; + background-color: rgb(239, 245, 251); + color: rgb(62, 142, 208); } /*** tabs ***/ @@ -279,7 +281,7 @@ input.transparent { content: attr(data-attr); position: absolute; bottom: -30px; - background: $white; + background: utilities.$white; right: 0; left: 0; } @@ -287,7 +289,7 @@ input.transparent { .em-ScaleBar { height: 1px; width: 100%; - background: $grey-light; + background: utilities.$grey-light; position: relative; margin-bottom: 50px; &::before { @@ -295,9 +297,9 @@ input.transparent { position: absolute; top: 50%; transform: translateY(-50%); - background: $white; + background: utilities.$white; padding-right: 10px; - color: $grey-dark; + color: utilities.$grey-dark; } &:last-of-type { background: transparent; diff --git a/web/static/assets/bulma-checkradio.sass b/web/static/assets/bulma-checkradio.sass new file mode 100644 index 00000000..10a1c2ea --- /dev/null +++ b/web/static/assets/bulma-checkradio.sass @@ -0,0 +1,370 @@ +@use "sass:math" +@use "../../../node_modules/bulma/sass/utilities" as ut + + +$checkbox-radius: ut.$radius !default +$checkbox-border: .1rem solid ut.$grey-lighter !default +$checkbox-block-background: ut.$white-ter !default +$checkbox-checked-width: .1rem !default +$checkradio-focus: 1px dotted ut.$grey-light !default +$checkradio-top-offset: 0rem !default + +=checkbox-size($size) + $newSize: $size * 1.5 + $height: math.div($newSize, 2.5) + $width: math.div($newSize, 4) + + + label + font-size: $size + padding-left: $size * 2 + &::before, + &:before + width: $newSize + height: $newSize + &::after, + &:after + width: $width + height: $height + top: ( ( math.div($newSize, 2) ) - ( math.div($height, 2) ) ) * 0.9 + left: $height + + &.is-block + + label + &::before, + &:before + width: 1.25 * $size + height: 1.25 * $size + left: .175rem + top: .175rem + &::after, + &:after + top: .2rem + $size * 0.125 + left: .2rem + $size * 0.45 + + &.is-rtl + + label + padding-left: 0 + padding-right: $size * 2 + &::after, + &:after + left: auto + right: $height + +// Use a mixin to define all ratios in the same spot +=radio-size($size) + $newSize: $size * 1.5 + $height: $newSize + $width: $newSize + + + label + font-size: $size + line-height: $newSize + padding-left: $size * 2 + &::before, + &:before, + &::after, + &:after + width: $width + height: $height + &.is-rtl + + label + padding-right: $size * 2 + +.is-checkradio[type="radio"], +.is-checkradio[type="checkbox"] + outline: 0 + user-select: none + display: none + position: absolute + opacity: 0 + + + label + position: relative + display: initial + cursor: pointer + vertical-align: middle + margin: .5em + padding: .2rem .5rem .2rem 0 + border-radius: $checkbox-radius + &:first-of-type + margin-left: 0 + + &:hover + &::before, + &:before + animation-duration: 0.4s + animation-fill-mode: both + animation-name: hover-color + + &::before, + &:before + position: absolute + left: 0 + top: $checkradio-top-offset + content: '' + border: $checkbox-border + + &::after, + &:after + position: absolute + display: none + content: '' + top: $checkradio-top-offset + + &.is-rtl + + label + margin-right: 0rem + margin-left: 0.5rem + &::before, + &:before + left: auto + right: 0 + + &:focus + + label + &::before, + &:before + outline: $checkradio-focus + + &:hover:not([disabled]) + + label + &::before, + &:before + border-color: ut.$primary !important + + &:checked + + label + &::before, + &:before + border: $checkbox-border + &[disabled] + cursor: not-allowed + + label + opacity: 0.5 + + label + &::before, + &:before + animation-name: none + &::after, + &:after + display: inline-block + + &[disabled] + cursor: not-allowed + + label + opacity: 0.5 + cursor: not-allowed + &:hover, + &:before, + &::before, + &::after, + &:after + cursor: not-allowed + + &:hover + cursor: not-allowed + &::before, + &:before + animation-name: none + + &::before, + &:before + cursor: not-allowed + + &::after, + &:after + cursor: not-allowed + + &.has-no-border + + label + &::before, + &:before + border: none !important + + &.is-block + display: none !important + + label + width: 100% !important + background: $checkbox-block-background + color: findColorInvert( $checkbox-block-background ) + padding-right: .75em + &:hover:not([disabled]) + + label + background: darken($checkbox-block-background, 5%) + +.is-checkradio[type="checkbox"] + + label + &::before, + &:before + border-radius: $checkbox-radius + + &::after, + &:after + box-sizing: border-box + transform: translateY($checkradio-top-offset) rotate(45deg) + border-width: $checkbox-checked-width + border-style: solid + border-color: ut.$primary + border-top: 0 + border-left: 0 + + &.is-circle + + label + &::before, + &:before + border-radius: 50% + + +checkbox-size(ut.$size-normal) + &.is-small + +checkbox-size(ut.$size-small) + &.is-medium + +checkbox-size(ut.$size-medium) + &.is-large + +checkbox-size(ut.$size-large) + + + @each $name, $pair in ut.$colors + @if length($name) > 1 + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + &.has-background-color + + label + &::before, + &:before + border-color: transparent !important + background-color: $color !important + &:hover:not([disabled]) + + label + &::before, + &:before + border-color: $color !important + &:checked + + label + &::after, + &:after + border-color: $color !important + &.has-background-color + + label + &::before, + &:before + border-color: transparent !important + background-color: $color !important + &::after, + &:after + border-color: $color-invert !important + background-color: $color !important + &.is-block + &:hover:not([disabled]) + + label + &::after, + &:after, + &::before, + &:before + border-color: $color !important + &:checked + + label + color: $color-invert + border-color: $color !important + background: $color + &::after, + &:after + border-color: $color-invert !important + &:hover:not([disabled]) + + label + background: darken($color, 5%) + &::after, + &:after, + &::before, + &:before + border-color: darken($color-invert, 5%) !important + + &:indeterminate + + label + &::after, + &:after + display: inline-block + transform: rotate(90deg) + border-bottom: none + @each $name, $pair in ut.$colors + @if length($name) > 1 + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + + label + &::after, + &:after + border-color: $color + +.is-checkradio[type="radio"] + + label + &::before, + &:before + border-radius: 50% + &::after, + &:after + border-radius: 50% + background: ut.$primary + left: 0 + transform: scale(0.5) + + &:checked + &.has-background-color + + label + &::before, + &:before + border-color: ut.$text !important + background-color: ut.$text !important + &::after, + &:after + border-color: ut.$text !important + background-color: ut.$text !important + + &.is-rtl + + label + padding-left: 0 + &::after, + &:after + left: auto + right: 0 + + +radio-size(ut.$size-normal) + &.is-small + +radio-size(ut.$size-small) + &.is-medium + +radio-size(ut.$size-medium) + &.is-large + +radio-size(ut.$size-large) + + @each $name, $pair in ut.$colors + @if length($name) > 1 + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.is-#{$name} + &.has-background-color + + label + &::before, + &:before + border-color: $color !important + background-color: $color !important + &:hover:not([disabled]) + + label + &::before, + &:before + border-color: $color !important + &:checked + + label + &::after, + &:after + border-color: $color !important + background-color: $color !important + &.has-background-color + + label + &::before, + &:before + border-color: $color !important + background-color: $color !important + &::after, + &:after + border-color: $color-invert !important + background-color: $color-invert !important diff --git a/web/static/assets/bulma-switch.sass b/web/static/assets/bulma-switch.sass new file mode 100644 index 00000000..9a3b2e75 --- /dev/null +++ b/web/static/assets/bulma-switch.sass @@ -0,0 +1,247 @@ +@use "sass:list" +@use "../../../node_modules/bulma/sass/utilities/controls" +@use "../../../node_modules/bulma/sass/utilities/derived-variables" +@use "../../../node_modules/bulma/sass/utilities/initial-variables" + +$switch-background: initial-variables.$grey-light !default +$switch-border: .1rem solid transparent !default +$switch-background-active: derived-variables.$primary !default +$switch-radius: initial-variables.$radius !default +$switch-paddle-background: initial-variables.$white !default +$switch-paddle-background-active: derived-variables.$primary !default +$switch-paddle-offset: 0.25rem !default +$switch-paddle-transition: all 0.25s ease-out !default +$switch-focus: 1px dotted initial-variables.$grey-light !default + +=switch-size($size) + $switch-height: $size * 1.5 + $switch-width: $switch-height * 2 + $paddle-height: $switch-height - ($switch-paddle-offset * 2) + $paddle-width: $switch-height - ($switch-paddle-offset * 2) + $paddle-active-offest: $switch-width - $paddle-width - ($switch-paddle-offset * 1.5) + + + label + position: relative + display: inline-flex + align-items: center + justify-content: flex-start + font-size: $size + height: controls.$control-height + line-height: controls.$control-line-height + padding-left: $switch-width + .5 + padding-top: .2rem + cursor: pointer + + &::before, + &:before + position: absolute + display: block + top: calc( 50% - #{$switch-height} * 0.5 ) + left: 0 + width: $switch-width + height: $switch-height + border: $switch-border + border-radius: $switch-radius + background: $switch-background + content: '' + + &::after, + &:after + display: block + position: absolute + top: calc( 50% - #{$paddle-height} * 0.5 ) + left: $switch-paddle-offset + width: $paddle-width + height: $paddle-height + transform: translate3d(0, 0, 0) + border-radius: $switch-radius + background: $switch-paddle-background + transition: $switch-paddle-transition + content: '' + + .switch-active, .switch-inactive + font-size: $size - 0.1 + z-index: 1 + margin-top: -4px + &.has-text-inside + .switch-inactive + margin-left: -($paddle-active-offest + 0.3) + .switch-active + margin-left: -($paddle-active-offest * 2) + + + &.is-rtl + + label + padding-left: 0 + padding-right: $switch-width + .5 + &::before, + &:before + left: auto + right: 0 + &::after, + &:after + left: auto + right: $paddle-active-offest + + &:checked + + label + &::before, + &:before + background: $switch-background-active + &::after + left: $paddle-active-offest + &.is-rtl + + label + &::after, + &:after + left: auto + right: $switch-paddle-offset + + &.is-outlined + + label + &::before, + &:before + background-color: transparent + border-color: $switch-background + &::after, + &:after + background: $switch-background + &:checked + + label + &::before, + &:before + background-color: transparent + border-color: $switch-background-active + &::after, + &:after + background: $switch-paddle-background-active + + &.is-thin + + label + &::before, + &:before + top: divide($switch-height, 2.75) + height: divide($switch-height, 4) + &::after, + &:after + box-shadow: 0px 0px 3px initial-variables.$grey + + &.is-rounded + + label + &::before, + &:before + border-radius: initial-variables.$radius-large * 4 + &::after, + &:after + border-radius: 50% + + +.switch[type="checkbox"] + outline: 0 + user-select: none + display: inline-block + position: absolute + opacity: 0 + + &:focus + + label + &::before, + &:before, + &::after, + &:after + outline: $switch-focus + + &[disabled] + cursor: not-allowed + + label + opacity: 0.5 + &::before, + &:before + opacity: 0.5 + &::after, + &:after + opacity: 0.5 + &:hover + cursor: not-allowed + + +switch-size(derived-variables.$size-normal) + &.is-small + +switch-size(derived-variables.$size-small) + &.is-medium + +switch-size(derived-variables.$size-medium) + &.is-large + +switch-size(derived-variables.$size-large) + + @each $name, $pair in derived-variables.$colors + @if length($name) > 1 + $color: list.nth($pair, 1) + $color-invert: list.nth($pair, 2) + &.is-#{$name} + + label + .switch-active + display: none + .switch-inactive + display: inline-block + &:checked + + label + &::before, + &:before + background: $color + .switch-active + display: inline-block + .switch-inactive + display: none + &.is-outlined + &:checked + + label + &::before, + &:before + background-color: transparent + border-color: $color !important + &::after, + &:after + background: $color + &.is-thin + &.is-outlined + + label + &::after, + &:after + box-shadow: none + &.is-unchecked-#{$name} + + label + &::before, + &:before + background: $color + &.is-outlined + + label + &::before, + &:before + background-color: transparent + border-color: $color !important + &::after, + &:after + background: $color + +.field-body + .switch[type="checkbox"] + + label + margin-top: .375em + +@function divide($dividend, $divisor, $precision: 10) + $sign: if($dividend > 0 and $divisor > 0, 1, -1) + $dividend: abs($dividend) + $divisor: abs($divisor) + $quotient: 0 + $remainder: $dividend + @if $dividend == 0 + @return 0 + @if $divisor == 0 + @error "Cannot divide by 0" + @if $divisor == 1 + @return $dividend + @while $remainder >= $divisor + $quotient: $quotient + 1 + $remainder: $remainder - $divisor + @if $remainder > 0 and $precision > 0 + $remainder: divide($remainder * 10, $divisor, $precision - 1) * .1 + @return ($quotient + $remainder) * $sign diff --git a/web/static/assets/bulma-tooltip.sass b/web/static/assets/bulma-tooltip.sass new file mode 100644 index 00000000..36dabcff --- /dev/null +++ b/web/static/assets/bulma-tooltip.sass @@ -0,0 +1,273 @@ +@use '../../../node_modules/bulma/sass/utilities/initial-variables' as iv +@use '../../../node_modules/bulma/sass/utilities/derived-variables' as dv +@use '../../../node_modules/bulma/sass/utilities/mixins' as * +$tooltip-arrow-size: 6px !default +$tooltip-background-color: iv.$grey-dark !default +$tooltip-background-opacity: 0.9 !default +$tooltip-color: iv.$white !default +$tooltip-font-family: dv.$family-primary !default +$tooltip-font-size: iv.$size-7 +$tooltip-max-width: 15rem !default +$tooltip-padding: .5rem 1rem !default +$tooltip-radius: iv.$radius-small !default +$tooltip-z-index: 1020 !default + +=tooltip-hover + &:focus::before, + &:focus::after, + &:hover::before, + &:hover::after, + &.has-tooltip-active::before, + &.has-tooltip-active::after + @content + +=tooltip-arrow-top + &::after + top: 0 + right: auto + bottom: auto + left: 50% + margin-top: $tooltip-arrow-size * -1 + 1 + margin-right: auto + margin-bottom: auto + margin-left: $tooltip-arrow-size * -1 + 1 + border-color: rgba($tooltip-background-color, $tooltip-background-opacity) transparent transparent transparent + +=tooltip-box-top + &::before + top: 0 + right: auto + bottom: auto + left: 50% + top: 0 + margin-top: $tooltip-arrow-size * -1 + 1 + margin-bottom: auto + transform: translate(-50%, -100%) + +=tooltip-top + +tooltip-arrow-top + +tooltip-box-top + +=tooltip-arrow-bottom + &::after + top: auto + right: auto + bottom: 0 + left: 50% + margin-top: auto + margin-right: auto + margin-bottom: $tooltip-arrow-size * -1 + 1 + margin-left: $tooltip-arrow-size * -1 + 1 + border-color: transparent transparent rgba($tooltip-background-color, $tooltip-background-opacity) transparent + +=tooltip-box-bottom + &::before + top: auto + right: auto + bottom: 0 + left: 50% + margin-top: auto + margin-bottom: $tooltip-arrow-size * -1 + 1 + transform: translate(-50%, 100%) + +=tooltip-bottom + +tooltip-arrow-bottom + +tooltip-box-bottom + + +=tooltip-arrow-left + &::after + top: auto + right: auto + bottom: 50% + left: 0 + margin-top: auto + margin-right: auto + margin-bottom: $tooltip-arrow-size * -1 + margin-left: $tooltip-arrow-size * -2 + 1 + border-color: transparent transparent transparent rgba($tooltip-background-color, $tooltip-background-opacity) + +=tooltip-box-left + &::before + top: auto + right: auto + bottom: 50% + left: $tooltip-arrow-size * -2 + 1 + transform: translate(-100%, 50%) + +=tooltip-left + +tooltip-arrow-left + +tooltip-box-left + + +=tooltip-arrow-right + &::after + top: auto + right: 0 + bottom: 50% + left: auto + margin-top: auto + margin-right: $tooltip-arrow-size * -2 + 1 + margin-bottom: $tooltip-arrow-size * -1 + margin-left: auto + border-color: transparent rgba($tooltip-background-color, $tooltip-background-opacity) transparent transparent + +=tooltip-box-right + &::before + top: auto + right: $tooltip-arrow-size * -2 + 1 + bottom: 50% + left: auto + margin-top: auto + transform: translate(100%, 50%) + +=tooltip-right + +tooltip-arrow-right + +tooltip-box-right + + +=tooltip-direction($direction) + @if $direction == 'top' + @include tooltip-top + @else if $direction == 'right' + @include tooltip-right + @else if $direction == 'bottom' + @include tooltip-bottom + @else if $direction == 'left' + @include tooltip-left + +=tooltip-fade + &::before, + &::after + transition: opacity .3s linear, visibility .3s linear + +=tooltip-arrow + &::after + content: '' + border-style: solid + border-width: $tooltip-arrow-size + border-color: rgba($tooltip-background-color, $tooltip-background-opacity) transparent transparent transparent + margin-bottom: $tooltip-arrow-size * -1 + 1 + +tooltip-arrow-top + +=tooltip-box + &::before + background: rgba($tooltip-background-color, $tooltip-background-opacity) + border-radius: $tooltip-radius + content: attr(data-tooltip) + padding: $tooltip-padding + text-overflow: ellipsis + white-space: pre + +tooltip-box-top + +=tooltip-multiline + &::before + height: auto + width: $tooltip-max-width + max-width: $tooltip-max-width + text-overflow: clip + white-space: normal + word-break: keep-all + +[data-tooltip] + &:not(.is-loading), + &:not(.is-disabled), + &:not([disabled]) + cursor: pointer + overflow: visible + position: relative + + &::before, + &::after + box-sizing: border-box + color: $tooltip-color + display: inline-block + font-family: $tooltip-font-family + font-size: $tooltip-font-size + hyphens: auto + opacity: 0 + overflow: hidden + pointer-events: none + position: absolute + visibility: hidden + z-index: $tooltip-z-index + + +tooltip-arrow + +tooltip-box + + &.has-tooltip-bottom + +tooltip-direction('bottom') + + &.has-tooltip-left + +tooltip-direction('left') + + &.has-tooltip-right + +tooltip-direction('right') + + &.has-tooltip-multiline + +tooltip-multiline + + @each $name, $pair in dv.$colors + @if length($name) > 1 + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + &.has-tooltip-#{$name} + &.has-tooltip-bottom + &::after + border-color: transparent transparent rgba($color, $tooltip-background-opacity) transparent + &.has-tooltip-left + &::after + border-color: transparent transparent transparent rgba($color, $tooltip-background-opacity) + &.has-tooltip-right + &::after + border-color: transparent rgba($color, $tooltip-background-opacity) transparent transparent + &:not(.has-tooltip-bottom), + &:not(.has-tooltip-left), + &:not(.has-tooltip-right) + &::after + border-color: rgba($color, $tooltip-background-opacity) transparent transparent transparent + &:before + background-color: rgba($color, $tooltip-background-opacity) + color: $color-invert + + +tooltip-hover + opacity: 1 + visibility: visible + + &.has-tooltip-fade + +tooltip-fade + +@each $direction in top, right, bottom, left + +mobile + .has-tooltip-#{$direction}-mobile + @include tooltip-direction(#{$direction}) + +tablet + .has-tooltip-#{$direction}-tablet + @include tooltip-direction(#{$direction}) + +tablet-only + .has-tooltip-#{$direction}-tablet-only + @include tooltip-direction(#{$direction}) + +touch + .has-tooltip-#{$direction}-touch + @include tooltip-direction(#{$direction}) + +desktop + .has-tooltip-#{$direction}-desktop + @include tooltip-direction(#{$direction}) + +desktop-only + .has-tooltip-#{$direction}-desktop-only + @include tooltip-direction(#{$direction}) + +until-widescreen + .has-tooltip-#{$direction}-until-widescreen + @include tooltip-direction(#{$direction}) + +widescreen + .has-tooltip-#{$direction}-widescreen + @include tooltip-direction(#{$direction}) + +widescreen-only + .has-tooltip-#{$direction}-widescreen-only + @include tooltip-direction(#{$direction}) + +until-fullhd + .has-tooltip-#{$direction}-until-fullhd + @include tooltip-direction(#{$direction}) + +fullhd + .has-tooltip-#{$direction}-fullhd + @include tooltip-direction(#{$direction}) diff --git a/web/static/css/base.css b/web/static/css/base.css index 6dce241b..c738bc42 100644 --- a/web/static/css/base.css +++ b/web/static/css/base.css @@ -1,4 +1,2 @@ -@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd;src:url(/static/fonts/inter/files/inter-latin-300-normal.woff2) format("woff2"),url(/static/fonts/inter/files/inter-latin-300-normal.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd;src:url(/static/fonts/inter/files/inter-latin-400-normal.woff2) format("woff2"),url(/static/fonts/inter/files/inter-latin-400-normal.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd;src:url(/static/fonts/inter/files/inter-latin-500-normal.woff2) format("woff2"),url(/static/fonts/inter/files/inter-latin-500-normal.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd;src:url(/static/fonts/inter/files/inter-latin-600-normal.woff2) format("woff2"),url(/static/fonts/inter/files/inter-latin-600-normal.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd;src:url(/static/fonts/inter/files/inter-latin-700-normal.woff2) format("woff2"),url(/static/fonts/inter/files/inter-latin-700-normal.woff) format("woff")}@font-face{font-family:Rasa;font-style:normal;font-display:swap;font-weight:600;unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd;src:url(/static/fonts/rasa/files/rasa-latin-600-normal.woff2) format("woff2"),url(/static/fonts/rasa/files/rasa-latin-600-normal.woff) format("woff")}.is-checkradio[type=checkbox]{outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:none;position:absolute;opacity:0}.is-checkradio[type=checkbox]+label{position:relative;display:initial;cursor:pointer;vertical-align:middle;margin:.5em;padding:.2rem .5rem .2rem 0;border-radius:4px}.is-checkradio[type=checkbox]+label:first-of-type{margin-left:0}.is-checkradio[type=checkbox]+label:hover:before{animation-duration:.4s;animation-fill-mode:both;animation-name:hover-color}.is-checkradio[type=checkbox]+label:before{position:absolute;left:0;top:0;content:"";border:.1rem solid #dbdbdb}.is-checkradio[type=checkbox]+label:after{position:absolute;display:none;content:"";top:0}.is-checkradio[type=checkbox]:focus+label:before{outline:1px dotted #b5b5b5}.is-checkradio[type=checkbox]:hover:not([disabled])+label:before{border-color:#00d1b2!important}.is-checkradio[type=checkbox]:checked+label:before{border:.1rem solid #dbdbdb}.is-checkradio[type=checkbox]:checked[disabled]{cursor:not-allowed}.is-checkradio[type=checkbox]:checked[disabled]+label{opacity:.5}.is-checkradio[type=checkbox]:checked+label:before{animation-name:none}.is-checkradio[type=checkbox]:checked+label:after{display:inline-block}.is-checkradio[type=checkbox][disabled]{cursor:not-allowed}.is-checkradio[type=checkbox][disabled]+label{opacity:.5;cursor:not-allowed}.is-checkradio[type=checkbox][disabled]+label:after,.is-checkradio[type=checkbox][disabled]+label:before,.is-checkradio[type=checkbox][disabled]+label:hover,.is-checkradio[type=checkbox][disabled]:hover{cursor:not-allowed}.is-checkradio[type=checkbox][disabled]:hover:before{animation-name:none}.is-checkradio[type=checkbox][disabled]:after,.is-checkradio[type=checkbox][disabled]:before{cursor:not-allowed}.is-checkradio[type=checkbox].is-block{display:none!important}.is-checkradio[type=checkbox].is-block+label{width:100%!important;background:#f5f5f5;color:rgba(0,0,0,.7);padding-right:.75em}.is-checkradio[type=checkbox].is-block:hover:not([disabled])+label{background:#e8e8e8}.is-checkradio[type=checkbox]+label:before{border-radius:4px}.is-checkradio[type=checkbox]+label:after{box-sizing:border-box;transform:translateY(0) rotate(45deg);border:.1rem solid #00d1b2;border-top:0;border-left:0}.is-checkradio[type=checkbox]+label{font-size:1rem;padding-left:2rem}.is-checkradio[type=checkbox]+label:before{width:1.5rem;height:1.5rem}.is-checkradio[type=checkbox]+label:after{width:.375rem;height:.6rem;top:.405rem;left:.6rem}.is-checkradio[type=checkbox].is-block+label:before{width:1.25rem;height:1.25rem;left:.175rem;top:.175rem}.is-checkradio[type=checkbox].is-block+label:after{top:.325rem;left:.65rem}.is-checkradio[type=checkbox].is-small+label{font-size:.75rem;padding-left:1.5rem}.is-checkradio[type=checkbox].is-small+label:before{width:1.125rem;height:1.125rem}.is-checkradio[type=checkbox].is-small+label:after{width:.28125rem;height:.45rem;top:.30375rem;left:.45rem}.is-checkradio[type=checkbox].is-small.is-block+label:before{width:.9375rem;height:.9375rem;left:.175rem;top:.175rem}.is-checkradio[type=checkbox].is-small.is-block+label:after{top:.29375rem;left:.5375rem}.is-checkradio[type=checkbox].is-medium+label{font-size:1.25rem;padding-left:2.5rem}.is-checkradio[type=checkbox].is-medium+label:before{width:1.875rem;height:1.875rem}.is-checkradio[type=checkbox].is-medium+label:after{width:.46875rem;height:.75rem;top:.50625rem;left:.75rem}.is-checkradio[type=checkbox].is-medium.is-block+label:before{width:1.5625rem;height:1.5625rem;left:.175rem;top:.175rem}.is-checkradio[type=checkbox].is-medium.is-block+label:after{top:.35625rem;left:.7625rem}.is-checkradio[type=checkbox].is-large+label{font-size:1.5rem;padding-left:3rem}.is-checkradio[type=checkbox].is-large+label:before{width:2.25rem;height:2.25rem}.is-checkradio[type=checkbox].is-large+label:after{width:.5625rem;height:.9rem;top:.6075rem;left:.9rem}.is-checkradio[type=checkbox].is-large.is-block+label:before{width:1.875rem;height:1.875rem;left:.175rem;top:.175rem}.is-checkradio[type=checkbox].is-large.is-block+label:after{top:.3875rem;left:.875rem}.is-checkradio[type=checkbox].is-light.is-block:hover:not([disabled])+label:after,.is-checkradio[type=checkbox].is-light.is-block:hover:not([disabled])+label:before,.is-checkradio[type=checkbox].is-light:checked+label:after,.is-checkradio[type=checkbox].is-light:hover:not([disabled])+label:before{border-color:#f5f5f5!important}.is-checkradio[type=checkbox].is-light.is-block:checked+label{color:rgba(0,0,0,.7);border-color:#f5f5f5!important;background:#f5f5f5}.is-checkradio[type=checkbox].is-light.is-block:checked+label:after{border-color:rgba(0,0,0,.7)!important}.is-checkradio[type=checkbox].is-light.is-block:checked:hover:not([disabled])+label{background:#e8e8e8}.is-checkradio[type=checkbox].is-light.is-block:checked:hover:not([disabled])+label:after,.is-checkradio[type=checkbox].is-light.is-block:checked:hover:not([disabled])+label:before{border-color:rgba(0,0,0,.7)!important}.is-checkradio[type=checkbox].is-primary.is-block:hover:not([disabled])+label:after,.is-checkradio[type=checkbox].is-primary.is-block:hover:not([disabled])+label:before,.is-checkradio[type=checkbox].is-primary:checked+label:after,.is-checkradio[type=checkbox].is-primary:hover:not([disabled])+label:before{border-color:#00d1b2!important}.is-checkradio[type=checkbox].is-primary.is-block:checked+label{color:#fff;border-color:#00d1b2!important;background:#00d1b2}.is-checkradio[type=checkbox].is-primary.is-block:checked+label:after{border-color:#fff!important}.is-checkradio[type=checkbox].is-primary.is-block:checked:hover:not([disabled])+label{background:#00b89c}.is-checkradio[type=checkbox].is-primary.is-block:checked:hover:not([disabled])+label:after,.is-checkradio[type=checkbox].is-primary.is-block:checked:hover:not([disabled])+label:before{border-color:#f2f2f2!important}.is-checkradio[type=checkbox].is-info.is-block:hover:not([disabled])+label:after,.is-checkradio[type=checkbox].is-info.is-block:hover:not([disabled])+label:before,.is-checkradio[type=checkbox].is-info:checked+label:after,.is-checkradio[type=checkbox].is-info:hover:not([disabled])+label:before{border-color:#3e8ed0!important}.is-checkradio[type=checkbox].is-info.is-block:checked+label{color:#fff;border-color:#3e8ed0!important;background:#3e8ed0}.is-checkradio[type=checkbox].is-info.is-block:checked+label:after{border-color:#fff!important}.is-checkradio[type=checkbox].is-info.is-block:checked:hover:not([disabled])+label{background:#3082c5}.is-checkradio[type=checkbox].is-info.is-block:checked:hover:not([disabled])+label:after,.is-checkradio[type=checkbox].is-info.is-block:checked:hover:not([disabled])+label:before{border-color:#f2f2f2!important}.is-checkradio[type=checkbox].is-success.is-block:hover:not([disabled])+label:after,.is-checkradio[type=checkbox].is-success.is-block:hover:not([disabled])+label:before,.is-checkradio[type=checkbox].is-success:checked+label:after,.is-checkradio[type=checkbox].is-success:hover:not([disabled])+label:before{border-color:#48c78e!important}.is-checkradio[type=checkbox].is-success.is-block:checked+label{color:#fff;border-color:#48c78e!important;background:#48c78e}.is-checkradio[type=checkbox].is-success.is-block:checked+label:after{border-color:#fff!important}.is-checkradio[type=checkbox].is-success.is-block:checked:hover:not([disabled])+label{background:#3abb81}.is-checkradio[type=checkbox].is-success.is-block:checked:hover:not([disabled])+label:after,.is-checkradio[type=checkbox].is-success.is-block:checked:hover:not([disabled])+label:before{border-color:#f2f2f2!important}.is-checkradio[type=checkbox].is-warning.is-block:hover:not([disabled])+label:after,.is-checkradio[type=checkbox].is-warning.is-block:hover:not([disabled])+label:before,.is-checkradio[type=checkbox].is-warning:checked+label:after,.is-checkradio[type=checkbox].is-warning:hover:not([disabled])+label:before{border-color:#ffe08a!important}.is-checkradio[type=checkbox].is-warning.is-block:checked+label{color:rgba(0,0,0,.7);border-color:#ffe08a!important;background:#ffe08a}.is-checkradio[type=checkbox].is-warning.is-block:checked+label:after{border-color:rgba(0,0,0,.7)!important}.is-checkradio[type=checkbox].is-warning.is-block:checked:hover:not([disabled])+label{background:#ffd970}.is-checkradio[type=checkbox].is-warning.is-block:checked:hover:not([disabled])+label:after,.is-checkradio[type=checkbox].is-warning.is-block:checked:hover:not([disabled])+label:before{border-color:rgba(0,0,0,.7)!important}.is-checkradio[type=checkbox].is-danger.is-block:hover:not([disabled])+label:after,.is-checkradio[type=checkbox].is-danger.is-block:hover:not([disabled])+label:before,.is-checkradio[type=checkbox].is-danger:checked+label:after,.is-checkradio[type=checkbox].is-danger:hover:not([disabled])+label:before{border-color:#f14668!important}.is-checkradio[type=checkbox].is-danger.is-block:checked+label{color:#fff;border-color:#f14668!important;background:#f14668}.is-checkradio[type=checkbox].is-danger.is-block:checked+label:after{border-color:#fff!important}.is-checkradio[type=checkbox].is-danger.is-block:checked:hover:not([disabled])+label{background:#ef2e55}.is-checkradio[type=checkbox].is-danger.is-block:checked:hover:not([disabled])+label:after,.is-checkradio[type=checkbox].is-danger.is-block:checked:hover:not([disabled])+label:before{border-color:#f2f2f2!important}.is-checkradio[type=checkbox]:indeterminate+label:after{display:inline-block;transform:rotate(90deg);border-bottom:none}.is-checkradio[type=checkbox]:indeterminate.is-light+label:after{border-color:#f5f5f5}.is-checkradio[type=checkbox]:indeterminate.is-primary+label:after{border-color:#00d1b2}.is-checkradio[type=checkbox]:indeterminate.is-info+label:after{border-color:#3e8ed0}.is-checkradio[type=checkbox]:indeterminate.is-success+label:after{border-color:#48c78e}.is-checkradio[type=checkbox]:indeterminate.is-warning+label:after{border-color:#ffe08a}.is-checkradio[type=checkbox]:indeterminate.is-danger+label:after{border-color:#f14668} - -/*! bulma.io v0.9.4 | MIT License | github.com/jgthms/bulma */.button,.input,.pagination-link,.select select,.textarea{-moz-appearance:none;-webkit-appearance:none;-ms-flex-align:center;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:-ms-inline-flexbox;display:inline-flex;font-size:1rem;height:2.5em;-ms-flex-pack:start;justify-content:flex-start;line-height:1.5;padding:calc(.5em - 1px) calc(.75em - 1px);position:relative;vertical-align:top}.button:active,.button:focus,.input:active,.input:focus,.is-active.button,.is-active.input,.is-active.pagination-link,.is-active.textarea,.pagination-link:active,.pagination-link:focus,.select select.is-active,.select select:active,.select select:focus,.textarea:active,.textarea:focus{outline:none}.select select[disabled],[disabled].button,[disabled].input,[disabled].pagination-link,[disabled].textarea{cursor:not-allowed}.breadcrumb,.button,.file,.pagination-link,.tabs{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless):after,.select:not(.is-multiple):not(.is-loading):after{border:3px solid transparent;border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:.625em;margin-top:-.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:.625em}.block:not(:last-child),.box:not(:last-child),.breadcrumb:not(:last-child),.content:not(:last-child),.level:not(:last-child),.message:not(:last-child),.notification:not(:last-child),.pagination:not(:last-child),.progress:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.tabs:not(:last-child),.title:not(:last-child){margin-bottom:1.5rem}.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:hsla(0,0%,4%,.2);border:none;border-radius:9999px;cursor:pointer;pointer-events:auto;display:inline-block;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.delete:after,.delete:before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.delete:before{height:2px;width:50%}.delete:after{height:50%;width:2px}.delete:focus,.delete:hover{background-color:hsla(0,0%,4%,.3)}.delete:active{background-color:hsla(0,0%,4%,.4)}.is-small.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.loader{animation:a .5s infinite linear;border:2px solid #dbdbdb;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.modal{bottom:0;left:0;position:absolute;right:0;top:0}.navbar-burger{color:currentColor;font-family:inherit;font-size:1em} -/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */.navbar-burger,blockquote,body,dd,figure,h1,h2,h3,h4,h5,hr,html,iframe,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5{font-size:100%;font-weight:400}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:inherit}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:hidden;overflow-y:scroll;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}article,figure,footer,header,section{display:block}body,button,input,select,textarea{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Lucida Sans Unicode,Lucida Grande,Arial,sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:monospace}body{color:#4a4a4a;font-size:1em;font-weight:400;line-height:1.5}a{color:#485fc7;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{color:#da1039;font-size:.875em;font-weight:400;padding:.25em .5em}code,hr{background-color:#f5f5f5}hr{border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type=checkbox]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#363636;font-weight:700}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#4a4a4a;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:inherit}table th{color:#363636}@keyframes a{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.box{background-color:#fff;border-radius:6px;box-shadow:0 .5em 1em -.125em hsla(0,0%,4%,.1),0 0 0 1px hsla(0,0%,4%,.02);color:#4a4a4a;display:block;padding:1.25rem}a.box:focus,a.box:hover{box-shadow:0 .5em 1em -.125em hsla(0,0%,4%,.1),0 0 0 1px #485fc7}a.box:active{box-shadow:inset 0 1px 2px hsla(0,0%,4%,.2),0 0 0 1px #485fc7}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;-ms-flex-pack:center;justify-content:center;padding:calc(.5em - 1px) 1em;text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-large,.button .icon.is-medium,.button .icon.is-small{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-.5em - 1px);margin-right:.25em}.button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-.5em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-.5em - 1px);margin-right:calc(-.5em - 1px)}.button:hover{border-color:#b5b5b5;color:#363636}.button:focus{border-color:#485fc7;color:#363636}.button:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.button.is-active,.button:active{border-color:#4a4a4a;color:#363636}.button.is-light{background-color:#f5f5f5}.button.is-light,.button.is-light:hover{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light:hover{background-color:#eee}.button.is-light:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light:focus:not(:active){box-shadow:0 0 0 .125em hsla(0,0%,96%,.25)}.button.is-light.is-active,.button.is-light:active{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-light[disabled]{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none}.button.is-primary{background-color:#00d1b2;border-color:transparent;color:#fff}.button.is-primary:hover{background-color:#00c4a7}.button.is-primary:focus,.button.is-primary:hover{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active){box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.button.is-primary.is-active,.button.is-primary:active{background-color:#00b89c;border-color:transparent;color:#fff}.button.is-primary[disabled]{background-color:#00d1b2;border-color:#00d1b2;box-shadow:none}.button.is-primary.is-light{background-color:#ebfffc;color:#00947e}.button.is-primary.is-light:hover{background-color:#defffa;border-color:transparent;color:#00947e}.button.is-primary.is-light.is-active,.button.is-primary.is-light:active{background-color:#d1fff8;border-color:transparent;color:#00947e}.button.is-info{background-color:#3e8ed0;border-color:transparent;color:#fff}.button.is-info:hover{background-color:#3488ce}.button.is-info:focus,.button.is-info:hover{border-color:transparent;color:#fff}.button.is-info:focus:not(:active){box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.button.is-info.is-active,.button.is-info:active{background-color:#3082c5;border-color:transparent;color:#fff}.button.is-info[disabled]{background-color:#3e8ed0;border-color:#3e8ed0;box-shadow:none}.button.is-info.is-light{background-color:#eff5fb;color:#296fa8}.button.is-info.is-light:hover{background-color:#e4eff9;border-color:transparent;color:#296fa8}.button.is-info.is-light.is-active,.button.is-info.is-light:active{background-color:#dae9f6;border-color:transparent;color:#296fa8}.button.is-success{background-color:#48c78e;border-color:transparent;color:#fff}.button.is-success:hover{background-color:#3ec487}.button.is-success:focus,.button.is-success:hover{border-color:transparent;color:#fff}.button.is-success:focus:not(:active){box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.button.is-success.is-active,.button.is-success:active{background-color:#3abb81;border-color:transparent;color:#fff}.button.is-success[disabled]{background-color:#48c78e;border-color:#48c78e;box-shadow:none}.button.is-success.is-light{background-color:#effaf5;color:#257953}.button.is-success.is-light:hover{background-color:#e6f7ef;border-color:transparent;color:#257953}.button.is-success.is-light.is-active,.button.is-success.is-light:active{background-color:#dcf4e9;border-color:transparent;color:#257953}.button.is-warning{background-color:#ffe08a}.button.is-warning,.button.is-warning:hover{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning:hover{background-color:#ffdc7d}.button.is-warning:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.button.is-warning.is-active,.button.is-warning:active{background-color:#ffd970;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning[disabled]{background-color:#ffe08a;border-color:#ffe08a;box-shadow:none}.button.is-warning.is-light{background-color:#fffaeb;color:#946c00}.button.is-warning.is-light:hover{background-color:#fff6de;border-color:transparent;color:#946c00}.button.is-warning.is-light.is-active,.button.is-warning.is-light:active{background-color:#fff3d1;border-color:transparent;color:#946c00}.button.is-danger{background-color:#f14668;border-color:transparent;color:#fff}.button.is-danger:hover{background-color:#f03a5f}.button.is-danger:focus,.button.is-danger:hover{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active){box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.button.is-danger.is-active,.button.is-danger:active{background-color:#ef2e55;border-color:transparent;color:#fff}.button.is-danger[disabled]{background-color:#f14668;border-color:#f14668;box-shadow:none}.button.is-danger.is-light{background-color:#feecf0;color:#cc0f35}.button.is-danger.is-light:hover{background-color:#fde0e6;border-color:transparent;color:#cc0f35}.button.is-danger.is-light.is-active,.button.is-danger.is-light:active{background-color:#fcd4dc;border-color:transparent;color:#cc0f35}.button.is-small{font-size:.75rem}.button.is-small:not(.is-rounded){border-radius:2px}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled]{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:-ms-flexbox;display:flex;width:100%}.button.is-rounded{border-radius:9999px;padding-left:1.25em;padding-right:1.25em}.buttons{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.buttons .button{margin-bottom:.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:.5rem}.buttons:last-child{margin-bottom:-.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover{z-index:2}.buttons.has-addons .button.is-active,.buttons.has-addons .button:active,.buttons.has-addons .button:focus{z-index:3}.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button:focus:hover{z-index:4}.buttons.has-addons .button.is-expanded{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1}.buttons.is-centered{-ms-flex-pack:center;justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:.25rem;margin-right:.25rem}.container{-ms-flex-positive:1;flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width:1024px){.container{max-width:960px}}@media screen and (min-width:1216px){.container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width:1408px){.container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}.content li+li{margin-top:.25em}.content blockquote:not(:last-child),.content ol:not(:last-child),.content p:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child),.content ul:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5{color:#363636;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:.8em}.content h5{font-size:1.125em;margin-bottom:.8888em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:1.25em 1.5em;white-space:pre;word-wrap:normal}.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.content table th{color:#363636}.content table th:not([align]){text-align:inherit}.content table thead td,.content table thead th{border-width:0 0 2px;color:#363636}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{-ms-flex-align:center;align-items:center;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.icon-text{-ms-flex-align:start;align-items:flex-start;color:inherit;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}.icon-text .icon{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0}.icon-text .icon:not(:last-child){margin-right:.25em}.icon-text .icon:not(:first-child){margin-left:.25em}div.icon-text{display:-ms-flexbox;display:flex}.image{display:block;position:relative}.image img{display:block;height:auto;width:100%}.image img.is-rounded{border-radius:9999px}.image.is-fullwidth{width:100%}.notification{background-color:#f5f5f5;border-radius:4px;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{right:.5rem;position:absolute;top:.5rem}.notification .content,.notification .subtitle,.notification .title{color:currentColor}.notification.is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.notification.is-primary{background-color:#00d1b2;color:#fff}.notification.is-primary.is-light{background-color:#ebfffc;color:#00947e}.notification.is-info{background-color:#3e8ed0;color:#fff}.notification.is-info.is-light{background-color:#eff5fb;color:#296fa8}.notification.is-success{background-color:#48c78e;color:#fff}.notification.is-success.is-light{background-color:#effaf5;color:#257953}.notification.is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.notification.is-warning.is-light{background-color:#fffaeb;color:#946c00}.notification.is-danger{background-color:#f14668;color:#fff}.notification.is-danger.is-light{background-color:#feecf0;color:#cc0f35}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#ededed}.progress::-webkit-progress-value{background-color:#4a4a4a}.progress::-moz-progress-bar{background-color:#4a4a4a}.progress::-ms-fill{background-color:#4a4a4a;border:none}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(90deg,#f5f5f5 30%,#ededed 0)}.progress.is-primary::-webkit-progress-value{background-color:#00d1b2}.progress.is-primary::-moz-progress-bar{background-color:#00d1b2}.progress.is-primary::-ms-fill{background-color:#00d1b2}.progress.is-primary:indeterminate{background-image:linear-gradient(90deg,#00d1b2 30%,#ededed 0)}.progress.is-info::-webkit-progress-value{background-color:#3e8ed0}.progress.is-info::-moz-progress-bar{background-color:#3e8ed0}.progress.is-info::-ms-fill{background-color:#3e8ed0}.progress.is-info:indeterminate{background-image:linear-gradient(90deg,#3e8ed0 30%,#ededed 0)}.progress.is-success::-webkit-progress-value{background-color:#48c78e}.progress.is-success::-moz-progress-bar{background-color:#48c78e}.progress.is-success::-ms-fill{background-color:#48c78e}.progress.is-success:indeterminate{background-image:linear-gradient(90deg,#48c78e 30%,#ededed 0)}.progress.is-warning::-webkit-progress-value{background-color:#ffe08a}.progress.is-warning::-moz-progress-bar{background-color:#ffe08a}.progress.is-warning::-ms-fill{background-color:#ffe08a}.progress.is-warning:indeterminate{background-image:linear-gradient(90deg,#ffe08a 30%,#ededed 0)}.progress.is-danger::-webkit-progress-value{background-color:#f14668}.progress.is-danger::-moz-progress-bar{background-color:#f14668}.progress.is-danger::-ms-fill{background-color:#f14668}.progress.is-danger:indeterminate{background-image:linear-gradient(90deg,#f14668 30%,#ededed 0)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:b;animation-timing-function:linear;background-color:#ededed;background-image:linear-gradient(90deg,#4a4a4a 30%,#ededed 0);background-position:0 0;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress:indeterminate::-ms-fill{animation-name:none}.progress.is-small{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes b{0%{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,.7)}.table td.is-primary,.table th.is-primary{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.table td.is-info,.table th.is-info{background-color:#3e8ed0;border-color:#3e8ed0;color:#fff}.table td.is-success,.table th.is-success{background-color:#48c78e;border-color:#48c78e;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffe08a;border-color:#ffe08a;color:rgba(0,0,0,.7)}.table td.is-danger,.table th.is-danger{background-color:#f14668;border-color:#f14668;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table th{color:#363636}.table th:not([align]){text-align:left}.table thead{background-color:transparent}.table thead td,.table thead th{border-width:0 0 2px;color:#363636}.table tbody{background-color:transparent}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-narrow td,.table.is-narrow th{padding:.25em .5em}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.tags .tag{margin-bottom:.5rem}.tags .tag:not(:last-child){margin-right:.5rem}.tags:last-child{margin-bottom:-.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.is-centered{-ms-flex-pack:center;justify-content:center}.tags.is-centered .tag{margin-right:.25rem;margin-left:.25rem}.tags.has-addons .tag{margin-right:0}.tags.has-addons .tag:not(:first-child){margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.tags.has-addons .tag:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.tag:not(body){-ms-flex-align:center;align-items:center;background-color:#f5f5f5;border-radius:4px;color:#4a4a4a;display:-ms-inline-flexbox;display:inline-flex;font-size:.75rem;height:2em;-ms-flex-pack:center;justify-content:center;line-height:1.5;padding-left:.75em;padding-right:.75em;white-space:nowrap}.tag:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}.tag:not(body).is-light{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.tag:not(body).is-primary{background-color:#00d1b2;color:#fff}.tag:not(body).is-primary.is-light{background-color:#ebfffc;color:#00947e}.tag:not(body).is-info{background-color:#3e8ed0;color:#fff}.tag:not(body).is-info.is-light{background-color:#eff5fb;color:#296fa8}.tag:not(body).is-success{background-color:#48c78e;color:#fff}.tag:not(body).is-success.is-light{background-color:#effaf5;color:#257953}.tag:not(body).is-warning{background-color:#ffe08a;color:rgba(0,0,0,.7)}.tag:not(body).is-warning.is-light{background-color:#fffaeb;color:#946c00}.tag:not(body).is-danger{background-color:#f14668;color:#fff}.tag:not(body).is-danger.is-light{background-color:#feecf0;color:#cc0f35}.tag:not(body).is-medium{font-size:1rem}.tag:not(body).is-large{font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}.tag:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}.tag:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}.tag:not(body).is-rounded{border-radius:9999px}a.tag:hover{text-decoration:underline}.subtitle,.title{word-break:break-word}.subtitle em,.subtitle span,.title em,.title span{font-weight:inherit}.subtitle sub,.title sub{font-size:.75em}.subtitle .tag,.title .tag{vertical-align:middle}.title{color:#363636;font-family:Rasa,Georgia,Times New Roman,serif;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.number{-ms-flex-align:center;align-items:center;background-color:#f5f5f5;border-radius:9999px;display:-ms-inline-flexbox;display:inline-flex;font-size:1.25rem;height:2em;-ms-flex-pack:center;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:.25rem .5rem;text-align:center;vertical-align:top}.input,.select select,.textarea{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.input::-moz-placeholder,.select select::-moz-placeholder,.textarea::-moz-placeholder{color:rgba(54,54,54,.3)}.input::-webkit-input-placeholder,.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.input:-moz-placeholder,.select select:-moz-placeholder,.textarea:-moz-placeholder{color:rgba(54,54,54,.3)}.input:-ms-input-placeholder,.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder{color:rgba(54,54,54,.3)}.input:hover,.select select:hover,.textarea:hover{border-color:#b5b5b5}.input:active,.input:focus,.is-active.input,.is-active.textarea,.select select.is-active,.select select:active,.select select:focus,.textarea:active,.textarea:focus{border-color:#485fc7;box-shadow:0 0 0 .125em rgba(72,95,199,.25)}.select select[disabled],[disabled].input,[disabled].textarea{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#7a7a7a}.select select[disabled]::-moz-placeholder,[disabled].input::-moz-placeholder,[disabled].textarea::-moz-placeholder{color:hsla(0,0%,48%,.3)}.select select[disabled]::-webkit-input-placeholder,[disabled].input::-webkit-input-placeholder,[disabled].textarea::-webkit-input-placeholder{color:hsla(0,0%,48%,.3)}.select select[disabled]:-moz-placeholder,[disabled].input:-moz-placeholder,[disabled].textarea:-moz-placeholder{color:hsla(0,0%,48%,.3)}.select select[disabled]:-ms-input-placeholder,[disabled].input:-ms-input-placeholder,[disabled].textarea:-ms-input-placeholder{color:hsla(0,0%,48%,.3)}.input,.textarea{box-shadow:inset 0 .0625em .125em hsla(0,0%,4%,.05);max-width:100%;width:100%}[readonly].input,[readonly].textarea{box-shadow:none}.is-light.input,.is-light.textarea{border-color:#f5f5f5}.is-light.input:active,.is-light.input:focus,.is-light.is-active.input,.is-light.is-active.textarea,.is-light.textarea:active,.is-light.textarea:focus{box-shadow:0 0 0 .125em hsla(0,0%,96%,.25)}.is-primary.input,.is-primary.textarea{border-color:#00d1b2}.is-primary.input:active,.is-primary.input:focus,.is-primary.is-active.input,.is-primary.is-active.textarea,.is-primary.textarea:active,.is-primary.textarea:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.is-info.input,.is-info.textarea{border-color:#3e8ed0}.is-info.input:active,.is-info.input:focus,.is-info.is-active.input,.is-info.is-active.textarea,.is-info.textarea:active,.is-info.textarea:focus{box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.is-success.input,.is-success.textarea{border-color:#48c78e}.is-success.input:active,.is-success.input:focus,.is-success.is-active.input,.is-success.is-active.textarea,.is-success.textarea:active,.is-success.textarea:focus{box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.is-warning.input,.is-warning.textarea{border-color:#ffe08a}.is-warning.input:active,.is-warning.input:focus,.is-warning.is-active.input,.is-warning.is-active.textarea,.is-warning.textarea:active,.is-warning.textarea:focus{box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.is-danger.input,.is-danger.textarea{border-color:#f14668}.is-danger.input:active,.is-danger.input:focus,.is-danger.is-active.input,.is-danger.is-active.textarea,.is-danger.textarea:active,.is-danger.textarea:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.is-small.input,.is-small.textarea{border-radius:2px;font-size:.75rem}.is-medium.input,.is-medium.textarea{font-size:1.25rem}.is-large.input,.is-large.textarea{font-size:1.5rem}.is-fullwidth.input,.is-fullwidth.textarea{display:block;width:100%}.is-inline.input,.is-inline.textarea{display:inline;width:auto}.input.is-rounded{border-radius:9999px;padding-left:calc((.75em - 1px) + .375em);padding-right:calc((.75em - 1px) + .375em)}.textarea{display:block;max-width:100%;min-width:100%;padding:calc(.75em - 1px);resize:vertical}.textarea:not([rows]){max-height:40em;min-height:8em}.textarea[rows]{height:auto}.checkbox{display:inline-block;line-height:1.25;position:relative}.checkbox,.checkbox input{cursor:pointer}.checkbox:hover{color:#363636}.checkbox input[disabled],[disabled].checkbox{color:#7a7a7a;cursor:not-allowed}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.5em}.select:not(.is-multiple):not(.is-loading):after{border-color:#485fc7;right:1.125em;z-index:4}.select.is-rounded select{border-radius:9999px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:.5em 1em}.select:not(.is-multiple):not(.is-loading):hover:after{border-color:#363636}.select.is-light:not(:hover):after,.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover{border-color:#e8e8e8}.select.is-light select.is-active,.select.is-light select:active,.select.is-light select:focus{box-shadow:0 0 0 .125em hsla(0,0%,96%,.25)}.select.is-primary:not(:hover):after,.select.is-primary select{border-color:#00d1b2}.select.is-primary select:hover{border-color:#00b89c}.select.is-primary select.is-active,.select.is-primary select:active,.select.is-primary select:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.select.is-info:not(:hover):after,.select.is-info select{border-color:#3e8ed0}.select.is-info select:hover{border-color:#3082c5}.select.is-info select.is-active,.select.is-info select:active,.select.is-info select:focus{box-shadow:0 0 0 .125em rgba(62,142,208,.25)}.select.is-success:not(:hover):after,.select.is-success select{border-color:#48c78e}.select.is-success select:hover{border-color:#3abb81}.select.is-success select.is-active,.select.is-success select:active,.select.is-success select:focus{box-shadow:0 0 0 .125em rgba(72,199,142,.25)}.select.is-warning:not(:hover):after,.select.is-warning select{border-color:#ffe08a}.select.is-warning select:hover{border-color:#ffd970}.select.is-warning select.is-active,.select.is-warning select:active,.select.is-warning select:focus{box-shadow:0 0 0 .125em rgba(255,224,138,.25)}.select.is-danger:not(:hover):after,.select.is-danger select{border-color:#f14668}.select.is-danger select:hover{border-color:#ef2e55}.select.is-danger select.is-active,.select.is-danger select:active,.select.is-danger select:focus{box-shadow:0 0 0 .125em rgba(241,70,104,.25)}.select.is-small{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled:after{border-color:#7a7a7a!important;opacity:.5}.select.is-fullwidth,.select.is-fullwidth select{width:100%}.file{-ms-flex-align:stretch;align-items:stretch;display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start;position:relative}.file.is-small{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-large{font-size:1.5rem}.file.is-centered{-ms-flex-pack:center;justify-content:center}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:.5em}.label.is-small{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:.25rem}.help.is-light{color:#f5f5f5}.help.is-primary{color:#00d1b2}.help.is-info{color:#3e8ed0}.help.is-success{color:#48c78e}.help.is-warning{color:#ffe08a}.help.is-danger{color:#f14668}.field:not(:last-child){margin-bottom:.75rem}.field.has-addons{display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):hover{z-index:2}.field.has-addons .control .button:not([disabled]).is-active,.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .input:not([disabled]).is-active,.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control .select select:not([disabled]).is-active,.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select:not([disabled]):focus{z-index:3}.field.has-addons .control .button:not([disabled]).is-active:hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .input:not([disabled]).is-active:hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control .select select:not([disabled]).is-active:hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select:not([disabled]):focus:hover{z-index:4}.field.has-addons .control.is-expanded{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1}.field.is-grouped{display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start}.field.is-grouped>.control{-ms-flex-negative:0;flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}.field.is-grouped>.control.is-expanded{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1}@media print,screen and (min-width:769px){.field.is-horizontal{display:-ms-flexbox;display:flex}}.field-body .field .field{margin-bottom:0}@media print,screen and (min-width:769px){.field-body{display:-ms-flexbox;display:flex;-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:5;flex-grow:5;-ms-flex-negative:1;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{-ms-flex-negative:1;flex-shrink:1}.field-body>.field:not(.is-narrow){-ms-flex-positive:1;flex-grow:1}.field-body>.field:not(:last-child){margin-right:.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}.control.has-icons-left .input:focus~.icon,.control.has-icons-left .select:focus~.icon{color:#4a4a4a}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon{color:#dbdbdb;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}.control.has-icons-left .input,.control.has-icons-left .select select{padding-left:2.5em}.control.has-icons-left .icon.is-left{left:0}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{-ms-flex-align:center;align-items:center;color:#485fc7;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#363636;cursor:default;pointer-events:none}.breadcrumb li+li:before{color:#b5b5b5;content:"/"}.breadcrumb ol,.breadcrumb ul{-ms-flex-align:start;align-items:flex-start;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:.5em}.breadcrumb .icon:last-child{margin-left:.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{-ms-flex-pack:center;justify-content:center}.breadcrumb.is-small{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.dropdown{display:-ms-inline-flexbox;display:inline-flex;position:relative;vertical-align:top}.dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:.5rem 0}.level{-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}@media print,screen and (min-width:769px){.level{display:-ms-flexbox;display:flex}.level>.level-item:not(.is-narrow){-ms-flex-positive:1;flex-grow:1}}.level-item{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-preferred-size:auto;flex-basis:auto;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;-ms-flex-pack:center;justify-content:center}.level-item .subtitle,.level-item .title{margin-bottom:0}@media screen and (max-width:768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{-ms-flex-preferred-size:auto;flex-basis:auto;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0}@media print,screen and (min-width:769px){.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:flex-start}@media screen and (max-width:768px){.level-left+.level-right{margin-top:1.5rem}}@media print,screen and (min-width:769px){.level-left{display:-ms-flexbox;display:flex}}.level-right{-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}@media print,screen and (min-width:769px){.level-right{display:-ms-flexbox;display:flex}}.menu{font-size:1rem}.menu.is-small{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.message.is-light .message-body{border-color:#f5f5f5}.message.is-primary{background-color:#ebfffc}.message.is-primary .message-header{background-color:#00d1b2;color:#fff}.message.is-primary .message-body{border-color:#00d1b2;color:#00947e}.message.is-info{background-color:#eff5fb}.message.is-info .message-header{background-color:#3e8ed0;color:#fff}.message.is-info .message-body{border-color:#3e8ed0;color:#296fa8}.message.is-success{background-color:#effaf5}.message.is-success .message-header{background-color:#48c78e;color:#fff}.message.is-success .message-body{border-color:#48c78e;color:#257953}.message.is-warning{background-color:#fffaeb}.message.is-warning .message-header{background-color:#ffe08a;color:rgba(0,0,0,.7)}.message.is-warning .message-body{border-color:#ffe08a;color:#946c00}.message.is-danger{background-color:#feecf0}.message.is-danger .message-header{background-color:#f14668;color:#fff}.message.is-danger .message-body{border-color:#f14668;color:#cc0f35}.message-header{-ms-flex-align:center;align-items:center;background-color:#4a4a4a;border-radius:4px 4px 0 0;color:#fff;display:-ms-flexbox;display:flex;font-weight:700;-ms-flex-pack:justify;justify-content:space-between;line-height:1.25;padding:.75em 1em;position:relative}.message-header .delete{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0;margin-left:.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#4a4a4a;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:transparent}.modal{-ms-flex-align:center;align-items:center;display:none;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;position:fixed;z-index:10}.modal.is-active{display:-ms-flexbox;display:flex}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:9}.navbar.is-light{background-color:#f5f5f5}.navbar.is-light,.navbar.is-light .navbar-brand .navbar-link,.navbar.is-light .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-brand .navbar-link:after{border-color:rgba(0,0,0,.7)}.navbar.is-light .navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.navbar.is-light .navbar-end .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-light .navbar-end .navbar-link.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-end .navbar-link:after,.navbar.is-light .navbar-start .navbar-link:after{border-color:rgba(0,0,0,.7)}.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link{background-color:#e8e8e8;color:rgba(0,0,0,.7)}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,.7)}}.navbar.is-primary{background-color:#00d1b2;color:#fff}.navbar.is-primary .navbar-brand .navbar-link,.navbar.is-primary .navbar-brand>.navbar-item{color:#fff}.navbar.is-primary .navbar-brand .navbar-link.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-brand .navbar-link:after{border-color:#fff}.navbar.is-primary .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-primary .navbar-end .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.navbar.is-primary .navbar-start>.navbar-item{color:#fff}.navbar.is-primary .navbar-end .navbar-link.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-end .navbar-link:after,.navbar.is-primary .navbar-start .navbar-link:after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active{background-color:#00d1b2;color:#fff}}.navbar.is-info{background-color:#3e8ed0;color:#fff}.navbar.is-info .navbar-brand .navbar-link,.navbar.is-info .navbar-brand>.navbar-item{color:#fff}.navbar.is-info .navbar-brand .navbar-link.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-brand .navbar-link:after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-info .navbar-end .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-start>.navbar-item{color:#fff}.navbar.is-info .navbar-end .navbar-link.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-end .navbar-link:after,.navbar.is-info .navbar-start .navbar-link:after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link{background-color:#3082c5;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#3e8ed0;color:#fff}}.navbar.is-success{background-color:#48c78e;color:#fff}.navbar.is-success .navbar-brand .navbar-link,.navbar.is-success .navbar-brand>.navbar-item{color:#fff}.navbar.is-success .navbar-brand .navbar-link.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-brand .navbar-link:after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-success .navbar-end .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-start>.navbar-item{color:#fff}.navbar.is-success .navbar-end .navbar-link.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-end .navbar-link:after,.navbar.is-success .navbar-start .navbar-link:after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link{background-color:#3abb81;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#48c78e;color:#fff}}.navbar.is-warning{background-color:#ffe08a}.navbar.is-warning,.navbar.is-warning .navbar-brand .navbar-link,.navbar.is-warning .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link:after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,.7)}@media screen and (min-width:1024px){.navbar.is-warning .navbar-end .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link:after,.navbar.is-warning .navbar-start .navbar-link:after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link{background-color:#ffd970;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffe08a;color:rgba(0,0,0,.7)}}.navbar.is-danger{background-color:#f14668;color:#fff}.navbar.is-danger .navbar-brand .navbar-link,.navbar.is-danger .navbar-brand>.navbar-item{color:#fff}.navbar.is-danger .navbar-brand .navbar-link.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-brand .navbar-link:after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width:1024px){.navbar.is-danger .navbar-end .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-start>.navbar-item{color:#fff}.navbar.is-danger .navbar-end .navbar-link.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-end .navbar-link:after,.navbar.is-danger .navbar-start .navbar-link:after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link{background-color:#ef2e55;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#f14668;color:#fff}}.navbar>.container{-ms-flex-align:stretch;align-items:stretch;display:-ms-flexbox;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar-brand{-ms-flex-align:stretch;align-items:stretch;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-burger{color:#4a4a4a;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color,opacity,transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:first-child{top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,.05)}.navbar-burger.is-active span:first-child{transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:.5rem .75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-.25rem;margin-right:-.25rem}.navbar-link,a.navbar-item{cursor:pointer}.navbar-link.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,a.navbar-item.is-active,a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover{background-color:#fafafa;color:#485fc7}.navbar-item{-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless):after{border-color:#485fc7;margin-top:-.375em;right:1.125em}.navbar-dropdown{font-size:.875rem;padding-bottom:.5rem;padding-top:.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}@media screen and (max-width:1023px){.navbar>.container{display:block}.navbar-brand .navbar-item{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.navbar-link:after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px hsla(0,0%,4%,.1);padding:.5rem 0}.navbar-menu.is-active{display:block}}@media screen and (min-width:1024px){.navbar,.navbar-end,.navbar-menu,.navbar-start{-ms-flex-align:stretch;align-items:stretch;display:-ms-flexbox;display:flex}.navbar{min-height:3.25rem}.navbar.is-transparent .navbar-link.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover{background-color:transparent!important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent!important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#485fc7}.navbar-burger{display:none}.navbar-item,.navbar-link{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.navbar-item.has-dropdown{-ms-flex-align:stretch;align-items:stretch}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0}.navbar-start{-ms-flex-pack:start;justify-content:flex-start;margin-right:auto}.navbar-end{-ms-flex-pack:end;justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px hsla(0,0%,4%,.1);display:none;font-size:.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:8}.navbar-dropdown .navbar-item{padding:.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#485fc7}.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px hsla(0,0%,4%,.1),0 0 0 1px hsla(0,0%,4%,.1);display:block;opacity:0;pointer-events:none;top:calc(100% + -4px);transform:translateY(-5px);transition-duration:86ms;transition-property:opacity,transform}.container>.navbar .navbar-brand,.navbar>.container .navbar-brand{margin-left:-.75rem}.container>.navbar .navbar-menu,.navbar>.container .navbar-menu{margin-right:-.75rem}.navbar-link.is-active,a.navbar-item.is-active{color:#0a0a0a}.navbar-link.is-active:not(:focus):not(:hover),a.navbar-item.is-active:not(:focus):not(:hover){background-color:transparent}.navbar-item.has-dropdown.is-active .navbar-link,.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link{background-color:#fafafa}}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-link{border-radius:9999px}.pagination,.pagination-list{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.pagination,.pagination-link,.pagination-list{-ms-flex-pack:center;justify-content:center;text-align:center}.pagination-link{font-size:1em;margin:.25rem;padding-left:.5em;padding-right:.5em;border-color:#dbdbdb;color:#363636;min-width:2.5em}.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-link:focus{border-color:#485fc7}.pagination-link:active{box-shadow:inset 0 1px 2px hsla(0,0%,4%,.2)}.pagination-link.is-disabled,.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#7a7a7a;opacity:.5}.pagination-link.is-current{background-color:#485fc7;border-color:#485fc7;color:#fff}.pagination-list{-ms-flex-wrap:wrap;flex-wrap:wrap}.pagination-list li{list-style:none}@media screen and (max-width:768px){.pagination{-ms-flex-wrap:wrap;flex-wrap:wrap}.pagination-list li{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1}}@media print,screen and (min-width:769px){.pagination-list{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-order:1;order:1}.pagination,.pagination-link{margin-bottom:0;margin-top:0}.pagination{-ms-flex-pack:justify;justify-content:space-between}.pagination.is-centered .pagination-list{-ms-flex-pack:center;justify-content:center;-ms-flex-order:2;order:2}}.panel{border-radius:6px;box-shadow:0 .5em 1em -.125em hsla(0,0%,4%,.1),0 0 0 1px hsla(0,0%,4%,.02);font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-block:not(:last-child){border-bottom:1px solid #ededed}.panel-block{-ms-flex-align:center;align-items:center;color:#363636;display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start;padding:.5em .75em}.panel-block input[type=checkbox]{margin-right:.75em}.panel-block>.control{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1;width:100%}.panel-block.is-active{border-left-color:#485fc7;color:#363636}.panel-block:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.tabs{-webkit-overflow-scrolling:touch;-ms-flex-align:stretch;align-items:stretch;font-size:1rem;-ms-flex-pack:justify;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs,.tabs a{display:-ms-flexbox;display:flex}.tabs a{-ms-flex-align:center;align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#4a4a4a;-ms-flex-pack:center;justify-content:center;margin-bottom:-1px;padding:.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#363636;color:#363636}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#485fc7;color:#485fc7}.tabs ul{-ms-flex-align:center;align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0;-ms-flex-pack:start;justify-content:flex-start}.tabs ul.is-left{padding-right:.75em}.tabs .icon:first-child{margin-right:.5em}.tabs .icon:last-child{margin-left:.5em}.tabs.is-centered ul{-ms-flex-pack:center;justify-content:center}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:transparent!important}.tabs.is-fullwidth li{-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:0;flex-shrink:0}.tabs.is-small{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1;padding:.75rem}@media print,screen and (min-width:769px){.column.is-narrow{-ms-flex:none;flex:none;width:unset}.column.is-1{-ms-flex:none;flex:none;width:8.33333337%}.column.is-2{-ms-flex:none;flex:none;width:16.66666674%}.column.is-3{-ms-flex:none;flex:none;width:25%}.column.is-4{-ms-flex:none;flex:none;width:33.33333337%}.column.is-5{-ms-flex:none;flex:none;width:41.66666674%}.column.is-6{-ms-flex:none;flex:none;width:50%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:0.75rem}.columns.is-centered{-ms-flex-pack:center;justify-content:center}@media print,screen and (min-width:769px){.columns:not(.is-desktop){display:-ms-flexbox;display:flex}}.tile{-ms-flex-align:stretch;align-items:stretch;display:block;-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1;min-height:-moz-min-content;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0!important}.tile.is-parent{padding:.75rem}@media print,screen and (min-width:769px){.tile:not(.is-child){display:-ms-flexbox;display:flex}.tile.is-1{width:8.33333337%}.tile.is-1,.tile.is-2{-ms-flex:none;flex:none}.tile.is-2{width:16.66666674%}.tile.is-3{width:25%}.tile.is-3,.tile.is-4{-ms-flex:none;flex:none}.tile.is-4{width:33.33333337%}.tile.is-5{width:41.66666674%}.tile.is-5,.tile.is-6{-ms-flex:none;flex:none}.tile.is-6{width:50%}}.has-background-white{background-color:#fff!important}.has-text-light{color:#f5f5f5!important}a.has-text-light:focus,a.has-text-light:hover{color:#dbdbdb!important}.has-text-dark{color:#363636!important}a.has-text-dark:focus,a.has-text-dark:hover{color:#1c1c1c!important}.has-text-link{color:#485fc7!important}a.has-text-link:focus,a.has-text-link:hover{color:#3449a8!important}.has-text-info{color:#3e8ed0!important}a.has-text-info:focus,a.has-text-info:hover{color:#2b74b1!important}.has-background-info{background-color:#3e8ed0!important}.has-text-success{color:#48c78e!important}a.has-text-success:focus,a.has-text-success:hover{color:#34a873!important}.has-text-warning{color:#ffe08a!important}a.has-text-warning:focus,a.has-text-warning:hover{color:#ffd257!important}.has-text-danger{color:#f14668!important}a.has-text-danger:focus,a.has-text-danger:hover{color:#ee1742!important}.has-background-grey-dark{background-color:#4a4a4a!important}.has-text-grey{color:#7a7a7a!important}.has-text-grey-light{color:#b5b5b5!important}.has-background-white-ter{background-color:#f5f5f5!important}.is-flex-direction-column{-ms-flex-direction:column!important;flex-direction:column!important}.is-justify-content-space-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.is-justify-content-start{-ms-flex-pack:start!important;justify-content:start!important}.is-justify-content-left{-ms-flex-pack:left!important;justify-content:left!important}.is-align-items-center{-ms-flex-align:center!important;align-items:center!important}.is-align-items-start{-ms-flex-align:start!important;align-items:start!important}.is-flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.is-flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.is-flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.is-pulled-right{float:right!important}.is-relative{position:relative!important}.mr-0{margin-right:0!important}.mb-0{margin-bottom:0!important}.mt-1{margin-top:.25rem!important}.mr-1{margin-right:.25rem!important}.mb-1{margin-bottom:.25rem!important}.mt-2{margin-top:.5rem!important}.mb-2{margin-bottom:.5rem!important}.ml-2{margin-left:.5rem!important}.m-3{margin:.75rem!important}.mt-3{margin-top:.75rem!important}.mr-3{margin-right:.75rem!important}.mb-3{margin-bottom:.75rem!important}.ml-3,.mx-3{margin-left:.75rem!important}.mx-3{margin-right:.75rem!important}.my-3{margin-top:.75rem!important;margin-bottom:.75rem!important}.mt-4{margin-top:1rem!important}.mb-4{margin-bottom:1rem!important}.m-5{margin:1.5rem!important}.mt-5{margin-top:1.5rem!important}.mr-5{margin-right:1.5rem!important}.mb-5{margin-bottom:1.5rem!important}.ml-5,.mx-5{margin-left:1.5rem!important}.mx-5{margin-right:1.5rem!important}.my-5{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.p-0{padding:0!important}.px-0{padding-left:0!important;padding-right:0!important}.px-1{padding-left:.25rem!important;padding-right:.25rem!important}.p-3{padding:.75rem!important}.pb-3{padding-bottom:.75rem!important}.px-3{padding-left:.75rem!important;padding-right:.75rem!important}.pt-5{padding-top:1.5rem!important}.pb-5{padding-bottom:1.5rem!important}.has-text-centered{text-align:center!important}.has-text-right{text-align:right!important}.is-italic{font-style:italic!important}.has-text-weight-light{font-weight:300!important}.has-text-weight-normal{font-weight:400!important}.is-family-code{font-family:monospace!important}.is-block{display:block!important}.is-flex{display:-ms-flexbox!important;display:flex!important}.is-inline{display:inline!important}.is-inline-block{display:inline-block!important}.is-hidden{display:none!important}.section{padding:3rem 1.5rem}@media screen and (min-width:1024px){.section{padding:3rem}.section.is-medium{padding:9rem 4.5rem}.section.is-large{padding:18rem 6rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}.switch[type=checkbox]{outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block;position:absolute;opacity:0}.switch[type=checkbox]:focus+label:after,.switch[type=checkbox]:focus+label:before{outline:1px dotted #b5b5b5}.switch[type=checkbox][disabled]{cursor:not-allowed}.switch[type=checkbox][disabled]+label,.switch[type=checkbox][disabled]+label:after,.switch[type=checkbox][disabled]+label:before{opacity:.5}.switch[type=checkbox][disabled]+label:hover{cursor:not-allowed}.switch[type=checkbox]+label{position:relative;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:flex-start;font-size:1rem;height:2.5em;line-height:1.5;padding-left:3.5rem;padding-top:.2rem;cursor:pointer}.switch[type=checkbox]+label:before{position:absolute;display:block;top:calc(50% - 1.5rem * .5);left:0;width:3rem;height:1.5rem;border:.1rem solid transparent;border-radius:4px;background:#b5b5b5;content:""}.switch[type=checkbox]+label:after{display:block;position:absolute;top:calc(50% - 1rem * .5);left:.25rem;width:1rem;height:1rem;transform:translateZ(0);border-radius:4px;background:#fff;transition:all .25s ease-out;content:""}.switch[type=checkbox]:checked+label:before{background:#00d1b2}.switch[type=checkbox]:checked+label:after{left:1.625rem}.switch[type=checkbox].is-rounded+label:before{border-radius:24px}.switch[type=checkbox].is-rounded+label:after{border-radius:50%}.switch[type=checkbox].is-small+label{position:relative;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:flex-start;font-size:.75rem;height:2.5em;line-height:1.5;padding-left:2.75rem;padding-top:.2rem;cursor:pointer}.switch[type=checkbox].is-small+label:before{position:absolute;display:block;top:calc(50% - 1.125rem * .5);left:0;width:2.25rem;height:1.125rem;border:.1rem solid transparent;border-radius:4px;background:#b5b5b5;content:""}.switch[type=checkbox].is-small+label:after{display:block;position:absolute;top:calc(50% - .625rem * .5);left:.25rem;width:.625rem;height:.625rem;transform:translateZ(0);border-radius:4px;background:#fff;transition:all .25s ease-out;content:""}.switch[type=checkbox].is-small:checked+label:before{background:#00d1b2}.switch[type=checkbox].is-small:checked+label:after{left:1.25rem}.switch[type=checkbox].is-small.is-rounded+label:before{border-radius:24px}.switch[type=checkbox].is-small.is-rounded+label:after{border-radius:50%}.switch[type=checkbox].is-medium+label{position:relative;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:flex-start;font-size:1.25rem;height:2.5em;line-height:1.5;padding-left:4.25rem;padding-top:.2rem;cursor:pointer}.switch[type=checkbox].is-medium+label:before{position:absolute;display:block;top:calc(50% - 1.875rem * .5);left:0;width:3.75rem;height:1.875rem;border:.1rem solid transparent;border-radius:4px;background:#b5b5b5;content:""}.switch[type=checkbox].is-medium+label:after{display:block;position:absolute;top:calc(50% - 1.375rem * .5);left:.25rem;width:1.375rem;height:1.375rem;transform:translateZ(0);border-radius:4px;background:#fff;transition:all .25s ease-out;content:""}.switch[type=checkbox].is-medium:checked+label:before{background:#00d1b2}.switch[type=checkbox].is-medium:checked+label:after{left:2rem}.switch[type=checkbox].is-medium.is-rounded+label:before{border-radius:24px}.switch[type=checkbox].is-medium.is-rounded+label:after{border-radius:50%}.switch[type=checkbox].is-large+label{position:relative;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:flex-start;font-size:1.5rem;height:2.5em;line-height:1.5;padding-left:5rem;padding-top:.2rem;cursor:pointer}.switch[type=checkbox].is-large+label:before{position:absolute;display:block;top:calc(50% - 2.25rem * .5);left:0;width:4.5rem;height:2.25rem;border:.1rem solid transparent;border-radius:4px;background:#b5b5b5;content:""}.switch[type=checkbox].is-large+label:after{display:block;position:absolute;top:calc(50% - 1.75rem * .5);left:.25rem;width:1.75rem;height:1.75rem;transform:translateZ(0);border-radius:4px;background:#fff;transition:all .25s ease-out;content:""}.switch[type=checkbox].is-large:checked+label:before{background:#00d1b2}.switch[type=checkbox].is-large:checked+label:after{left:2.375rem}.switch[type=checkbox].is-large.is-rounded+label:before{border-radius:24px}.switch[type=checkbox].is-large.is-rounded+label:after{border-radius:50%}.switch[type=checkbox].is-light:checked+label:before{background:#f5f5f5}.switch[type=checkbox].is-primary:checked+label:before{background:#00d1b2}.switch[type=checkbox].is-info:checked+label:before{background:#3e8ed0}.switch[type=checkbox].is-success:checked+label:before{background:#48c78e}.switch[type=checkbox].is-warning:checked+label:before{background:#ffe08a}.switch[type=checkbox].is-danger:checked+label:before{background:#f14668}.field-body .switch[type=checkbox]+label{margin-top:.375em}[data-tooltip]:not(.is-disabled),[data-tooltip]:not(.is-loading),[data-tooltip]:not([disabled]){cursor:pointer;overflow:visible;position:relative}[data-tooltip]:not(.is-disabled):after,[data-tooltip]:not(.is-disabled):before,[data-tooltip]:not(.is-loading):after,[data-tooltip]:not(.is-loading):before,[data-tooltip]:not([disabled]):after,[data-tooltip]:not([disabled]):before{box-sizing:border-box;color:#fff;display:inline-block;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Lucida Sans Unicode,Lucida Grande,Arial,sans-serif;font-size:.75rem;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;opacity:0;overflow:hidden;pointer-events:none;position:absolute;visibility:hidden;z-index:12}[data-tooltip]:not(.is-disabled):after,[data-tooltip]:not(.is-loading):after,[data-tooltip]:not([disabled]):after{content:"";border-style:solid;border-width:6px;margin-bottom:-5px;top:0;right:auto;bottom:auto;left:50%;margin:-5px auto auto -5px;border-color:rgba(74,74,74,.9) transparent transparent}[data-tooltip]:not(.is-disabled):before,[data-tooltip]:not(.is-loading):before,[data-tooltip]:not([disabled]):before{background:rgba(74,74,74,.9);border-radius:2px;content:attr(data-tooltip);padding:.5rem 1rem;text-overflow:ellipsis;white-space:pre;right:auto;bottom:auto;left:50%;top:0;margin-top:-5px;margin-bottom:auto;transform:translate(-50%,-100%)}[data-tooltip]:not(.is-disabled).has-tooltip-multiline:before,[data-tooltip]:not(.is-loading).has-tooltip-multiline:before,[data-tooltip]:not([disabled]).has-tooltip-multiline:before{height:auto;width:15rem;max-width:15rem;text-overflow:clip;white-space:normal;word-break:keep-all}[data-tooltip]:not(.is-disabled):focus:after,[data-tooltip]:not(.is-disabled):focus:before,[data-tooltip]:not(.is-disabled):hover:after,[data-tooltip]:not(.is-disabled):hover:before,[data-tooltip]:not(.is-loading):focus:after,[data-tooltip]:not(.is-loading):focus:before,[data-tooltip]:not(.is-loading):hover:after,[data-tooltip]:not(.is-loading):hover:before,[data-tooltip]:not([disabled]):focus:after,[data-tooltip]:not([disabled]):focus:before,[data-tooltip]:not([disabled]):hover:after,[data-tooltip]:not([disabled]):hover:before{opacity:1;visibility:visible}.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:Font Awesome\ 6 Free}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}@font-face{font-family:Font Awesome\ 6 Brands;font-style:normal;font-weight:400;font-display:block;src:url(/static/fonts/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"),url(/static/fonts/fontawesome/webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:Font Awesome\ 6 Free;font-style:normal;font-weight:900;font-display:block;src:url(/static/fonts/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"),url(/static/fonts/fontawesome/webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:Font Awesome\ 6 Free;font-style:normal;font-weight:400;font-display:block;src:url(/static/fonts/fontawesome/webfonts/fa-regular-400.woff2) format("woff2"),url(/static/fonts/fontawesome/webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}.fa-regular,.fa-solid,.far,.fas{font-family:Font Awesome\ 6 Free}.fa-solid,.fas{font-weight:900}.fa-brands,.fab{font-family:Font Awesome\ 6 Brands;font-weight:400}.fa-2_3x{font-size:2.3em}.fa-magnifying-glass:before{content:"\f002"}.fa-pen-to-square:before{content:"\f044"}.fa-trash:before{content:"\f1f8"}.fa-delete-left:before{content:"\f55a"}.fa-sort:before{content:"\f0dc"}.fa-terminal:before{content:"\f120"}.fa-list:before{content:"\f03a"}.fa-ban:before{content:"\f05e"}.fa-toggle-on:before{content:"\f205"}.fa-toggle-off:before{content:"\f204"}.fa-circle-play:before{content:"\f144"}.fa-plus:before{content:"\+"}.fa-rotate:before{content:"\f2f1"}.fa-copy:before{content:"\f0c5"}.fa-download:before{content:"\f019"}.fa-check:before{content:"\f00c"}.fa-circle-info:before{content:"\f05a"}.fa-file-arrow-down:before{content:"\f56d"}.fa-angle-right:before{content:"\f105"}.fa-circle-check:before{content:"\f058"}.fa-circle-xmark:before{content:"\f057"}.fa-circle-notch:before{content:"\f1ce"}.fa-circle-stop:before{content:"\f28d"}.fa-circle-pause:before{content:"\f28b"}.fa-circle-question:before{content:"\f059"}.fa-calendar:before{content:"\f133"}.fa-arrow-up-right-from-square:before{content:"\f08e"}.fa-eye-slash:before{content:"\f070"}.fa-eye:before{content:"\f06e"}.fa-users:before{content:"\f0c0"}.fa-right-to-bracket:before{content:"\f2f6"}.fa-angle-down:before{content:"\f107"}.fa-triangle-exclamation:before{content:"\f071"}.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5);animation:c 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;animation:c 1.06s steps(1) infinite;background-color:#7e7}@keyframes c{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:5;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.cm-s-ttcn.CodeMirror{background:#f5f2f0;color:#000}.cm-s-ttcn .CodeMirror-overlayscroll-vertical{width:8px;transition:width .15s linear}.cm-s-ttcn .CodeMirror-overlayscroll-vertical>div{background:rgba(0,0,0,.4)}.cm-s-ttcn .CodeMirror-overlayscroll-vertical:hover{width:12px}.cm-s-ttcn .CodeMirror-overlayscroll-vertical:hover>div{border-radius:6px}.cm-s-ttcn .CodeMirror-gutters{border-right:1px solid #999}.cm-s-ttcn .CodeMirror-gutter,.cm-s-ttcn .CodeMirror-linenumbers{width:1.4em;background:#f5f2f0;padding-right:.8em}.cm-s-ttcn pre.CodeMirror-line,.cm-s-ttcn pre.CodeMirror-line-like{padding:0 .8em}.cm-s-ttcn .cm-quote{color:#090}.cm-s-ttcn .cm-header,.cm-strong{font-weight:700}.cm-s-ttcn .cm-header{color:#00f;font-weight:700}.cm-s-ttcn .cm-atom{color:#905}.cm-s-ttcn .cm-attribute{color:#690}.cm-s-ttcn .cm-bracket{color:#997}.cm-s-ttcn .cm-comment{color:#333}.cm-s-ttcn .cm-def{color:#00f}.cm-s-ttcn .cm-em{font-style:italic}.cm-s-ttcn .cm-error{color:red}.cm-s-ttcn .cm-hr{color:#999}.cm-s-ttcn .cm-keyword{color:#07a}.cm-s-ttcn .cm-link{color:#00c;text-decoration:underline}.cm-s-ttcn .cm-meta{color:#555}.cm-s-ttcn .cm-negative{color:#d44}.cm-s-ttcn .cm-positive{color:#292}.cm-s-ttcn .cm-qualifier{color:#555}.cm-s-ttcn .cm-strikethrough{text-decoration:line-through}.cm-s-ttcn .cm-string{color:#690}.cm-s-ttcn .cm-string-2{color:#f50}.cm-s-ttcn .cm-strong{font-weight:700}.cm-s-ttcn .cm-tag{color:#170}.cm-s-ttcn .cm-variable{color:#8b2252}.cm-s-ttcn .cm-variable-2{color:#05a}.cm-s-ttcn .cm-type,.cm-s-ttcn .cm-variable-3{color:#085}.cm-s-ttcn .cm-invalidchar{color:red}.cm-s-ttcn .cm-operator{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.cm-s-ttcn .cm-accessTypes,.cm-s-ttcn .cm-compareTypes{color:#27408b}.cm-s-ttcn .cm-cmipVerbs{color:#8b2252}.cm-s-ttcn .cm-modifier{color:#d2691e}.cm-s-ttcn .cm-status{color:#8b4545}.cm-s-ttcn .cm-storage{color:#a020f0}.cm-s-ttcn .cm-tags{color:#006400}.cm-s-ttcn .cm-externalCommands{color:#8b4545;font-weight:700}.cm-s-ttcn .cm-fileNCtrlMaskOptions,.cm-s-ttcn .cm-sectionTitle{color:#2e8b57;font-weight:700}.cm-s-ttcn .cm-booleanConsts,.cm-s-ttcn .cm-otherConsts,.cm-s-ttcn .cm-verdictConsts{color:#006400}.cm-s-ttcn .cm-configOps,.cm-s-ttcn .cm-functionOps,.cm-s-ttcn .cm-portOps,.cm-s-ttcn .cm-sutOps,.cm-s-ttcn .cm-timerOps,.cm-s-ttcn .cm-verdictOps{color:#00f}.cm-s-ttcn .cm-preprocessor,.cm-s-ttcn .cm-templateMatch,.cm-s-ttcn .cm-ttcn3Macros{color:#27408b}.cm-s-ttcn .cm-types{color:brown;font-weight:700}.cm-s-ttcn .cm-visibilityModifiers{font-weight:700}.CodeMirror-simplescroll-horizontal div,.CodeMirror-simplescroll-vertical div{position:absolute;background:#ccc;box-sizing:border-box;border:1px solid #bbb;border-radius:2px}.CodeMirror-simplescroll-horizontal,.CodeMirror-simplescroll-vertical{position:absolute;z-index:5;background:#eee}.CodeMirror-simplescroll-horizontal{bottom:0;left:0;height:8px}.CodeMirror-simplescroll-horizontal div{bottom:0;height:100%}.CodeMirror-simplescroll-vertical{right:0;top:0;width:8px}.CodeMirror-simplescroll-vertical div{right:0;width:100%}.CodeMirror-overlayscroll .CodeMirror-gutter-filler,.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler{display:none}.CodeMirror-overlayscroll-horizontal div,.CodeMirror-overlayscroll-vertical div{position:absolute;background:#bcd;border-radius:3px}.CodeMirror-overlayscroll-horizontal,.CodeMirror-overlayscroll-vertical{position:absolute;z-index:5}.CodeMirror-overlayscroll-horizontal{bottom:0;left:0;height:6px}.CodeMirror-overlayscroll-horizontal div{bottom:0;height:100%}.CodeMirror-overlayscroll-vertical{right:0;top:0;width:6px}.CodeMirror-overlayscroll-vertical div{right:0;width:100%}.ss-wrapper{overflow:hidden;width:100%;height:100%;position:relative;z-index:1;float:left}.ss-content{height:calc(22px + 100%);width:calc(18px + 100%);padding:0;position:relative;overflow-x:scroll;overflow-y:scroll;box-sizing:border-box}.ss-scroll{top:0;right:0;padding-top:2px}.ss-hscroll,.ss-scroll{position:absolute;padding-right:2px;z-index:2;cursor:pointer;opacity:0;transition:opacity .25s linear .5s;padding-bottom:2px}.ss-hscroll{padding-left:2px;left:0;bottom:0}.ss-liner{background:rgba(0,0,0,.4);transition:background .25s linear;border-radius:4px;height:100%;width:100%}.ss-scroll .ss-liner{width:8px;transition:width .15s linear}.ss-hscroll .ss-liner{height:8px;transition:height .15s linear}.ss-grabbed .ss-liner,.ss-hscroll:hover .ss-liner,.ss-scroll:hover .ss-liner{background:rgba(0,0,0,.5);border-radius:6px}.ss-scroll.ss-grabbed .ss-liner,.ss-scroll:hover .ss-liner{width:12px}.ss-hscroll.ss-grabbed .ss-liner,.ss-hscroll:hover .ss-liner{height:12px}.ss-container.light .ss-liner{background:hsla(0,0%,100%,.4)}.ss-container.light .ss-grabbed .ss-liner,.ss-container.light .ss-hscroll:hover .ss-liner,.ss-container.light .ss-scroll:hover .ss-liner{background:hsla(0,0%,100%,.8)}.ss-hidden{display:none}.ss-container.ss-grabbed>.ss-wrapper>.ss-hscroll,.ss-container.ss-grabbed>.ss-wrapper>.ss-scroll,.ss-container:active>.ss-wrapper>.ss-hscroll,.ss-container:active>.ss-wrapper>.ss-scroll,.ss-container:hover>.ss-wrapper>.ss-hscroll,.ss-container:hover>.ss-wrapper>.ss-scroll{opacity:1;transition:opacity .25s linear 0s}.ss-grabbed{-o-user-select:none}.sp-wrapper,.ss-grabbed{-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}.sp-wrapper{position:absolute;top:0;right:0;height:100%;width:0;opacity:0;transition:opacity .25s linear .5s}.sp-container:hover .sp-wrapper,.sp-wrapper>.sp-grabbed,.ss-grabbed~.sp-wrapper{opacity:1;transition:opacity .25s linear 0s}.sp-content{transform-origin:0 0}.sp-scroll{position:absolute;width:100%;background-image:linear-gradient(270deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.2));opacity:0;left:-2px;transition:opacity .25s linear .5s;border-left:2px solid #e7db74}.sp-wrapper.sp-hover .sp-scroll,.sp-wrapper .sp-scroll.sp-grabbed,.sp-wrapper:hover .sp-scroll,.ss-scroll.ss-grabbed~.sp-wrapper .sp-scroll,.ss-scroll:hover~.sp-wrapper .sp-scroll{opacity:1;transition:opacity .25s linear 0s}.ss-content::-webkit-scrollbar{background-color:#fff;width:16px}code[class*=language-],pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-]::-moz-selection,code[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-]::selection,code[class*=language-] ::selection,pre[class*=language-]::selection,pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:a}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:a}.line-numbers-rows>span:before{content:counter(a);color:#999;display:block;padding-right:.8em;text-align:right}.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08)}.flatpickr-calendar.inline,.flatpickr-calendar.open{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:13}.flatpickr-calendar.animate.open{animation:d .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:11;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:after,.flatpickr-calendar:before{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9)}.flatpickr-months .flatpickr-next-month.flatpickr-disabled,.flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i{position:relative}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#959ea9}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);box-sizing:border-box}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;transform:translateZ(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month input.cur-year{background:transparent;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,.5);background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:active,.flatpickr-current-month .flatpickr-monthDropdown-months:focus{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:rgba(0,0,0,.54);line-height:1;margin:0;text-align:center;display:block;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:flex;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-around;transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:focus,.flatpickr-day.today:hover{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#569ff7;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 0 #569ff7}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{color:rgba(57,57,57,.3);background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:rgba(57,57,57,.1)}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;box-shadow:1px 0 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:rgba(57,57,57,.3);background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-ms-flexbox;display:flex;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;box-sizing:border-box;overflow:hidden;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@keyframes d{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.table.sort tr>th{cursor:pointer}.column{min-width:0}.atlas-navbar{padding:16px 0}.atlas-navbar .navbar-brand{margin-left:0!important}.atlas-navbar .navbar-brand a{padding-top:0;padding-bottom:0}.atlas-navbar .navbar-brand a img{max-height:50px;height:50px}.atlas-navbar .has-dropdown .navbar-link:hover,.atlas-navbar a.navbar-item:hover{color:#363636}@media screen and (min-width:1024px){.atlas-navbar .navbar-start{padding-top:0!important}}@media screen and (min-width:1024px){.hide-desktop{display:none!important}}#search-form{position:relative}#search-results{position:absolute;top:50px;left:0;min-width:100%;min-width:max(50vw,100%);max-width:800px;display:none;border-radius:4px;z-index:14;max-height:calc(100vh - 145px);overflow-y:auto}@media screen and (min-width:1024px){#search-results{min-width:max(30vw,100%)}}#search-results:empty{display:none!important}#search-results.search-focus,#search-results:active{display:block;box-shadow:0 .5em 1em -.125em hsla(0,0%,4%,.1),0 0 0 1px hsla(0,0%,4%,.02);border:1px solid #dbdbdb}#search-results .panel-block:first-of-type{border-top-left-radius:inherit;border-top-right-radius:inherit}#search-background{position:fixed;top:0;bottom:0;left:0;right:0;background:transparent;z-index:6;display:none}#search-background.search-focus-background{display:block}#search-background+div{z-index:7}#search-results em{background-color:#eff5fb;color:#3e8ed0}.tab-cnt>.tab-dta:not(.is-active){display:none}.tag:empty{background:transparent}[data-tooltip].has-tooltip-multiline:before{white-space:pre-line!important}[data-tooltip]:before{max-width:21rem!important;width:21rem!important}.is-size-6-5{font-size:.85rem!important}input.transparent{border:transparent!important;background:transparent!important}.pagination.is-close ul li:not(:first-of-type) .pagination-link{margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.pagination.is-close ul li:not(:last-child) .pagination-link{margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.pagination.is-close ul li:not(:last-child) .pagination-link:hover{margin-right:0;z-index:4}.pagination.is-close ul li:not(:last-child):hover+li .pagination-link{margin-left:-1px}.log-group div[log_id].is-collapsed{height:20px;overflow:hidden;-ms-flex-align:baseline;align-items:baseline}.log-group.first-of-type{margin-top:15px}.em-codeBox{max-height:500px;overflow:hidden}.em-codeBox pre{display:inline-block;min-width:100%;min-height:calc(100% - 1px);padding:1em 0 0 1em;margin:0!important;overflow:hidden!important}.em-codeBox code{padding-right:130px}.em-timelineScale{position:absolute;width:100%;bottom:0;top:0}.em-timelineLiner{padding-left:50px;position:relative}.em-timelineLiner:before{content:"runs/\a time";position:absolute;left:0;bottom:-20px;white-space:pre-wrap}.em-el{height:200px}.em-elBar{position:relative;height:0}.em-elBar:before{content:attr(data-attr);position:absolute;bottom:-30px;background:#fff;right:0;left:0}.em-ScaleBar{height:1px;width:100%;background:#b5b5b5;position:relative;margin-bottom:50px}.em-ScaleBar:before{content:attr(data-attr);position:absolute;top:50%;transform:translateY(-50%);background:#fff;padding-right:10px;color:#4a4a4a}.em-ScaleBar:last-of-type{background:transparent}code .number{all:unset}.is-inlineblock{display:inline-block!important}article.message a{text-decoration:none!important}.em-ajaxContent.is-inline div{display:inline-block} \ No newline at end of file +@charset "UTF-8";:root{--control-radius:var(--radius);--control-radius-small:var(--radius-small);--control-border-width:1px;--control-height:2.5em;--control-line-height:1.5;--control-padding-vertical:calc(0.5em - 1px);--control-padding-horizontal:calc(0.75em - 1px);--control-size:var(--size-normal);--control-focus-shadow-l:50%}.navbar-link:not(.is-arrowless):after,.select:not(.is-multiple):not(.is-loading):after{border:.125em solid var(--arrow-color);border-right:0;border-top:0;content:" ";display:block;height:.625em;margin-top:-.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;transition-duration:var(--duration);transition-property:border-color;width:.625em}.block:not(:last-child),.box:not(:last-child),.breadcrumb:not(:last-child),.buttons:not(:last-child),.content:not(:last-child),.field:not(:last-child),.file:not(:last-child),.level:not(:last-child),.message:not(:last-child),.notification:not(:last-child),.pagination:not(:last-child),.progress:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.tabs:not(:last-child),.tags:not(:last-child),.title:not(:last-child){margin-bottom:var(--block-spacing)}.button,.input,.pagination-link,.select select,.textarea{align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-color:transparent;border-radius:var(--control-radius);border-style:solid;border-width:var(--control-border-width);box-shadow:none;display:inline-flex;font-size:var(--control-size);height:var(--control-height);justify-content:flex-start;line-height:var(--control-line-height);padding:var(--control-padding-vertical) var(--control-padding-horizontal);position:relative;transition-duration:var(--duration);transition-property:background-color,border-color,box-shadow,color;vertical-align:top}.button:active,.button:focus,.button:focus-visible,.button:focus-within,.input:active,.input:focus,.input:focus-visible,.input:focus-within,.is-active.button,.is-active.input,.is-active.pagination-link,.is-active.textarea,.pagination-link:active,.pagination-link:focus,.pagination-link:focus-visible,.pagination-link:focus-within,.select select.is-active,.select select:active,.select select:focus,.select select:focus-visible,.select select:focus-within,.textarea:active,.textarea:focus,.textarea:focus-visible,.textarea:focus-within{outline:none}.select select[disabled],[disabled].button,[disabled].input,[disabled].pagination-link,[disabled].textarea{cursor:not-allowed}.modal{bottom:0;left:0;position:absolute;right:0;top:0}.navbar-burger{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;color:inherit;font-family:inherit;font-size:1em;margin:0;padding:0}.breadcrumb,.button,.file,.pagination-link,.tabs{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.box{--box-background-color:var(--scheme-main);--box-color:var(--text);--box-radius:var(--radius-large);--box-shadow:var(--shadow);--box-padding:1.25rem;--box-link-hover-shadow:0 0.5em 1em -0.125em hsla(var(--scheme-h),var(--scheme-s),var(--scheme-invert-l),0.1),0 0 0 1px var(--link);--box-link-active-shadow:inset 0 1px 2px hsla(var(--scheme-h),var(--scheme-s),var(--scheme-invert-l),0.2),0 0 0 1px var(--link);background-color:var(--box-background-color);border-radius:var(--box-radius);box-shadow:var(--box-shadow);color:var(--box-color);display:block;padding:var(--box-padding)}a.box:focus,a.box:hover{box-shadow:var(--box-link-hover-shadow)}a.box:active{box-shadow:var(--box-link-active-shadow)}.button{--button-family:false;--button-weight:var(--weight-medium);--button-border-color:var(--border);--button-border-style:solid;--button-border-width:var(--control-border-width);--button-padding-vertical:0.5em;--button-padding-horizontal:1em;--button-focus-border-color:var(--link-focus-border);--button-focus-box-shadow-size:0 0 0 0.125em;--button-focus-box-shadow-color:hsla(var(--link-h),var(--link-s),var(--link-on-scheme-l),0.25);--button-active-color:var(--link-active);--button-active-border-color:var(--link-active-border);--button-text-color:var(--text);--button-text-decoration:underline;--button-text-hover-background-color:var(--background);--button-text-hover-color:var(--text-strong);--button-ghost-background:none;--button-ghost-border-color:transparent;--button-ghost-color:var(--link-text);--button-ghost-decoration:none;--button-ghost-hover-color:var(--link);--button-ghost-hover-decoration:underline;--button-disabled-background-color:var(--scheme-main);--button-disabled-border-color:var(--border);--button-disabled-shadow:none;--button-disabled-opacity:0.5;--button-static-color:var(--text-weak);--button-static-background-color:var(--scheme-main-ter);--button-static-border-color:var(--border);--button-h:var(--scheme-h);--button-s:var(--scheme-s);--button-l:var(--scheme-main-l);--button-background-l:var(--scheme-main-l);--button-background-l-delta:0%;--button-hover-background-l-delta:var(--hover-background-l-delta);--button-active-background-l-delta:var(--active-background-l-delta);--button-color-l:var(--text-strong-l);--button-border-l:var(--border-l);--button-border-l-delta:0%;--button-hover-border-l-delta:var(--hover-border-l-delta);--button-active-border-l-delta:var(--active-border-l-delta);--button-focus-border-l-delta:var(--focus-border-l-delta);--button-outer-shadow-h:0;--button-outer-shadow-s:0%;--button-outer-shadow-l:20%;--button-outer-shadow-a:0.05;--loading-color:hsl(var(--button-h),var(--button-s),var(--button-color-l));background-color:hsl(var(--button-h),var(--button-s),calc(var(--button-background-l) + var(--button-background-l-delta)));border-color:hsl(var(--button-h),var(--button-s),calc(var(--button-border-l) + var(--button-border-l-delta)));border-style:var(--button-border-style);border-width:var(--button-border-width);box-shadow:0 .0625em .125em hsla(var(--button-outer-shadow-h),var(--button-outer-shadow-s),var(--button-outer-shadow-l),var(--button-outer-shadow-a)),0 .125em .25em hsla(var(--button-outer-shadow-h),var(--button-outer-shadow-s),var(--button-outer-shadow-l),var(--button-outer-shadow-a));color:hsl(var(--button-h),var(--button-s),var(--button-color-l));cursor:pointer;font-weight:var(--button-weight);height:auto;justify-content:center;padding:calc(var(--button-padding-vertical) - var(--button-border-width)) calc(var(--button-padding-horizontal) - var(--button-border-width));text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-large,.button .icon.is-medium,.button .icon.is-small{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-inline-end:calc(var(--button-padding-horizontal)*.25);margin-inline-start:calc(var(--button-padding-horizontal)*-.5)}.button .icon:last-child:not(:first-child){margin-inline-end:calc(var(--button-padding-horizontal)*-.5);margin-inline-start:calc(var(--button-padding-horizontal)*.25)}.button .icon:first-child:last-child{margin-inline-end:calc(var(--button-padding-horizontal)*-.5);margin-inline-start:calc(var(--button-padding-horizontal)*-.5)}.button:hover{--button-background-l-delta:var(--button-hover-background-l-delta);--button-border-l-delta:var(--button-hover-border-l-delta)}.button:focus-visible{--button-border-width:1px;border-color:hsl(var(--focus-h),var(--focus-s),var(--focus-l));box-shadow:var(--focus-shadow-size) hsla(var(--focus-h),var(--focus-s),var(--focus-l),var(--focus-shadow-alpha))}.button.is-active,.button:active{--button-background-l-delta:var(--button-active-background-l-delta);--button-border-l-delta:var(--button-active-border-l-delta);--button-outer-shadow-a:0}.button[disabled]{background-color:var(--button-disabled-background-color);border-color:var(--button-disabled-border-color);box-shadow:var(--button-disabled-shadow);opacity:var(--button-disabled-opacity)}.button.is-light{--button-h:var(--light-h);--button-s:var(--light-s);--button-l:var(--light-l);--button-background-l:var(--light-l);--button-border-l:var(--light-l);--button-border-width:0px;--button-color-l:var(--light-invert-l);--button-outer-shadow-a:0}.button.is-light:focus-visible{--button-border-width:1px}.button.is-light[disabled]{background-color:var(--light);border-color:var(--light);box-shadow:none}.button.is-primary{--button-h:var(--primary-h);--button-s:var(--primary-s);--button-l:var(--primary-l);--button-background-l:var(--primary-l);--button-border-l:var(--primary-l);--button-border-width:0px;--button-color-l:var(--primary-invert-l);--button-outer-shadow-a:0}.button.is-primary:focus-visible{--button-border-width:1px}.button.is-primary.is-light{--button-background-l:var(--light-l);--button-color-l:var(--primary-light-invert-l)}.button.is-primary[disabled]{background-color:var(--primary);border-color:var(--primary);box-shadow:none}.button.is-info{--button-h:var(--info-h);--button-s:var(--info-s);--button-l:var(--info-l);--button-background-l:var(--info-l);--button-border-l:var(--info-l);--button-border-width:0px;--button-color-l:var(--info-invert-l);--button-outer-shadow-a:0}.button.is-info:focus-visible{--button-border-width:1px}.button.is-info.is-light{--button-background-l:var(--light-l);--button-color-l:var(--info-light-invert-l)}.button.is-info[disabled]{background-color:var(--info);border-color:var(--info);box-shadow:none}.button.is-success{--button-h:var(--success-h);--button-s:var(--success-s);--button-l:var(--success-l);--button-background-l:var(--success-l);--button-border-l:var(--success-l);--button-border-width:0px;--button-color-l:var(--success-invert-l);--button-outer-shadow-a:0}.button.is-success:focus-visible{--button-border-width:1px}.button.is-success.is-light{--button-background-l:var(--light-l);--button-color-l:var(--success-light-invert-l)}.button.is-success[disabled]{background-color:var(--success);border-color:var(--success);box-shadow:none}.button.is-warning{--button-h:var(--warning-h);--button-s:var(--warning-s);--button-l:var(--warning-l);--button-background-l:var(--warning-l);--button-border-l:var(--warning-l);--button-border-width:0px;--button-color-l:var(--warning-invert-l);--button-outer-shadow-a:0}.button.is-warning:focus-visible{--button-border-width:1px}.button.is-warning.is-light{--button-background-l:var(--light-l);--button-color-l:var(--warning-light-invert-l)}.button.is-warning[disabled]{background-color:var(--warning);border-color:var(--warning);box-shadow:none}.button.is-danger{--button-h:var(--danger-h);--button-s:var(--danger-s);--button-l:var(--danger-l);--button-background-l:var(--danger-l);--button-border-l:var(--danger-l);--button-border-width:0px;--button-color-l:var(--danger-invert-l);--button-outer-shadow-a:0}.button.is-danger:focus-visible{--button-border-width:1px}.button.is-danger.is-light{--button-background-l:var(--light-l);--button-color-l:var(--danger-light-invert-l)}.button.is-danger[disabled]{background-color:var(--danger);border-color:var(--danger);box-shadow:none}.button.is-small{--control-size:var(--size-small);--control-radius:var(--radius-small)}.button.is-medium{--control-size:var(--size-medium);--control-radius:var(--radius-medium)}.button.is-large{--control-size:var(--size-large);--control-radius:var(--radius-medium)}.button.is-fullwidth{display:flex;width:100%}.button.is-rounded{border-radius:var(--radius-rounded);padding-left:calc(var(--button-padding-horizontal) + .25em - var(--button-border-width));padding-right:calc(var(--button-padding-horizontal) + .25em - var(--button-border-width))}.buttons{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-start}.buttons.has-addons{gap:0}.buttons.has-addons .button:not(:first-child){border-end-start-radius:0;border-start-start-radius:0}.buttons.has-addons .button:not(:last-child){border-end-end-radius:0;border-start-end-radius:0;margin-inline-end:-1px}.buttons.has-addons .button:hover{z-index:2}.buttons.has-addons .button.is-active,.buttons.has-addons .button:active,.buttons.has-addons .button:focus{z-index:3}.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button:focus:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.content{--content-heading-color:var(--text-strong);--content-heading-weight:var(--weight-extrabold);--content-heading-line-height:1.125;--content-block-margin-bottom:1em;--content-blockquote-background-color:var(--background);--content-blockquote-border-left:5px solid var(--border);--content-blockquote-padding:1.25em 1.5em;--content-pre-padding:1.25em 1.5em;--content-table-cell-border:1px solid var(--border);--content-table-cell-border-width:0 0 1px;--content-table-cell-padding:0.5em 0.75em;--content-table-cell-heading-color:var(--text-strong);--content-table-head-cell-border-width:0 0 2px;--content-table-head-cell-color:var(--text-strong);--content-table-body-last-row-cell-border-bottom-width:0;--content-table-foot-cell-border-width:2px 0 0;--content-table-foot-cell-color:var(--text-strong)}.content li+li{margin-top:.25em}.content blockquote:not(:last-child),.content ol:not(:last-child),.content p:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child),.content ul:not(:last-child){margin-bottom:var(--content-block-margin-bottom)}.content h1,.content h2,.content h3,.content h4,.content h5{color:var(--content-heading-color);font-weight:var(--content-heading-weight);line-height:var(--content-heading-line-height)}.content h1{font-size:2em;margin-bottom:.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:.8em}.content h5{font-size:1.125em;margin-bottom:.8888em}.content blockquote{background-color:var(--content-blockquote-background-color);border-inline-start:var(--content-blockquote-border-left);padding:var(--content-blockquote-padding)}.content ol{list-style-position:outside;margin-inline-start:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ul{list-style:disc outside;margin-inline-start:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-bottom:.25em;margin-top:.25em}.content ul ul ul{list-style-type:square}.content figure:not([class]){margin-left:2em;margin-right:2em;text-align:center}.content figure:not([class]):not(:first-child){margin-top:2em}.content figure:not([class]):not(:last-child){margin-bottom:2em}.content figure:not([class]) img{display:inline-block}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:var(--content-pre-padding);white-space:pre;word-wrap:normal}.content sub{font-size:75%}.content table td,.content table th{border:var(--content-table-cell-border);border-width:var(--content-table-cell-border-width);padding:var(--content-table-cell-padding);vertical-align:top}.content table th{color:var(--content-table-cell-heading-color)}.content table th:not([align]){text-align:inherit}.content table thead td,.content table thead th{border-width:var(--content-table-head-cell-border-width);color:var(--content-table-head-cell-color)}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:var(--content-table-body-last-row-cell-border-bottom-width)}.content .tabs li+li{margin-top:0}.content.is-small{font-size:var(--size-small)}.content.is-medium{font-size:var(--size-medium)}.content.is-large{font-size:var(--size-large)}.delete{--delete-dimensions:1.25rem;--delete-background-l:0%;--delete-background-alpha:0.5;--delete-color:var(--white);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:hsla(var(--scheme-h),var(--scheme-s),var(--delete-background-l),var(--delete-background-alpha));border:none;border-radius:var(--radius-rounded);cursor:pointer;display:inline-flex;flex-grow:0;flex-shrink:0;font-size:1em;height:var(--delete-dimensions);max-height:var(--delete-dimensions);max-width:var(--delete-dimensions);min-height:var(--delete-dimensions);min-width:var(--delete-dimensions);outline:none;pointer-events:auto;position:relative;vertical-align:top;width:var(--delete-dimensions)}.delete:after,.delete:before{background-color:var(--delete-color);content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.delete:before{height:2px;width:50%}.delete:after{height:50%;width:2px}.delete:focus,.delete:hover{--delete-background-alpha:0.4}.delete:active{--delete-background-alpha:0.5}.delete.is-small{--delete-dimensions:1rem}.delete.is-medium{--delete-dimensions:1.5rem}.delete.is-large{--delete-dimensions:2rem}.icon,.icon-text{--icon-dimensions:1.5rem;--icon-dimensions-small:1rem;--icon-dimensions-medium:2rem;--icon-dimensions-large:3rem;--icon-text-spacing:0.25em}.icon{align-items:center;display:inline-flex;flex-shrink:0;height:var(--icon-dimensions);justify-content:center;transition-duration:var(--duration);transition-property:color;width:var(--icon-dimensions)}.icon.is-small{height:var(--icon-dimensions-small);width:var(--icon-dimensions-small)}.icon.is-medium{height:var(--icon-dimensions-medium);width:var(--icon-dimensions-medium)}.icon.is-large{height:var(--icon-dimensions-large);width:var(--icon-dimensions-large)}.icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;gap:var(--icon-text-spacing);line-height:var(--icon-dimensions);vertical-align:top}.icon-text .icon{flex-grow:0;flex-shrink:0}div.icon-text{display:flex}.image{display:block;position:relative}.image img{display:block;height:auto;width:100%}.image img.is-rounded{border-radius:var(--radius-rounded)}.image.is-fullwidth{width:100%}.loader{animation:spinAround .5s linear infinite;border-bottom:2px solid var(--border);border-left:2px solid var(--border);border-radius:var(--radius-rounded);border-right:2px solid transparent;border-top:2px solid transparent;content:"";display:block;height:1em;position:relative;width:1em}.notification{--notification-h:var(--scheme-h);--notification-s:var(--scheme-s);--notification-background-l:var(--background-l);--notification-color-l:var(--text-strong-l);--notification-code-background-color:var(--scheme-main);--notification-radius:var(--radius);--notification-padding:1.375em 1.5em;background-color:hsl(var(--notification-h),var(--notification-s),var(--notification-background-l));border-radius:var(--notification-radius);color:hsl(var(--notification-h),var(--notification-s),var(--notification-color-l));padding:var(--notification-padding);position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:var(--notification-code-background-color)}.notification pre code{background:transparent}.notification>.delete{inset-inline-end:1rem;position:absolute;top:1rem}.notification .content,.notification .subtitle,.notification .title{color:currentColor}.notification.is-light{--notification-h:var(--light-h);--notification-s:var(--light-s);--notification-background-l:var(--light-l);--notification-color-l:var(--light-invert-l)}.notification.is-light.is-light{--notification-background-l:90%;--notification-color-l:var(--light-light-invert-l)}.notification.is-primary{--notification-h:var(--primary-h);--notification-s:var(--primary-s);--notification-background-l:var(--primary-l);--notification-color-l:var(--primary-invert-l)}.notification.is-primary.is-light{--notification-background-l:90%;--notification-color-l:var(--primary-light-invert-l)}.notification.is-info{--notification-h:var(--info-h);--notification-s:var(--info-s);--notification-background-l:var(--info-l);--notification-color-l:var(--info-invert-l)}.notification.is-info.is-light{--notification-background-l:90%;--notification-color-l:var(--info-light-invert-l)}.notification.is-success{--notification-h:var(--success-h);--notification-s:var(--success-s);--notification-background-l:var(--success-l);--notification-color-l:var(--success-invert-l)}.notification.is-success.is-light{--notification-background-l:90%;--notification-color-l:var(--success-light-invert-l)}.notification.is-warning{--notification-h:var(--warning-h);--notification-s:var(--warning-s);--notification-background-l:var(--warning-l);--notification-color-l:var(--warning-invert-l)}.notification.is-warning.is-light{--notification-background-l:90%;--notification-color-l:var(--warning-light-invert-l)}.notification.is-danger{--notification-h:var(--danger-h);--notification-s:var(--danger-s);--notification-background-l:var(--danger-l);--notification-color-l:var(--danger-invert-l)}.notification.is-danger.is-light{--notification-background-l:90%;--notification-color-l:var(--danger-light-invert-l)}.progress{--progress-border-radius:var(--radius-rounded);--progress-bar-background-color:var(--border-weak);--progress-value-background-color:var(--text);--progress-indeterminate-duration:1.5s;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:var(--progress-border-radius);display:block;height:var(--size-normal);overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:var(--progress-bar-background-color)}.progress::-webkit-progress-value{background-color:var(--progress-value-background-color)}.progress::-moz-progress-bar{background-color:var(--progress-value-background-color)}.progress::-ms-fill{background-color:var(--progress-value-background-color);border:none}.progress.is-light{--progress-value-background-color:var(--light)}.progress.is-primary{--progress-value-background-color:var(--primary)}.progress.is-info{--progress-value-background-color:var(--info)}.progress.is-success{--progress-value-background-color:var(--success)}.progress.is-warning{--progress-value-background-color:var(--warning)}.progress.is-danger{--progress-value-background-color:var(--danger)}.progress:indeterminate{animation-duration:var(--progress-indeterminate-duration);animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:var(--progress-bar-background-color);background-image:linear-gradient(to right,var(--progress-value-background-color) 30%,var(--progress-bar-background-color) 30%);background-position:0 0;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress:indeterminate::-ms-fill{animation-name:none}.progress.is-small{height:var(--size-small)}.progress.is-medium{height:var(--size-medium)}.progress.is-large{height:var(--size-large)}@keyframes moveIndeterminate{0%{background-position:200% 0}to{background-position:-200% 0}}.table{--table-color:var(--text-strong);--table-background-color:var(--scheme-main);--table-cell-border-color:var(--border);--table-cell-border-style:solid;--table-cell-border-width:0 0 1px;--table-cell-padding:0.5em 0.75em;--table-cell-heading-color:var(--text-strong);--table-cell-text-align:left;--table-head-cell-border-width:0 0 2px;--table-head-cell-color:var(--text-strong);--table-foot-cell-border-width:2px 0 0;--table-foot-cell-color:var(--text-strong);--table-head-background-color:transparent;--table-body-background-color:transparent;--table-foot-background-color:transparent;--table-row-hover-background-color:var(--scheme-main-bis);--table-row-active-background-color:var(--primary);--table-row-active-color:var(--primary-invert);--table-striped-row-even-background-color:var(--scheme-main-bis);--table-striped-row-even-hover-background-color:var(--scheme-main-ter);background-color:var(--table-background-color);color:var(--table-color)}.table td,.table th{background-color:var(--table-cell-background-color);border-color:var(--table-cell-border-color);border-style:var(--table-cell-border-style);border-width:var(--table-cell-border-width);color:var(--table-color);padding:var(--table-cell-padding);vertical-align:top}.table td.is-light,.table th.is-light{--table-color:var(--light-invert);--table-cell-heading-color:var(--light-invert);--table-cell-background-color:var(--light);--table-cell-border-color:var(--light)}.table td.is-primary,.table th.is-primary{--table-color:var(--primary-invert);--table-cell-heading-color:var(--primary-invert);--table-cell-background-color:var(--primary);--table-cell-border-color:var(--primary)}.table td.is-info,.table th.is-info{--table-color:var(--info-invert);--table-cell-heading-color:var(--info-invert);--table-cell-background-color:var(--info);--table-cell-border-color:var(--info)}.table td.is-success,.table th.is-success{--table-color:var(--success-invert);--table-cell-heading-color:var(--success-invert);--table-cell-background-color:var(--success);--table-cell-border-color:var(--success)}.table td.is-warning,.table th.is-warning{--table-color:var(--warning-invert);--table-cell-heading-color:var(--warning-invert);--table-cell-background-color:var(--warning);--table-cell-border-color:var(--warning)}.table td.is-danger,.table th.is-danger{--table-color:var(--danger-invert);--table-cell-heading-color:var(--danger-invert);--table-cell-background-color:var(--danger);--table-cell-border-color:var(--danger)}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table th{color:var(--table-cell-heading-color)}.table th:not([align]){text-align:var(--table-cell-text-align)}.table tr.is-light{--table-color:var(--light-invert);--table-cell-heading-color:var(--light-invert);--table-cell-background-color:var(--light);--table-cell-border-color:var(--light)}.table tr.is-primary{--table-color:var(--primary-invert);--table-cell-heading-color:var(--primary-invert);--table-cell-background-color:var(--primary);--table-cell-border-color:var(--primary)}.table tr.is-info{--table-color:var(--info-invert);--table-cell-heading-color:var(--info-invert);--table-cell-background-color:var(--info);--table-cell-border-color:var(--info)}.table tr.is-success{--table-color:var(--success-invert);--table-cell-heading-color:var(--success-invert);--table-cell-background-color:var(--success);--table-cell-border-color:var(--success)}.table tr.is-warning{--table-color:var(--warning-invert);--table-cell-heading-color:var(--warning-invert);--table-cell-background-color:var(--warning);--table-cell-border-color:var(--warning)}.table tr.is-danger{--table-color:var(--danger-invert);--table-cell-heading-color:var(--danger-invert);--table-cell-background-color:var(--danger);--table-cell-border-color:var(--danger)}.table thead{background-color:var(--table-head-background-color)}.table thead td,.table thead th{border-width:var(--table-head-cell-border-width);color:var(--table-head-cell-color)}.table tbody{background-color:var(--table-body-background-color)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:var(--table-row-hover-background-color)}.table.is-narrow td,.table.is-narrow th{padding:.25em .5em}.table-container{-webkit-overflow-scrolling:touch;max-width:100%;overflow:auto;overflow-y:hidden}.tags{align-items:center;color:hsl(var(--tag-h),var(--tag-s),var(--tag-color-l));display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-start}.tags.is-centered{gap:.25rem;justify-content:center}.tags.has-addons{gap:0}.tags.has-addons .tag:not(:first-child){border-end-start-radius:0;border-start-start-radius:0}.tags.has-addons .tag:not(:last-child){border-end-end-radius:0;border-start-end-radius:0}.tag{--tag-h:var(--scheme-h);--tag-s:var(--scheme-s);--tag-background-l:var(--background-l);--tag-background-l-delta:0%;--tag-hover-background-l-delta:var(--hover-background-l-delta);--tag-active-background-l-delta:var(--active-background-l-delta);--tag-color-l:var(--text-l);--tag-radius:var(--radius);--tag-delete-margin:1px;align-items:center;background-color:hsl(var(--tag-h),var(--tag-s),calc(var(--tag-background-l) + var(--tag-background-l-delta)));border-radius:var(--radius);color:hsl(var(--tag-h),var(--tag-s),var(--tag-color-l));display:inline-flex;font-size:var(--size-small);height:2em;justify-content:center;line-height:1.5;padding-left:.75em;padding-right:.75em;white-space:nowrap}.tag .delete{margin-inline-end:-.375rem;margin-inline-start:.25rem}.tag.is-light{--tag-h:var(--light-h);--tag-s:var(--light-s);--tag-background-l:var(--light-l);--tag-color-l:var(--light-invert-l)}.tag.is-light.is-light{--tag-background-l:var(--light-l);--tag-color-l:var(--light-light-invert-l)}.tag.is-primary{--tag-h:var(--primary-h);--tag-s:var(--primary-s);--tag-background-l:var(--primary-l);--tag-color-l:var(--primary-invert-l)}.tag.is-primary.is-light{--tag-background-l:var(--light-l);--tag-color-l:var(--primary-light-invert-l)}.tag.is-info{--tag-h:var(--info-h);--tag-s:var(--info-s);--tag-background-l:var(--info-l);--tag-color-l:var(--info-invert-l)}.tag.is-info.is-light{--tag-background-l:var(--light-l);--tag-color-l:var(--info-light-invert-l)}.tag.is-success{--tag-h:var(--success-h);--tag-s:var(--success-s);--tag-background-l:var(--success-l);--tag-color-l:var(--success-invert-l)}.tag.is-success.is-light{--tag-background-l:var(--light-l);--tag-color-l:var(--success-light-invert-l)}.tag.is-warning{--tag-h:var(--warning-h);--tag-s:var(--warning-s);--tag-background-l:var(--warning-l);--tag-color-l:var(--warning-invert-l)}.tag.is-warning.is-light{--tag-background-l:var(--light-l);--tag-color-l:var(--warning-light-invert-l)}.tag.is-danger{--tag-h:var(--danger-h);--tag-s:var(--danger-s);--tag-background-l:var(--danger-l);--tag-color-l:var(--danger-invert-l)}.tag.is-danger.is-light{--tag-background-l:var(--light-l);--tag-color-l:var(--danger-light-invert-l)}.tag.is-medium{font-size:var(--size-normal)}.tag.is-large{font-size:var(--size-medium)}.tag .icon:first-child:not(:last-child){margin-inline-end:.1875em;margin-inline-start:-.375em}.tag .icon:last-child:not(:first-child){margin-inline-end:-.375em;margin-inline-start:.1875em}.tag .icon:first-child:last-child{margin-inline-end:-.375em;margin-inline-start:-.375em}.tag.is-rounded{border-radius:var(--radius-rounded)}.tag.is-hoverable,a.tag,button.tag{cursor:pointer}.tag.is-hoverable:hover,a.tag:hover,button.tag:hover{--tag-background-l-delta:var(--tag-hover-background-l-delta)}.tag.is-hoverable:active,a.tag:active,button.tag:active{--tag-background-l-delta:var(--tag-active-background-l-delta)}.subtitle,.title{--title-color:var(--text-strong);--title-family:Rasa,Georgia,Times New Roman,serif;--title-size:var(--size-3);--title-weight:var(--weight-extrabold);--title-line-height:1.125;--title-strong-color:inherit;--title-strong-weight:inherit;--title-sub-size:0.75em;--title-sup-size:0.75em;--subtitle-color:var(--text);--subtitle-family:false;--subtitle-size:var(--size-5);--subtitle-weight:var(--weight-normal);--subtitle-line-height:1.25;--subtitle-strong-color:var(--text-strong);--subtitle-strong-weight:var(--weight-semibold);word-break:break-word}.subtitle em,.subtitle span,.title em,.title span{font-weight:inherit}.subtitle sub,.title sub{font-size:var(--title-sub-size)}.subtitle .tag,.title .tag{vertical-align:middle}.title{color:var(--title-color);font-family:var(--title-family);font-size:var(--title-size);font-weight:var(--title-weight);line-height:var(--title-line-height)}.title strong{color:var(--title-strong-color);font-weight:var(--title-strong-weight)}.title:not(.is-spaced):has(+.subtitle){margin-bottom:0}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.subtitle{color:var(--subtitle-color);font-size:var(--subtitle-size);font-weight:var(--subtitle-weight);line-height:var(--subtitle-line-height)}.subtitle strong{color:var(--subtitle-strong-color);font-weight:var(--subtitle-strong-weight)}.subtitle:not(.is-spaced):has(+.title){margin-bottom:0}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem} +/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */blockquote,body,figure,h1,h2,h3,h4,h5,hr,html,iframe,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5{font-size:100%;font-weight:400}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}img{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:inherit}:root{--body-background-color:var(--scheme-main);--body-size:1em;--body-min-width:300px;--body-rendering:optimizeLegibility;--body-family:var(--family-primary);--body-overflow-x:hidden;--body-overflow-y:scroll;--body-color:var(--text);--body-font-size:1em;--body-weight:var(--weight-normal);--body-line-height:1.5;--code-family:var(--family-code);--code-padding:0.25em 0.5em 0.25em;--code-weight:normal;--code-size:0.875em;--small-font-size:0.875em;--hr-background-color:var(--background);--hr-height:2px;--hr-margin:1.5rem 0;--strong-color:var(--text-strong);--strong-weight:var(--weight-semibold);--pre-font-size:0.875em;--pre-padding:1.25rem 1.5rem;--pre-code-font-size:1em}html{background-color:var(--body-background-color);font-size:var(--body-size);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:var(--body-min-width);overflow-x:var(--body-overflow-x);overflow-y:var(--body-overflow-y);text-rendering:var(--body-rendering);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}article,figure,footer,header,section{display:block}body,button,input,select,textarea{font-family:var(--body-family)}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:var(--code-family)}body{color:var(--body-color);font-size:var(--body-font-size);font-weight:var(--body-weight);line-height:var(--body-line-height)}a,button{cursor:pointer}a:focus-visible,button:focus-visible{outline-color:hsl(var(--focus-h),var(--focus-s),var(--focus-l));outline-offset:var(--focus-offset);outline-style:var(--focus-style);outline-width:var(--focus-width)}a:focus-visible:active,button:focus-visible:active{outline-width:1px}a:active,button:active{outline-width:1px}a{color:var(--link-text);cursor:pointer;text-decoration:none;transition-duration:var(--duration);transition-property:background-color,border-color,color}a strong{color:currentColor}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;color:inherit;font-family:inherit;font-size:1em;margin:0;padding:0;transition-duration:var(--duration);transition-property:background-color,border-color,color}code{background-color:var(--code-background);border-radius:.5em;color:var(--code);font-size:var(--code-size);font-weight:var(--code-weight);padding:var(--code-padding)}hr{background-color:var(--hr-background-color);border:none;display:block;height:var(--hr-height);margin:var(--hr-margin)}img{height:auto;max-width:100%}input[type=checkbox]{vertical-align:baseline}small{font-size:var(--small-font-size)}span{font-style:inherit;font-weight:inherit}strong{color:var(--strong-color);font-weight:var(--strong-weight)}svg{height:auto;width:auto}pre{-webkit-overflow-scrolling:touch;background-color:var(--pre-background);color:var(--pre);font-size:var(--pre-font-size);overflow-x:auto;padding:var(--pre-padding);white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:var(--pre-code-font-size);padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:inherit}table th{color:var(--text-strong)}@keyframes spinAround{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@keyframes pulsate{50%{opacity:.5}}.breadcrumb{--breadcrumb-item-color:var(--link-text);--breadcrumb-item-hover-color:var(--link-text-hover);--breadcrumb-item-active-color:#363636;--breadcrumb-item-padding-vertical:0;--breadcrumb-item-padding-horizontal:0.75em;--breadcrumb-item-separator-color:var(--border);font-size:var(--size-normal);white-space:nowrap}.breadcrumb a{align-items:center;color:var(--breadcrumb-item-color);display:flex;justify-content:center;padding:var(--breadcrumb-item-padding-vertical) var(--breadcrumb-item-padding-horizontal)}.breadcrumb a:hover{color:var(--breadcrumb-item-hover-color)}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-inline-start:0}.breadcrumb li.is-active a{color:var(--breadcrumb-item-active-color);cursor:default;pointer-events:none}.breadcrumb li+li:before{color:var(--breadcrumb-item-separator-color);content:"/"}.breadcrumb ol,.breadcrumb ul{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-inline-end:.5em}.breadcrumb .icon:last-child{margin-inline-start:.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-small{font-size:var(--size-small)}.breadcrumb.is-medium{font-size:var(--size-medium)}.breadcrumb.is-large{font-size:var(--size-large)}.dropdown{--dropdown-menu-min-width:12rem;--dropdown-content-background-color:var(--scheme-main);--dropdown-content-offset:0.25rem;--dropdown-content-padding-bottom:0.5rem;--dropdown-content-padding-top:0.5rem;--dropdown-content-radius:var(--radius);--dropdown-content-shadow:var(--shadow);--dropdown-content-z:20;--dropdown-item-h:var(--scheme-h);--dropdown-item-s:var(--scheme-s);--dropdown-item-l:var(--scheme-main-l);--dropdown-item-background-l:var(--scheme-main-l);--dropdown-item-background-l-delta:0%;--dropdown-item-hover-background-l-delta:var(--hover-background-l-delta);--dropdown-item-active-background-l-delta:var(--active-background-l-delta);--dropdown-item-color-l:var(--text-strong-l);--dropdown-item-selected-h:var(--link-h);--dropdown-item-selected-s:var(--link-s);--dropdown-item-selected-l:var(--link-l);--dropdown-item-selected-background-l:var(--link-l);--dropdown-item-selected-color-l:var(--link-invert-l);--dropdown-divider-background-color:var(--border-weak);display:inline-flex;position:relative;vertical-align:top}.dropdown-divider{background-color:var(--dropdown-divider-background-color);border:none;display:block;height:1px;margin:.5rem 0}.menu{--menu-item-h:var(--scheme-h);--menu-item-s:var(--scheme-s);--menu-item-l:var(--scheme-main-l);--menu-item-background-l:var(--scheme-main-l);--menu-item-background-l-delta:0%;--menu-item-hover-background-l-delta:var(--hover-background-l-delta);--menu-item-active-background-l-delta:var(--active-background-l-delta);--menu-item-color-l:var(--text-l);--menu-item-radius:var(--radius-small);--menu-item-selected-h:var(--link-h);--menu-item-selected-s:var(--link-s);--menu-item-selected-l:var(--link-l);--menu-item-selected-background-l:var(--link-l);--menu-item-selected-color-l:var(--link-invert-l);--menu-list-border-left:1px solid var(--border);--menu-list-line-height:1.25;--menu-list-link-padding:0.5em 0.75em;--menu-nested-list-margin:0.75em;--menu-nested-list-padding-left:0.75em;--menu-label-color:var(--text-weak);--menu-label-font-size:0.75em;--menu-label-letter-spacing:0.1em;--menu-label-spacing:1em;font-size:var(--size-normal)}.menu.is-small{font-size:var(--size-small)}.menu.is-medium{font-size:var(--size-medium)}.menu.is-large{font-size:var(--size-large)}.message{--message-border-l-delta:-20%;--message-radius:var(--radius);--message-header-weight:var(--weight-semibold);--message-header-padding:1em 1.25em;--message-header-radius:var(--radius);--message-body-border-width:0 0 0 4px;--message-body-color:var(--text);--message-body-padding:1.25em 1.5em;--message-body-radius:var(--radius-small);--message-body-pre-code-background-color:transparent;--message-header-body-border-width:0;--message-h:var(--scheme-h);--message-s:var(--scheme-s);--message-background-l:var(--background-l);--message-border-l:var(--border-l);--message-border-style:solid;--message-border-width:0.25em;--message-color-l:var(--text-l);--message-header-background-l:var(--dark-l);--message-header-color-l:var(--text-dark-invert-l);border-radius:var(--message-radius);color:hsl(var(--message-h),var(--message-s),var(--message-color-l));font-size:var(--size-normal)}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small{font-size:var(--size-small)}.message.is-medium{font-size:var(--size-medium)}.message.is-large{font-size:var(--size-large)}.message.is-light{--message-h:var(--light-h);--message-s:var(--light-s);--message-border-l:calc(var(--light-l) + var(--message-border-l-delta));--message-color-l:var(--light-on-scheme-l);--message-header-background-l:var(--light-l);--message-header-color-l:var(--light-invert-l)}.message.is-primary{--message-h:var(--primary-h);--message-s:var(--primary-s);--message-border-l:calc(var(--primary-l) + var(--message-border-l-delta));--message-color-l:var(--primary-on-scheme-l);--message-header-background-l:var(--primary-l);--message-header-color-l:var(--primary-invert-l)}.message.is-info{--message-h:var(--info-h);--message-s:var(--info-s);--message-border-l:calc(var(--info-l) + var(--message-border-l-delta));--message-color-l:var(--info-on-scheme-l);--message-header-background-l:var(--info-l);--message-header-color-l:var(--info-invert-l)}.message.is-success{--message-h:var(--success-h);--message-s:var(--success-s);--message-border-l:calc(var(--success-l) + var(--message-border-l-delta));--message-color-l:var(--success-on-scheme-l);--message-header-background-l:var(--success-l);--message-header-color-l:var(--success-invert-l)}.message.is-warning{--message-h:var(--warning-h);--message-s:var(--warning-s);--message-border-l:calc(var(--warning-l) + var(--message-border-l-delta));--message-color-l:var(--warning-on-scheme-l);--message-header-background-l:var(--warning-l);--message-header-color-l:var(--warning-invert-l)}.message.is-danger{--message-h:var(--danger-h);--message-s:var(--danger-s);--message-border-l:calc(var(--danger-l) + var(--message-border-l-delta));--message-color-l:var(--danger-on-scheme-l);--message-header-background-l:var(--danger-l);--message-header-color-l:var(--danger-invert-l)}.message-header{align-items:center;background-color:hsl(var(--message-h),var(--message-s),var(--message-header-background-l));border-start-end-radius:var(--message-header-radius);border-start-start-radius:var(--message-header-radius);color:hsl(var(--message-h),var(--message-s),var(--message-header-color-l));display:flex;font-weight:var(--message-header-weight);justify-content:space-between;line-height:1.25;padding:var(--message-header-padding);position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-inline-start:.75em}.message-header+.message-body{border-start-end-radius:0;border-start-start-radius:0;border-width:var(--message-header-body-border-width)}.message-body{background-color:hsl(var(--message-h),var(--message-s),var(--message-background-l));border-inline-start-color:hsl(var(--message-h),var(--message-s),var(--message-border-l));border-inline-start-style:var(--message-border-style);border-inline-start-width:var(--message-border-width);border-radius:var(--message-body-radius);padding:var(--message-body-padding)}.message-body code,.message-body pre{background-color:hsl(var(--message-h),var(--message-s),var(--message-header-color-l));color:hsl(var(--message-h),var(--message-s),var(--message-header-background-l))}.message-body pre code{background-color:var(--message-body-pre-code-background-color)}.modal{--modal-z:40;--modal-background-background-color:hsla(var(--scheme-h),var(--scheme-s),var(--scheme-invert-l),0.86);--modal-content-width:40rem;--modal-content-margin-mobile:1.25rem;--modal-content-spacing-mobile:10rem;--modal-content-spacing-tablet:2.5rem;--modal-close-dimensions:2.5rem;--modal-close-right:1.25rem;--modal-close-top:1.25rem;--modal-card-spacing:2.5rem;--modal-card-head-background-color:var(--scheme-main);--modal-card-head-padding:2rem;--modal-card-head-radius:var(--radius-large);--modal-card-title-color:var(--text-strong);--modal-card-title-line-height:1;--modal-card-title-size:var(--size-4);--modal-card-foot-background-color:var(--scheme-main-bis);--modal-card-foot-radius:var(--radius-large);--modal-card-body-background-color:var(--scheme-main);--modal-card-body-padding:2rem;align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:var(--modal-z)}.modal.is-active{display:flex}:root{--navbar-height:3.25rem}.navbar{--navbar-h:var(--scheme-h);--navbar-s:var(--scheme-s);--navbar-l:var(--scheme-main-l);--navbar-background-color:var(--scheme-main);--navbar-box-shadow-size:0 0.125em 0 0;--navbar-box-shadow-color:var(--background);--navbar-padding-vertical:1rem;--navbar-padding-horizontal:2rem;--navbar-z:30;--navbar-fixed-z:30;--navbar-item-background-a:0;--navbar-item-background-l:var(--scheme-main-l);--navbar-item-background-l-delta:0%;--navbar-item-hover-background-l-delta:var(--hover-background-l-delta);--navbar-item-active-background-l-delta:var(--active-background-l-delta);--navbar-item-color-l:var(--text-l);--navbar-item-selected-h:var(--link-h);--navbar-item-selected-s:var(--link-s);--navbar-item-selected-l:var(--link-l);--navbar-item-selected-background-l:var(--link-l);--navbar-item-selected-color-l:var(--link-invert-l);--navbar-item-img-max-height:1.75rem;--navbar-burger-color:var(--navbar-item-color);--navbar-tab-hover-background-color:transparent;--navbar-tab-hover-border-bottom-color:var(--link);--navbar-tab-active-color:var(--link);--navbar-tab-active-background-color:transparent;--navbar-tab-active-border-bottom-color:var(--link);--navbar-tab-active-border-bottom-style:solid;--navbar-tab-active-border-bottom-width:0.1875em;--navbar-dropdown-background-color:var(--scheme-main);--navbar-dropdown-border-l:var(--border-l);--navbar-dropdown-border-color:hsl(var(--navbar-h),var(--navbar-s),var(--navbar-dropdown-border-l));--navbar-dropdown-border-style:solid;--navbar-dropdown-border-width:0.125em;--navbar-dropdown-offset:-0.25em;--navbar-dropdown-arrow:var(--link);--navbar-dropdown-radius:var(--radius-large);--navbar-dropdown-z:20;--navbar-dropdown-boxed-radius:var(--radius-large);--navbar-dropdown-boxed-shadow:0 0.5em 0.5em hsla(var(--scheme-h),var(--scheme-s),var(--scheme-invert-l),0.1),0 0 0 1px hsla(var(--scheme-h),var(--scheme-s),var(--scheme-invert-l),0.1);--navbar-dropdown-item-h:var(--scheme-h);--navbar-dropdown-item-s:var(--scheme-s);--navbar-dropdown-item-l:var(--scheme-main-l);--navbar-dropdown-item-background-l:var(--scheme-main-l);--navbar-dropdown-item-color-l:var(--text-l);--navbar-divider-background-l:var(--background-l);--navbar-divider-height:0.125em;--navbar-bottom-box-shadow-size:0 -0.125em 0 0;background-color:var(--navbar-background-color);min-height:var(--navbar-height);position:relative;z-index:var(--navbar-z)}.navbar.is-light{--navbar-h:var(--light-h);--navbar-s:var(--light-s);--navbar-l:var(--light-l);--burger-h:var(--light-h);--burger-s:var(--light-s);--burger-l:var(--light-invert-l);--navbar-background-color:var(--light);--navbar-item-background-l:var(--light-l);--navbar-item-color-l:var(--light-invert-l);--navbar-item-selected-h:var(--light-h);--navbar-item-selected-s:var(--light-s);--navbar-item-selected-l:var(--light-l);--navbar-item-selected-background-l:var(--light-l);--navbar-item-selected-color-l:var(--light-invert-l);--navbar-dropdown-arrow:var(--light-invert-l);--navbar-dropdown-background-color:hsl(var(--light-h),var(--light-s),var(--navbar-dropdown-item-background-l));--navbar-dropdown-item-h:var(--light-h);--navbar-dropdown-item-s:var(--light-s)}.navbar.is-primary{--navbar-h:var(--primary-h);--navbar-s:var(--primary-s);--navbar-l:var(--primary-l);--burger-h:var(--primary-h);--burger-s:var(--primary-s);--burger-l:var(--primary-invert-l);--navbar-background-color:var(--primary);--navbar-item-background-l:var(--primary-l);--navbar-item-color-l:var(--primary-invert-l);--navbar-item-selected-h:var(--primary-h);--navbar-item-selected-s:var(--primary-s);--navbar-item-selected-l:var(--primary-l);--navbar-item-selected-background-l:var(--primary-l);--navbar-item-selected-color-l:var(--primary-invert-l);--navbar-dropdown-arrow:var(--primary-invert-l);--navbar-dropdown-background-color:hsl(var(--primary-h),var(--primary-s),var(--navbar-dropdown-item-background-l));--navbar-dropdown-item-h:var(--primary-h);--navbar-dropdown-item-s:var(--primary-s)}.navbar.is-info{--navbar-h:var(--info-h);--navbar-s:var(--info-s);--navbar-l:var(--info-l);--burger-h:var(--info-h);--burger-s:var(--info-s);--burger-l:var(--info-invert-l);--navbar-background-color:var(--info);--navbar-item-background-l:var(--info-l);--navbar-item-color-l:var(--info-invert-l);--navbar-item-selected-h:var(--info-h);--navbar-item-selected-s:var(--info-s);--navbar-item-selected-l:var(--info-l);--navbar-item-selected-background-l:var(--info-l);--navbar-item-selected-color-l:var(--info-invert-l);--navbar-dropdown-arrow:var(--info-invert-l);--navbar-dropdown-background-color:hsl(var(--info-h),var(--info-s),var(--navbar-dropdown-item-background-l));--navbar-dropdown-item-h:var(--info-h);--navbar-dropdown-item-s:var(--info-s)}.navbar.is-success{--navbar-h:var(--success-h);--navbar-s:var(--success-s);--navbar-l:var(--success-l);--burger-h:var(--success-h);--burger-s:var(--success-s);--burger-l:var(--success-invert-l);--navbar-background-color:var(--success);--navbar-item-background-l:var(--success-l);--navbar-item-color-l:var(--success-invert-l);--navbar-item-selected-h:var(--success-h);--navbar-item-selected-s:var(--success-s);--navbar-item-selected-l:var(--success-l);--navbar-item-selected-background-l:var(--success-l);--navbar-item-selected-color-l:var(--success-invert-l);--navbar-dropdown-arrow:var(--success-invert-l);--navbar-dropdown-background-color:hsl(var(--success-h),var(--success-s),var(--navbar-dropdown-item-background-l));--navbar-dropdown-item-h:var(--success-h);--navbar-dropdown-item-s:var(--success-s)}.navbar.is-warning{--navbar-h:var(--warning-h);--navbar-s:var(--warning-s);--navbar-l:var(--warning-l);--burger-h:var(--warning-h);--burger-s:var(--warning-s);--burger-l:var(--warning-invert-l);--navbar-background-color:var(--warning);--navbar-item-background-l:var(--warning-l);--navbar-item-color-l:var(--warning-invert-l);--navbar-item-selected-h:var(--warning-h);--navbar-item-selected-s:var(--warning-s);--navbar-item-selected-l:var(--warning-l);--navbar-item-selected-background-l:var(--warning-l);--navbar-item-selected-color-l:var(--warning-invert-l);--navbar-dropdown-arrow:var(--warning-invert-l);--navbar-dropdown-background-color:hsl(var(--warning-h),var(--warning-s),var(--navbar-dropdown-item-background-l));--navbar-dropdown-item-h:var(--warning-h);--navbar-dropdown-item-s:var(--warning-s)}.navbar.is-danger{--navbar-h:var(--danger-h);--navbar-s:var(--danger-s);--navbar-l:var(--danger-l);--burger-h:var(--danger-h);--burger-s:var(--danger-s);--burger-l:var(--danger-invert-l);--navbar-background-color:var(--danger);--navbar-item-background-l:var(--danger-l);--navbar-item-color-l:var(--danger-invert-l);--navbar-item-selected-h:var(--danger-h);--navbar-item-selected-s:var(--danger-s);--navbar-item-selected-l:var(--danger-l);--navbar-item-selected-background-l:var(--danger-l);--navbar-item-selected-color-l:var(--danger-invert-l);--navbar-dropdown-arrow:var(--danger-invert-l);--navbar-dropdown-background-color:hsl(var(--danger-h),var(--danger-s),var(--navbar-dropdown-item-background-l));--navbar-dropdown-item-h:var(--danger-h);--navbar-dropdown-item-s:var(--danger-s)}.navbar>.container{align-items:stretch;display:flex;min-height:var(--navbar-height);width:100%}.navbar.has-shadow{box-shadow:var(--navbar-box-shadow-size) var(--navbar-box-shadow-color)}.navbar-brand{align-items:stretch;display:flex;flex-shrink:0;min-height:var(--navbar-height)}.navbar-burger{align-items:center;align-self:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;border-radius:var(--burger-border-radius);color:hsl(var(--burger-h),var(--burger-s),var(--burger-l));cursor:pointer;display:inline-flex;flex-direction:column;flex-shrink:0;height:2.5rem;justify-content:center;margin-inline-end:.375rem;margin-inline-start:auto;position:relative;vertical-align:top;width:2.5rem}.navbar-burger span{background-color:currentColor;display:block;height:var(--burger-item-height);left:calc(50% - (var(--burger-item-width))/2);position:absolute;transform-origin:center;transition-duration:var(--duration);transition-property:background-color,color,opacity,transform;transition-timing-function:var(--easing);width:var(--burger-item-width)}.navbar-burger span:first-child,.navbar-burger span:nth-child(2){top:calc(50% - (var(--burger-item-height))/2)}.navbar-burger span:nth-child(3){bottom:calc(50% + var(--burger-gap))}.navbar-burger span:nth-child(4){top:calc(50% + var(--burger-gap))}.navbar-burger:hover{background-color:hsla(var(--burger-h),var(--burger-s),var(--burger-l),.1)}.navbar-burger:active{background-color:hsla(var(--burger-h),var(--burger-s),var(--burger-l),.2)}.navbar-burger.is-active span:first-child{transform:rotate(-45deg)}.navbar-burger.is-active span:nth-child(2){transform:rotate(45deg)}.navbar-burger.is-active span:nth-child(3),.navbar-burger.is-active span:nth-child(4){opacity:0}.navbar-menu{display:none}.navbar-item,.navbar-link{color:hsl(var(--navbar-h),var(--navbar-s),var(--navbar-item-color-l));display:block;line-height:1.5;padding:.5rem .75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-.25rem;margin-right:-.25rem}.navbar-link,a.navbar-item{background-color:hsla(var(--navbar-h),var(--navbar-s),calc(var(--navbar-item-background-l) + var(--navbar-item-background-l-delta)),var(--navbar-item-background-a));cursor:pointer}.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover{--navbar-item-background-l-delta:var(--navbar-item-hover-background-l-delta);--navbar-item-background-a:1}.navbar-link:active,a.navbar-item:active{--navbar-item-background-l-delta:var(--navbar-item-active-background-l-delta);--navbar-item-background-a:1}.navbar-link.is-active,a.navbar-item.is-active{--navbar-h:var(--navbar-item-selected-h);--navbar-s:var(--navbar-item-selected-s);--navbar-l:var(--navbar-item-selected-l);--navbar-item-background-l:var(--navbar-item-selected-background-l);--navbar-item-background-a:1;--navbar-item-color-l:var(--navbar-item-selected-color-l)}.navbar-item{flex-grow:0;flex-shrink:0}.navbar-item img,.navbar-item svg{max-height:var(--navbar-item-img-max-height)}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-inline-end:2.5em}.navbar-link:not(.is-arrowless):after{border-color:var(--navbar-dropdown-arrow);inset-inline-end:1.125em;margin-top:-.375em}.navbar-dropdown{font-size:.875rem;padding-bottom:.75rem;padding-top:.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-dropdown .navbar-item:not(.is-active,.is-selected){background-color:hsl(var(--navbar-dropdown-item-h),var(--navbar-dropdown-item-s),calc(var(--navbar-dropdown-item-background-l) + var(--navbar-item-background-l-delta)));color:hsl(var(--navbar-dropdown-item-h),var(--navbar-dropdown-item-s),var(--navbar-dropdown-item-color-l))}@media screen and (max-width:1023px){.navbar>.container{display:block}.navbar-brand .navbar-item{align-items:center;display:flex}.navbar-link:after{display:none}.navbar-menu{background-color:var(--navbar-background-color);box-shadow:0 .5em 1em hsla(var(--scheme-h),var(--scheme-s),var(--scheme-invert-l),.1);padding:.5rem 0}.navbar-menu.is-active{display:block}}@media screen and (min-width:1024px){.navbar,.navbar-end,.navbar-menu,.navbar-start{align-items:stretch;display:flex}.navbar{min-height:var(--navbar-height)}.navbar.is-transparent{--navbar-item-background-a:0}.navbar.is-transparent .navbar-dropdown a.navbar-item{background-color:hsl(var(--navbar-h),var(--navbar-s),calc(var(--navbar-item-background-l) + var(--navbar-item-background-l-delta)))}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{--navbar-h:var(--navbar-item-selected-h);--navbar-s:var(--navbar-item-selected-s);--navbar-l:var(--navbar-item-selected-l);--navbar-item-background-l:var(--navbar-item-selected-background-l);--navbar-item-color-l:var(--navbar-item-selected-color-l)}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-inline-end:auto}.navbar-end{justify-content:flex-end;margin-inline-start:auto}.navbar-dropdown{background-color:var(--navbar-dropdown-background-color);border-bottom-left-radius:var(--navbar-dropdown-radius);border-bottom-right-radius:var(--navbar-dropdown-radius);border-top:var(--navbar-dropdown-border-width) var(--navbar-dropdown-border-style) var(--navbar-dropdown-border-color);box-shadow:0 .5em .5em hsla(var(--scheme-h),var(--scheme-s),var(--scheme-invert-l),.1);display:none;font-size:.875rem;inset-inline-start:0;min-width:100%;position:absolute;top:100%;z-index:var(--navbar-dropdown-z)}.navbar-dropdown .navbar-item{padding:.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-inline-end:3rem}.navbar-dropdown a.navbar-item:not(.is-active,.is-selected){background-color:hsl(var(--navbar-dropdown-item-h),var(--navbar-dropdown-item-s),calc(var(--navbar-dropdown-item-background-l) + var(--navbar-item-background-l-delta)));color:hsl(var(--navbar-dropdown-item-h),var(--navbar-dropdown-item-s),var(--navbar-dropdown-item-color-l))}.navbar-dropdown.is-boxed{border-radius:var(--navbar-dropdown-boxed-radius);border-top:none;box-shadow:var(--navbar-dropdown-boxed-shadow);display:block;opacity:0;pointer-events:none;top:calc(100% + var(--navbar-dropdown-offset));transform:translateY(-5px);transition-duration:var(--duration);transition-property:opacity,transform}.container>.navbar .navbar-brand,.navbar>.container .navbar-brand{margin-inline-start:-.75rem}.container>.navbar .navbar-menu,.navbar>.container .navbar-menu{margin-inline-end:-.75rem}}.pagination{--pagination-margin:-0.25rem;--pagination-min-width:var(--control-height);--pagination-item-h:var(--scheme-h);--pagination-item-s:var(--scheme-s);--pagination-item-l:var(--scheme-main-l);--pagination-item-background-l-delta:0%;--pagination-item-hover-background-l-delta:var(--hover-background-l-delta);--pagination-item-active-background-l-delta:var(--active-background-l-delta);--pagination-item-border-style:solid;--pagination-item-border-width:var(--control-border-width);--pagination-item-border-l:var(--border-l);--pagination-item-border-l-delta:0%;--pagination-item-hover-border-l-delta:var(--hover-border-l-delta);--pagination-item-active-border-l-delta:var(--active-border-l-delta);--pagination-item-focus-border-l-delta:var(--focus-border-l-delta);--pagination-item-color-l:var(--text-strong-l);--pagination-item-font-size:1em;--pagination-item-margin:0.25rem;--pagination-item-padding-left:0.5em;--pagination-item-padding-right:0.5em;--pagination-item-outer-shadow-h:0;--pagination-item-outer-shadow-s:0%;--pagination-item-outer-shadow-l:20%;--pagination-item-outer-shadow-a:0.05;--pagination-nav-padding-left:0.75em;--pagination-nav-padding-right:0.75em;--pagination-disabled-color:var(--text-weak);--pagination-disabled-background-color:var(--border);--pagination-disabled-border-color:var(--border);--pagination-current-color:var(--link-invert);--pagination-current-background-color:var(--link);--pagination-current-border-color:var(--link);--pagination-ellipsis-color:var(--text-weak);--pagination-shadow-inset:inset 0 0.0625em 0.125em hsla(var(--scheme-h),var(--scheme-s),var(--scheme-invert-l),0.2);--pagination-selected-item-h:var(--link-h);--pagination-selected-item-s:var(--link-s);--pagination-selected-item-l:var(--link-l);--pagination-selected-item-background-l:var(--link-l);--pagination-selected-item-border-l:var(--link-l);--pagination-selected-item-color-l:var(--link-invert-l);font-size:var(--size-normal);margin:var(--pagination-margin)}.pagination.is-small{font-size:var(--size-small)}.pagination.is-medium{font-size:var(--size-medium)}.pagination.is-large{font-size:var(--size-large)}.pagination.is-rounded .pagination-link{border-radius:var(--radius-rounded)}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-link{color:hsl(var(--pagination-item-h),var(--pagination-item-s),var(--pagination-item-color-l));font-size:var(--pagination-item-font-size);justify-content:center;margin:var(--pagination-item-margin);padding-left:var(--pagination-item-padding-left);padding-right:var(--pagination-item-padding-right);text-align:center}.pagination-link{background-color:hsl(var(--pagination-item-h),var(--pagination-item-s),calc(var(--pagination-item-background-l) + var(--pagination-item-background-l-delta)));border-color:hsl(var(--pagination-item-h),var(--pagination-item-s),calc(var(--pagination-item-border-l) + var(--pagination-item-border-l-delta)));border-style:var(--pagination-item-border-style);border-width:var(--pagination-item-border-width);box-shadow:0 .0625em .125em hsla(var(--pagination-item-outer-shadow-h),var(--pagination-item-outer-shadow-s),var(--pagination-item-outer-shadow-l),var(--pagination-item-outer-shadow-a)),0 .125em .25em hsla(var(--pagination-item-outer-shadow-h),var(--pagination-item-outer-shadow-s),var(--pagination-item-outer-shadow-l),var(--pagination-item-outer-shadow-a));color:hsl(var(--pagination-item-h),var(--pagination-item-s),var(--pagination-item-color-l));min-width:var(--pagination-min-width);transition-duration:var(--duration);transition-property:background-color,border-color,box-shadow,color}.pagination-link:focus,.pagination-link:hover{--pagination-item-background-l-delta:var(--pagination-item-hover-background-l-delta);--pagination-item-border-l-delta:var(--pagination-item-hover-border-l-delta)}.pagination-link:active{box-shadow:var(--pagination-shadow-inset)}.pagination-link.is-disabled,.pagination-link[disabled]{background-color:var(--pagination-disabled-background-color);border-color:var(--pagination-disabled-border-color);box-shadow:none;color:var(--pagination-disabled-color);opacity:.5}.pagination-link.is-current{--pagination-item-h:var(--pagination-selected-item-h);--pagination-item-s:var(--pagination-selected-item-s);--pagination-item-l:var(--pagination-selected-item-l);--pagination-item-background-l:var(--pagination-selected-item-background-l);--pagination-item-border-l:var(--pagination-selected-item-border-l);--pagination-item-color-l:var(--pagination-selected-item-color-l)}.pagination-list{flex-wrap:wrap}.pagination-list li{list-style:none}@media screen and (max-width:768px){.pagination{flex-wrap:wrap}.pagination-list li{flex-grow:1;flex-shrink:1}}@media print,screen and (min-width:769px){.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-link{margin-bottom:0;margin-top:0}.pagination{justify-content:space-between;margin-bottom:0;margin-top:0}.pagination.is-centered .pagination-list{justify-content:center;order:2}}.panel{--panel-margin:var(--block-spacing);--panel-item-border:1px solid var(--border-weak);--panel-radius:var(--radius-large);--panel-shadow:var(--shadow);--panel-heading-line-height:1.25;--panel-heading-padding:1em 1.25em;--panel-heading-radius:var(--radius);--panel-heading-size:1.25em;--panel-heading-weight:var(--weight-bold);--panel-tabs-font-size:1em;--panel-tab-border-bottom-color:var(--border);--panel-tab-border-bottom-style:solid;--panel-tab-border-bottom-width:1px;--panel-tab-active-color:var(--link-active);--panel-list-item-color:var(--text);--panel-list-item-hover-color:var(--link);--panel-block-color:var(--text-strong);--panel-block-hover-background-color:var(--background);--panel-block-active-border-left-color:var(--link);--panel-block-active-color:var(--link-active);--panel-block-active-icon-color:var(--link);--panel-icon-color:var(--text-weak);--panel-h:var(--scheme-h);--panel-s:var(--scheme-s);--panel-color-l:var(--text-l);--panel-heading-background-l:var(--text-l);--panel-heading-color-l:var(--text-invert-l);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);font-size:var(--size-normal)}.panel:not(:last-child){margin-bottom:var(--panel-margin)}.panel.is-light{--panel-h:var(--light-h);--panel-s:var(--light-s);--panel-color-l:var(--light-l);--panel-heading-background-l:var(--light-l);--panel-heading-color-l:var(--light-invert-l)}.panel.is-primary{--panel-h:var(--primary-h);--panel-s:var(--primary-s);--panel-color-l:var(--primary-l);--panel-heading-background-l:var(--primary-l);--panel-heading-color-l:var(--primary-invert-l)}.panel.is-info{--panel-h:var(--info-h);--panel-s:var(--info-s);--panel-color-l:var(--info-l);--panel-heading-background-l:var(--info-l);--panel-heading-color-l:var(--info-invert-l)}.panel.is-success{--panel-h:var(--success-h);--panel-s:var(--success-s);--panel-color-l:var(--success-l);--panel-heading-background-l:var(--success-l);--panel-heading-color-l:var(--success-invert-l)}.panel.is-warning{--panel-h:var(--warning-h);--panel-s:var(--warning-s);--panel-color-l:var(--warning-l);--panel-heading-background-l:var(--warning-l);--panel-heading-color-l:var(--warning-invert-l)}.panel.is-danger{--panel-h:var(--danger-h);--panel-s:var(--danger-s);--panel-color-l:var(--danger-l);--panel-heading-background-l:var(--danger-l);--panel-heading-color-l:var(--danger-invert-l)}.panel-block:not(:last-child){border-bottom:var(--panel-item-border)}.panel-block{align-items:center;color:var(--panel-block-color);display:flex;justify-content:flex-start;padding:.75em 1em}.panel-block input[type=checkbox]{margin-inline-end:.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-active{border-left-color:var(--panel-block-active-border-left-color);color:var(--panel-block-active-color)}.panel-block:last-child{border-bottom-left-radius:var(--panel-radius);border-bottom-right-radius:var(--panel-radius)}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:var(--panel-block-hover-background-color)}.tabs{--tabs-border-bottom-color:var(--border);--tabs-border-bottom-style:solid;--tabs-border-bottom-width:1px;--tabs-link-color:var(--text);--tabs-link-hover-border-bottom-color:var(--text-strong);--tabs-link-hover-color:var(--text-strong);--tabs-link-active-border-bottom-color:var(--link-text);--tabs-link-active-color:var(--link-text);--tabs-link-padding:0.5em 1em;--tabs-boxed-link-radius:var(--radius);--tabs-boxed-link-hover-background-color:var(--background);--tabs-boxed-link-hover-border-bottom-color:var(--border);--tabs-boxed-link-active-background-color:var(--scheme-main);--tabs-boxed-link-active-border-color:var(--border);--tabs-boxed-link-active-border-bottom-color:transparent;--tabs-toggle-link-border-color:var(--border);--tabs-toggle-link-border-style:solid;--tabs-toggle-link-border-width:1px;--tabs-toggle-link-hover-background-color:var(--background);--tabs-toggle-link-hover-border-color:var(--border-hover);--tabs-toggle-link-radius:var(--radius);--tabs-toggle-link-active-background-color:var(--link);--tabs-toggle-link-active-border-color:var(--link);--tabs-toggle-link-active-color:var(--link-invert);-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:var(--size-normal);justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom:var(--tabs-border-bottom-width) var(--tabs-border-bottom-style) var(--tabs-border-bottom-color);color:var(--tabs-link-color);display:flex;justify-content:center;margin-bottom:calc(var(--tabs-border-bottom-width)*-1);padding:var(--tabs-link-padding);transition-duration:var(--duration);transition-property:background-color,border-color,color;vertical-align:top}.tabs a:hover{border-bottom-color:var(--tabs-link-hover-border-bottom-color);color:var(--tabs-link-hover-color)}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:var(--tabs-link-active-border-bottom-color);color:var(--tabs-link-active-color)}.tabs ul{align-items:center;border-bottom:var(--tabs-border-bottom-width) var(--tabs-border-bottom-style) var(--tabs-border-bottom-color);display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:.75em}.tabs .icon:first-child{margin-inline-end:.5em}.tabs .icon:last-child{margin-inline-start:.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-boxed a{border:1px solid transparent;border-start-end-radius:var(--tabs-boxed-link-radius);border-start-start-radius:var(--tabs-boxed-link-radius)}.tabs.is-boxed a:hover{background-color:var(--tabs-boxed-link-hover-background-color);border-bottom-color:var(--tabs-boxed-link-hover-border-bottom-color)}.tabs.is-boxed li.is-active a{background-color:var(--tabs-boxed-link-active-background-color);border-color:var(--tabs-boxed-link-active-border-color);border-bottom-color:var(--tabs-boxed-link-active-border-bottom-color)!important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-small{font-size:var(--size-small)}.tabs.is-medium{font-size:var(--size-medium)}.tabs.is-large{font-size:var(--size-large)}.container{flex-grow:1;margin:0 auto;position:relative;width:100%}@media screen and (min-width:1024px){.container{max-width:960px}}@media screen and (min-width:1216px){.container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width:1408px){.container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}.footer{--footer-background-color:var(--scheme-main-bis);--footer-color:false;--footer-padding:3rem 1.5rem 6rem;background-color:var(--footer-background-color);padding:var(--footer-padding)}.level{--level-item-spacing:calc(var(--block-spacing)*0.5);align-items:center;display:flex;flex-direction:column;gap:var(--level-item-spacing);justify-content:space-between}.level code{border-radius:var(--radius)}.level img{display:inline-block;vertical-align:top}@media print,screen and (min-width:769px){.level{display:flex;flex-direction:row}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .subtitle,.level-item .title{margin-bottom:0}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0;gap:calc(var(--block-spacing)*.5)}.level-left{align-items:center;display:flex;flex-direction:column;justify-content:flex-start}@media print,screen and (min-width:769px){.level-left{flex-direction:row}}.level-right{align-items:center;display:flex;flex-direction:column;justify-content:flex-end}@media print,screen and (min-width:769px){.level-right{flex-direction:row}}.section{--section-padding:3rem 1.5rem;--section-padding-desktop:3rem 3rem;--section-padding-medium:9rem 4.5rem;--section-padding-large:18rem 6rem;padding:var(--section-padding)}@media screen and (min-width:1024px){.section{padding:var(--section-padding-desktop)}.section.is-medium{padding:var(--section-padding-medium)}.section.is-large{padding:var(--section-padding-large)}}.control,.input,.select,.textarea{--input-h:var(--scheme-h);--input-s:var(--scheme-s);--input-l:var(--scheme-main-l);--input-border-l:var(--border-l);--input-border-l-delta:0%;--input-hover-border-l-delta:var(--hover-border-l-delta);--input-active-border-l-delta:var(--active-border-l-delta);--input-focus-h:var(--focus-h);--input-focus-s:var(--focus-s);--input-focus-l:var(--focus-l);--input-focus-shadow-size:var(--focus-shadow-size);--input-focus-shadow-alpha:var(--focus-shadow-alpha);--input-color-l:var(--text-strong-l);--input-background-l:var(--scheme-main-l);--input-background-l-delta:0%;--input-height:var(--control-height);--input-shadow:inset 0 0.0625em 0.125em hsla(var(--scheme-h),var(--scheme-s),var(--scheme-invert-l),0.05);--input-placeholder-color:hsla(var(--text-h),var(--text-s),var(--text-strong-l),0.3);--input-disabled-color:var(--text-weak);--input-disabled-background-color:var(--background);--input-disabled-border-color:var(--background);--input-disabled-placeholder-color:hsla(var(--text-h),var(--text-s),var(--text-weak-l),0.3);--input-arrow:var(--link);--input-icon-color:var(--text-light);--input-icon-hover-color:var(--text-weak);--input-icon-focus-color:var(--link);--input-radius:var(--radius)}.input,.select select,.textarea{background-color:hsl(var(--input-h),var(--input-s),calc(var(--input-background-l) + var(--input-background-l-delta)));border-color:hsl(var(--input-h),var(--input-s),calc(var(--input-border-l) + var(--input-border-l-delta)));border-radius:var(--input-radius);color:hsl(var(--input-h),var(--input-s),var(--input-color-l))}.input::-moz-placeholder,.select select::-moz-placeholder,.textarea::-moz-placeholder{color:var(--input-placeholder-color)}.input::-webkit-input-placeholder,.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder{color:var(--input-placeholder-color)}.input:-moz-placeholder,.select select:-moz-placeholder,.textarea:-moz-placeholder{color:var(--input-placeholder-color)}.input:-ms-input-placeholder,.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder{color:var(--input-placeholder-color)}.input:hover,.select select:hover,.textarea:hover{--input-border-l-delta:var(--input-hover-border-l-delta)}.input:active,.is-active.input,.is-active.textarea,.select select.is-active,.select select:active,.textarea:active{--input-border-l-delta:var(--input-active-border-l-delta)}.input:focus,.input:focus-within,.select select:focus,.select select:focus-within,.textarea:focus,.textarea:focus-within{border-color:hsl(var(--input-focus-h),var(--input-focus-s),var(--input-focus-l));box-shadow:var(--input-focus-shadow-size) hsla(var(--input-focus-h),var(--input-focus-s),var(--input-focus-l),var(--input-focus-shadow-alpha))}.select select[disabled],[disabled].input,[disabled].textarea{background-color:var(--input-disabled-background-color);border-color:var(--input-disabled-border-color);box-shadow:none;color:var(--input-disabled-color)}.select select[disabled]::-moz-placeholder,[disabled].input::-moz-placeholder,[disabled].textarea::-moz-placeholder{color:var(--input-disabled-placeholder-color)}.select select[disabled]::-webkit-input-placeholder,[disabled].input::-webkit-input-placeholder,[disabled].textarea::-webkit-input-placeholder{color:var(--input-disabled-placeholder-color)}.select select[disabled]:-moz-placeholder,[disabled].input:-moz-placeholder,[disabled].textarea:-moz-placeholder{color:var(--input-disabled-placeholder-color)}.select select[disabled]:-ms-input-placeholder,[disabled].input:-ms-input-placeholder,[disabled].textarea:-ms-input-placeholder{color:var(--input-disabled-placeholder-color)}.input,.textarea{--input-h:var(--scheme-h);--input-s:var(--scheme-s);--input-border-style:solid;--input-border-width:1px;--input-border-l:var(--border-l);box-shadow:inset 0 .0625em .125em hsla(var(--scheme-h),var(--scheme-s),var(--scheme-invert-l),.05);max-width:100%;width:100%}[readonly].input,[readonly].textarea{box-shadow:none}.is-light.input,.is-light.textarea{--input-h:var(--light-h);--input-s:var(--light-s);--input-l:var(--light-l);--input-focus-h:var(--light-h);--input-focus-s:var(--light-s);--input-focus-l:var(--light-l);--input-border-l:var(--light-l)}.is-primary.input,.is-primary.textarea{--input-h:var(--primary-h);--input-s:var(--primary-s);--input-l:var(--primary-l);--input-focus-h:var(--primary-h);--input-focus-s:var(--primary-s);--input-focus-l:var(--primary-l);--input-border-l:var(--primary-l)}.is-info.input,.is-info.textarea{--input-h:var(--info-h);--input-s:var(--info-s);--input-l:var(--info-l);--input-focus-h:var(--info-h);--input-focus-s:var(--info-s);--input-focus-l:var(--info-l);--input-border-l:var(--info-l)}.is-success.input,.is-success.textarea{--input-h:var(--success-h);--input-s:var(--success-s);--input-l:var(--success-l);--input-focus-h:var(--success-h);--input-focus-s:var(--success-s);--input-focus-l:var(--success-l);--input-border-l:var(--success-l)}.is-warning.input,.is-warning.textarea{--input-h:var(--warning-h);--input-s:var(--warning-s);--input-l:var(--warning-l);--input-focus-h:var(--warning-h);--input-focus-s:var(--warning-s);--input-focus-l:var(--warning-l);--input-border-l:var(--warning-l)}.is-danger.input,.is-danger.textarea{--input-h:var(--danger-h);--input-s:var(--danger-s);--input-l:var(--danger-l);--input-focus-h:var(--danger-h);--input-focus-s:var(--danger-s);--input-focus-l:var(--danger-l);--input-border-l:var(--danger-l)}.is-small.input,.is-small.textarea{border-radius:var(--radius-small);font-size:var(--size-small)}.is-medium.input,.is-medium.textarea{font-size:var(--size-medium)}.is-large.input,.is-large.textarea{font-size:var(--size-large)}.is-fullwidth.input,.is-fullwidth.textarea{display:block;width:100%}.is-inline.input,.is-inline.textarea{display:inline;width:auto}.input.is-rounded{border-radius:var(--radius-rounded);padding-left:calc(1.125em - 1px);padding-right:calc(1.125em - 1px)}.textarea{--textarea-padding:var(--control-padding-horizontal);--textarea-max-height:40em;--textarea-min-height:8em;display:block;max-width:100%;min-width:100%;padding:var(--textarea-padding);resize:vertical}.textarea:not([rows]){max-height:var(--textarea-max-height);min-height:var(--textarea-min-height)}.textarea[rows]{height:auto}.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.checkbox input{cursor:pointer}.checkbox input[disabled],[disabled].checkbox{color:var(--text-weak);cursor:not-allowed}.select{--input-h:var(--scheme-h);--input-s:var(--scheme-s);--input-border-style:solid;--input-border-width:1px;--input-border-l:var(--border-l);display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:var(--control-height)}.select:not(.is-multiple):not(.is-loading):after{inset-inline-end:1.125em;z-index:4}.select.is-rounded select{border-radius:var(--radius-rounded);padding-inline-start:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover{border-color:var(--background)}.select select:not([multiple]){padding-inline-end:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:.5em 1em}.select.is-light{--input-h:var(--light-h);--input-s:var(--light-s);--input-l:var(--light-l);--input-focus-h:var(--light-h);--input-focus-s:var(--light-s);--input-focus-l:var(--light-l);--input-border-l:var(--light-l);--arrow-color:var(--light)}.select.is-primary{--input-h:var(--primary-h);--input-s:var(--primary-s);--input-l:var(--primary-l);--input-focus-h:var(--primary-h);--input-focus-s:var(--primary-s);--input-focus-l:var(--primary-l);--input-border-l:var(--primary-l);--arrow-color:var(--primary)}.select.is-info{--input-h:var(--info-h);--input-s:var(--info-s);--input-l:var(--info-l);--input-focus-h:var(--info-h);--input-focus-s:var(--info-s);--input-focus-l:var(--info-l);--input-border-l:var(--info-l);--arrow-color:var(--info)}.select.is-success{--input-h:var(--success-h);--input-s:var(--success-s);--input-l:var(--success-l);--input-focus-h:var(--success-h);--input-focus-s:var(--success-s);--input-focus-l:var(--success-l);--input-border-l:var(--success-l);--arrow-color:var(--success)}.select.is-warning{--input-h:var(--warning-h);--input-s:var(--warning-s);--input-l:var(--warning-l);--input-focus-h:var(--warning-h);--input-focus-s:var(--warning-s);--input-focus-l:var(--warning-l);--input-border-l:var(--warning-l);--arrow-color:var(--warning)}.select.is-danger{--input-h:var(--danger-h);--input-s:var(--danger-s);--input-l:var(--danger-l);--input-focus-h:var(--danger-h);--input-focus-s:var(--danger-s);--input-focus-l:var(--danger-l);--input-border-l:var(--danger-l);--arrow-color:var(--danger)}.select.is-small{border-radius:var(--radius-small);font-size:var(--size-small)}.select.is-medium{font-size:var(--size-medium)}.select.is-large{font-size:var(--size-large)}.select.is-disabled:after{border-color:var(--text-weak)!important;opacity:.5}.select.is-fullwidth,.select.is-fullwidth select{width:100%}.file{--file-radius:var(--radius);--file-name-border-color:var(--border);--file-name-border-style:solid;--file-name-border-width:1px 1px 1px 0;--file-name-max-width:16em;--file-h:var(--scheme-h);--file-s:var(--scheme-s);--file-background-l:var(--scheme-main-ter-l);--file-background-l-delta:0%;--file-hover-background-l-delta:-5%;--file-active-background-l-delta:-10%;--file-border-l:var(--border-l);--file-border-l-delta:0%;--file-hover-border-l-delta:-10%;--file-active-border-l-delta:-20%;--file-cta-color-l:var(--text-strong-l);--file-name-color-l:var(--text-strong-l);--file-color-l-delta:0%;--file-hover-color-l-delta:-5%;--file-active-color-l-delta:-10%;align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-light{--file-h:var(--light-h);--file-s:var(--light-s);--file-background-l:var(--light-l);--file-border-l:var(--light-l);--file-cta-color-l:var(--light-invert-l);--file-name-color-l:var(--light-on-scheme-l)}.file.is-primary{--file-h:var(--primary-h);--file-s:var(--primary-s);--file-background-l:var(--primary-l);--file-border-l:var(--primary-l);--file-cta-color-l:var(--primary-invert-l);--file-name-color-l:var(--primary-on-scheme-l)}.file.is-info{--file-h:var(--info-h);--file-s:var(--info-s);--file-background-l:var(--info-l);--file-border-l:var(--info-l);--file-cta-color-l:var(--info-invert-l);--file-name-color-l:var(--info-on-scheme-l)}.file.is-success{--file-h:var(--success-h);--file-s:var(--success-s);--file-background-l:var(--success-l);--file-border-l:var(--success-l);--file-cta-color-l:var(--success-invert-l);--file-name-color-l:var(--success-on-scheme-l)}.file.is-warning{--file-h:var(--warning-h);--file-s:var(--warning-s);--file-background-l:var(--warning-l);--file-border-l:var(--warning-l);--file-cta-color-l:var(--warning-invert-l);--file-name-color-l:var(--warning-on-scheme-l)}.file.is-danger{--file-h:var(--danger-h);--file-s:var(--danger-s);--file-background-l:var(--danger-l);--file-border-l:var(--danger-l);--file-cta-color-l:var(--danger-invert-l);--file-name-color-l:var(--danger-on-scheme-l)}.file.is-small{font-size:var(--size-small)}.file.is-medium{font-size:var(--size-medium)}.file.is-large{font-size:var(--size-large)}.file.is-centered{justify-content:center}.label{color:var(--text-strong);display:block;font-size:var(--size-normal);font-weight:var(--weight-semibold)}.label:not(:last-child){margin-bottom:.5em}.label.is-small{font-size:var(--size-small)}.label.is-medium{font-size:var(--size-medium)}.label.is-large{font-size:var(--size-large)}.help{display:block;font-size:var(--size-small);margin-top:.25rem}.help.is-light{color:hsl(var(--light-h),var(--light-s),var(--light-on-scheme-l))}.help.is-primary{color:hsl(var(--primary-h),var(--primary-s),var(--primary-on-scheme-l))}.help.is-info{color:hsl(var(--info-h),var(--info-s),var(--info-on-scheme-l))}.help.is-success{color:hsl(var(--success-h),var(--success-s),var(--success-on-scheme-l))}.help.is-warning{color:hsl(var(--warning-h),var(--warning-s),var(--warning-on-scheme-l))}.help.is-danger{color:hsl(var(--danger-h),var(--danger-s),var(--danger-on-scheme-l))}.field{--block-spacing:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-inline-end:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):hover{z-index:2}.field.has-addons .control .button:not([disabled]).is-active,.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .input:not([disabled]).is-active,.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control .select select:not([disabled]).is-active,.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select:not([disabled]):focus{z-index:3}.field.has-addons .control .button:not([disabled]).is-active:hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .input:not([disabled]).is-active:hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control .select select:not([disabled]).is-active:hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select:not([disabled]):focus:hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped{display:flex;gap:.75rem;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}@media print,screen and (min-width:769px){.field.is-horizontal{display:flex}}.field-body .field .field{margin-bottom:0}@media print,screen and (min-width:769px){.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-inline-end:.75rem}}.control{box-sizing:border-box;clear:both;font-size:var(--size-normal);position:relative;text-align:inherit}.control.has-icons-left .input:hover~.icon,.control.has-icons-left .select:hover~.icon{color:var(--input-icon-hover-color)}.control.has-icons-left .input:focus~.icon,.control.has-icons-left .select:focus~.icon{color:var(--input-icon-focus-color)}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left .select.is-small~.icon{font-size:var(--size-small)}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon{font-size:var(--size-medium)}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left .select.is-large~.icon{font-size:var(--size-large)}.control.has-icons-left .icon{color:var(--input-icon-color);height:var(--input-height);pointer-events:none;position:absolute;top:0;width:var(--input-height);z-index:4}.control.has-icons-left .input,.control.has-icons-left .select select{padding-left:var(--input-height)}.control.has-icons-left .icon.is-left{left:0}:root{--column-gap:0.75rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}@media print,screen and (min-width:769px){.column.is-narrow{flex:none;width:unset}.column.is-1{flex:none;width:calc(8.33333% - var(--column-gap)/2)}.column.is-2{flex:none;width:calc(16.66667% - var(--column-gap)/2)}.column.is-3{flex:none;width:calc(25% - var(--column-gap)/2)}.column.is-4{flex:none;width:calc(33.33333% - var(--column-gap)/2)}.column.is-5{flex:none;width:calc(41.66667% - var(--column-gap)/2)}.column.is-6{flex:none;width:calc(50% - var(--column-gap)/2)}}.columns{margin-inline-end:calc(var(--column-gap)*-1);margin-inline-start:calc(var(--column-gap)*-1);margin-top:calc(var(--column-gap)*-1)}.columns:last-child{margin-bottom:calc(var(--column-gap)*-1)}.columns:not(:last-child){margin-bottom:.75rem}.columns.is-centered{justify-content:center}@media print,screen and (min-width:769px){.columns:not(.is-desktop){display:flex}}.cell{grid-column-end:span var(--grid-cell-column-span);grid-column-start:var(--grid-cell-column-start);grid-row-end:span var(--grid-cell-row-span);grid-row-start:var(--grid-cell-row-start)}[class*=has-background-white]{--background-l:var(--white-l);--background-l-delta:0%;background-color:hsl(var(--white-h),var(--white-s),calc(var(--background-l) + var(--background-l-delta)))!important}a.has-background-white:focus-visible,a.has-background-white:hover,button.has-background-white:focus-visible,button.has-background-white:hover,has-background-white.is-hoverable:focus-visible,has-background-white.is-hoverable:hover{--background-l-delta:var(--hover-background-l-delta)}a.has-background-white:active,button.has-background-white:active,has-background-white.is-hoverable:active{--background-l-delta:var(--active-background-l-delta)}[class*=has-text-light]{--color-l:var(--light-l);--color-l-delta:0%;color:hsl(var(--light-h),var(--light-s),calc(var(--color-l) + var(--color-l-delta)))!important}a.has-text-light:focus-visible,a.has-text-light:hover,button.has-text-light:focus-visible,button.has-text-light:hover,has-text-light.is-hoverable:focus-visible,has-text-light.is-hoverable:hover{--color-l-delta:var(--hover-color-l-delta)}a.has-text-light:active,button.has-text-light:active,has-text-light.is-hoverable:active{--color-l-delta:var(--active-color-l-delta)}[class*=has-text-dark]{--color-l:var(--dark-l);--color-l-delta:0%;color:hsl(var(--dark-h),var(--dark-s),calc(var(--color-l) + var(--color-l-delta)))!important}a.has-text-dark:focus-visible,a.has-text-dark:hover,button.has-text-dark:focus-visible,button.has-text-dark:hover,has-text-dark.is-hoverable:focus-visible,has-text-dark.is-hoverable:hover{--color-l-delta:var(--hover-color-l-delta)}a.has-text-dark:active,button.has-text-dark:active,has-text-dark.is-hoverable:active{--color-l-delta:var(--active-color-l-delta)}[class*=has-text-link]{--color-l:var(--link-l);--color-l-delta:0%;color:hsl(var(--link-h),var(--link-s),calc(var(--color-l) + var(--color-l-delta)))!important}a.has-text-link:focus-visible,a.has-text-link:hover,button.has-text-link:focus-visible,button.has-text-link:hover,has-text-link.is-hoverable:focus-visible,has-text-link.is-hoverable:hover{--color-l-delta:var(--hover-color-l-delta)}a.has-text-link:active,button.has-text-link:active,has-text-link.is-hoverable:active{--color-l-delta:var(--active-color-l-delta)}[class*=has-text-info]{--color-l:var(--info-l);--color-l-delta:0%;color:hsl(var(--info-h),var(--info-s),calc(var(--color-l) + var(--color-l-delta)))!important}[class*=has-background-info]{--background-l:var(--info-l);--background-l-delta:0%;background-color:hsl(var(--info-h),var(--info-s),calc(var(--background-l) + var(--background-l-delta)))!important}a.has-text-info:focus-visible,a.has-text-info:hover,button.has-text-info:focus-visible,button.has-text-info:hover,has-text-info.is-hoverable:focus-visible,has-text-info.is-hoverable:hover{--color-l-delta:var(--hover-color-l-delta)}a.has-text-info:active,button.has-text-info:active,has-text-info.is-hoverable:active{--color-l-delta:var(--active-color-l-delta)}a.has-background-info:focus-visible,a.has-background-info:hover,button.has-background-info:focus-visible,button.has-background-info:hover,has-background-info.is-hoverable:focus-visible,has-background-info.is-hoverable:hover{--background-l-delta:var(--hover-background-l-delta)}a.has-background-info:active,button.has-background-info:active,has-background-info.is-hoverable:active{--background-l-delta:var(--active-background-l-delta)}[class*=has-text-success]{--color-l:var(--success-l);--color-l-delta:0%;color:hsl(var(--success-h),var(--success-s),calc(var(--color-l) + var(--color-l-delta)))!important}a.has-text-success:focus-visible,a.has-text-success:hover,button.has-text-success:focus-visible,button.has-text-success:hover,has-text-success.is-hoverable:focus-visible,has-text-success.is-hoverable:hover{--color-l-delta:var(--hover-color-l-delta)}a.has-text-success:active,button.has-text-success:active,has-text-success.is-hoverable:active{--color-l-delta:var(--active-color-l-delta)}[class*=has-text-warning]{--color-l:var(--warning-l);--color-l-delta:0%;color:hsl(var(--warning-h),var(--warning-s),calc(var(--color-l) + var(--color-l-delta)))!important}a.has-text-warning:focus-visible,a.has-text-warning:hover,button.has-text-warning:focus-visible,button.has-text-warning:hover,has-text-warning.is-hoverable:focus-visible,has-text-warning.is-hoverable:hover{--color-l-delta:var(--hover-color-l-delta)}a.has-text-warning:active,button.has-text-warning:active,has-text-warning.is-hoverable:active{--color-l-delta:var(--active-color-l-delta)}[class*=has-text-danger]{--color-l:var(--danger-l);--color-l-delta:0%;color:hsl(var(--danger-h),var(--danger-s),calc(var(--color-l) + var(--color-l-delta)))!important}a.has-text-danger:focus-visible,a.has-text-danger:hover,button.has-text-danger:focus-visible,button.has-text-danger:hover,has-text-danger.is-hoverable:focus-visible,has-text-danger.is-hoverable:hover{--color-l-delta:var(--hover-color-l-delta)}a.has-text-danger:active,button.has-text-danger:active,has-text-danger.is-hoverable:active{--color-l-delta:var(--active-color-l-delta)}.has-background-grey-dark{background-color:#404654!important}.has-text-grey{color:#69748c!important}.has-text-grey-light{color:#abb1bf!important}.has-background-white-ter{background-color:#f3f4f6!important}.is-flex-direction-column{flex-direction:column!important}.is-justify-content-space-between{justify-content:space-between!important}.is-justify-content-start{justify-content:start!important}.is-justify-content-left{justify-content:left!important}.is-align-items-center{align-items:center!important}.is-align-items-start{align-items:start!important}.is-flex-grow-0{flex-grow:0!important}.is-flex-grow-1{flex-grow:1!important}.is-flex-shrink-1{flex-shrink:1!important}.is-pulled-right{float:right!important}.is-relative{position:relative!important}.mr-0{margin-right:0!important}.mb-0{margin-bottom:0!important}.ml-0{margin-left:0!important}.mt-1{margin-top:.25rem!important}.mr-1{margin-right:.25rem!important}.mb-1{margin-bottom:.25rem!important}.mt-2{margin-top:.5rem!important}.mb-2{margin-bottom:.5rem!important}.ml-2{margin-left:.5rem!important}.m-3{margin:.75rem!important}.mt-3{margin-top:.75rem!important}.mr-3{margin-right:.75rem!important}.mb-3{margin-bottom:.75rem!important}.ml-3,.mx-3{margin-left:.75rem!important}.mx-3{margin-right:.75rem!important}.my-3{margin-bottom:.75rem!important;margin-top:.75rem!important}.mt-4{margin-top:1rem!important}.mb-4{margin-bottom:1rem!important}.m-5{margin:1.5rem!important}.mt-5{margin-top:1.5rem!important}.mr-5{margin-right:1.5rem!important}.mb-5{margin-bottom:1.5rem!important}.ml-5,.mx-5{margin-left:1.5rem!important}.mx-5{margin-right:1.5rem!important}.my-5{margin-bottom:1.5rem!important;margin-top:1.5rem!important}.p-0{padding:0!important}.px-0{padding-left:0!important}.px-0{padding-right:0!important}.px-1{padding-left:.25rem!important}.px-1{padding-right:.25rem!important}.p-3{padding:.75rem!important}.pb-3{padding-bottom:.75rem!important}.px-3{padding-left:.75rem!important}.px-3{padding-right:.75rem!important}.pt-5{padding-top:1.5rem!important}.pb-5{padding-bottom:1.5rem!important}.has-text-centered{text-align:center!important}.has-text-right{text-align:right!important}.is-italic{font-style:italic!important}.has-text-weight-light{font-weight:300!important}.has-text-weight-normal{font-weight:400!important}.is-family-code{font-family:Inconsolata,Hack,SF Mono,Roboto Mono,Source Code Pro,Ubuntu Mono,monospace!important}.is-hidden{display:none!important}.is-block{display:block!important}.is-flex{display:flex!important}.is-inline{display:inline!important}.is-inline-block{display:inline-block!important}:root{--scheme-h:221;--scheme-s:14%;--light-l:90%;--light-invert-l:20%;--dark-l:20%;--dark-invert-l:90%;--soft-l:90%;--bold-l:20%;--soft-invert-l:20%;--bold-invert-l:90%;--hover-background-l-delta:-5%;--active-background-l-delta:-10%;--hover-border-l-delta:-10%;--active-border-l-delta:-20%;--hover-color-l-delta:-5%;--active-color-l-delta:-10%;--hover-shadow-a-delta:-0.05;--active-shadow-a-delta:-0.1;--scheme-brightness:light;--scheme-main-l:100%;--scheme-main-bis-l:98%;--scheme-main-ter-l:96%;--background-l:96%;--border-weak-l:93%;--border-l:86%;--text-weak-l:48%;--text-strong-l:21%;--text-title-l:14%;--scheme-invert-ter-l:14%;--scheme-invert-bis-l:7%;--scheme-invert-l:4%;--family-primary:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Lucida Sans Unicode,Lucida Grande,Arial,sans-serif;--family-secondary:Inter,SF Pro,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Helvetica,Arial,sans-serif;--family-code:Inconsolata,Hack,SF Mono,Roboto Mono,Source Code Pro,Ubuntu Mono,monospace;--size-small:0.75rem;--size-normal:1rem;--size-medium:1.25rem;--size-large:1.5rem;--weight-light:300;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--block-spacing:1.5rem;--duration:294ms;--easing:ease-out;--radius-small:0.25rem;--radius:0.375rem;--radius-medium:0.5em;--radius-large:0.75rem;--radius-rounded:9999px;--speed:86ms;--arrow-color:var(--link);--loading-color:var(--border);--burger-h:var(--link-h);--burger-s:var(--link-s);--burger-l:var(--link-l);--burger-border-radius:0.5em;--burger-gap:5px;--burger-item-height:2px;--burger-item-width:20px;--white:hsla(var(--white-h),var(--white-s),var(--white-l),1);--white-base:hsla(var(--white-h),var(--white-s),var(--white-l),1);--white-rgb:255,255,255;--white-h:221deg;--white-s:14%;--white-l:100%;--white-invert-l:4%;--white-invert:#090a0c;--white-on-scheme-l:35%;--white-on-scheme:hsla(var(--white-h),var(--white-s),var(--white-on-scheme-l),1);--black:hsla(var(--black-h),var(--black-s),var(--black-l),1);--black-base:hsla(var(--black-h),var(--black-s),var(--black-l),1);--black-rgb:9,10,12;--black-h:221deg;--black-s:14%;--black-l:4%;--black-invert-l:100%;--black-invert:#fff;--black-on-scheme-l:4%;--black-on-scheme:hsla(var(--black-h),var(--black-s),var(--black-on-scheme-l),1);--light:hsla(var(--light-h),var(--light-s),var(--light-l),1);--light-base:hsla(var(--light-h),var(--light-s),var(--light-l),1);--light-rgb:243,244,246;--light-h:221deg;--light-s:14%;--light-l:96%;--light-invert-l:21%;--light-invert:#2e333d;--light-on-scheme-l:36%;--light-on-scheme:hsla(var(--light-h),var(--light-s),var(--light-on-scheme-l),1);--dark:hsla(var(--dark-h),var(--dark-s),var(--dark-l),1);--dark-base:hsla(var(--dark-h),var(--dark-s),var(--dark-l),1);--dark-rgb:46,51,61;--dark-h:221deg;--dark-s:14%;--dark-l:21%;--dark-invert-l:96%;--dark-invert:#f3f4f6;--dark-on-scheme-l:21%;--dark-on-scheme:hsla(var(--dark-h),var(--dark-s),var(--dark-on-scheme-l),1);--text:hsla(var(--text-h),var(--text-s),var(--text-l),1);--text-base:hsla(var(--text-h),var(--text-s),var(--text-l),1);--text-rgb:64,70,84;--text-h:221deg;--text-s:14%;--text-l:29%;--text-00-l:0%;--text-05-l:4%;--text-10-l:9%;--text-15-l:14%;--text-20-l:19%;--text-25-l:24%;--text-30-l:29%;--text-35-l:34%;--text-40-l:39%;--text-45-l:44%;--text-50-l:49%;--text-55-l:54%;--text-60-l:59%;--text-65-l:64%;--text-70-l:69%;--text-75-l:74%;--text-80-l:79%;--text-85-l:84%;--text-90-l:89%;--text-95-l:94%;--text-100-l:100%;--text-00:hsla(var(--text-h),var(--text-s),var(--text-00-l),1);--text-00-invert-l:var(--text-60-l);--text-00-invert:hsla(var(--text-h),var(--text-s),var(--text-00-invert-l),1);--text-05:hsla(var(--text-h),var(--text-s),var(--text-05-l),1);--text-05-invert-l:var(--text-60-l);--text-05-invert:hsla(var(--text-h),var(--text-s),var(--text-05-invert-l),1);--text-10:hsla(var(--text-h),var(--text-s),var(--text-10-l),1);--text-10-invert-l:var(--text-70-l);--text-10-invert:hsla(var(--text-h),var(--text-s),var(--text-10-invert-l),1);--text-15:hsla(var(--text-h),var(--text-s),var(--text-15-l),1);--text-15-invert-l:var(--text-75-l);--text-15-invert:hsla(var(--text-h),var(--text-s),var(--text-15-invert-l),1);--text-20:hsla(var(--text-h),var(--text-s),var(--text-20-l),1);--text-20-invert-l:var(--text-85-l);--text-20-invert:hsla(var(--text-h),var(--text-s),var(--text-20-invert-l),1);--text-25:hsla(var(--text-h),var(--text-s),var(--text-25-l),1);--text-25-invert-l:var(--text-95-l);--text-25-invert:hsla(var(--text-h),var(--text-s),var(--text-25-invert-l),1);--text-30:hsla(var(--text-h),var(--text-s),var(--text-30-l),1);--text-30-invert-l:var(--text-100-l);--text-30-invert:hsla(var(--text-h),var(--text-s),var(--text-30-invert-l),1);--text-35:hsla(var(--text-h),var(--text-s),var(--text-35-l),1);--text-35-invert-l:var(--text-100-l);--text-35-invert:hsla(var(--text-h),var(--text-s),var(--text-35-invert-l),1);--text-40:hsla(var(--text-h),var(--text-s),var(--text-40-l),1);--text-40-invert-l:var(--text-100-l);--text-40-invert:hsla(var(--text-h),var(--text-s),var(--text-40-invert-l),1);--text-45:hsla(var(--text-h),var(--text-s),var(--text-45-l),1);--text-45-invert-l:var(--text-100-l);--text-45-invert:hsla(var(--text-h),var(--text-s),var(--text-45-invert-l),1);--text-50:hsla(var(--text-h),var(--text-s),var(--text-50-l),1);--text-50-invert-l:var(--text-100-l);--text-50-invert:hsla(var(--text-h),var(--text-s),var(--text-50-invert-l),1);--text-55:hsla(var(--text-h),var(--text-s),var(--text-55-l),1);--text-55-invert-l:var(--text-100-l);--text-55-invert:hsla(var(--text-h),var(--text-s),var(--text-55-invert-l),1);--text-60:hsla(var(--text-h),var(--text-s),var(--text-60-l),1);--text-60-invert-l:var(--text-05-l);--text-60-invert:hsla(var(--text-h),var(--text-s),var(--text-60-invert-l),1);--text-65:hsla(var(--text-h),var(--text-s),var(--text-65-l),1);--text-65-invert-l:var(--text-05-l);--text-65-invert:hsla(var(--text-h),var(--text-s),var(--text-65-invert-l),1);--text-70:hsla(var(--text-h),var(--text-s),var(--text-70-l),1);--text-70-invert-l:var(--text-10-l);--text-70-invert:hsla(var(--text-h),var(--text-s),var(--text-70-invert-l),1);--text-75:hsla(var(--text-h),var(--text-s),var(--text-75-l),1);--text-75-invert-l:var(--text-15-l);--text-75-invert:hsla(var(--text-h),var(--text-s),var(--text-75-invert-l),1);--text-80:hsla(var(--text-h),var(--text-s),var(--text-80-l),1);--text-80-invert-l:var(--text-15-l);--text-80-invert:hsla(var(--text-h),var(--text-s),var(--text-80-invert-l),1);--text-85:hsla(var(--text-h),var(--text-s),var(--text-85-l),1);--text-85-invert-l:var(--text-20-l);--text-85-invert:hsla(var(--text-h),var(--text-s),var(--text-85-invert-l),1);--text-90:hsla(var(--text-h),var(--text-s),var(--text-90-l),1);--text-90-invert-l:var(--text-20-l);--text-90-invert:hsla(var(--text-h),var(--text-s),var(--text-90-invert-l),1);--text-95:hsla(var(--text-h),var(--text-s),var(--text-95-l),1);--text-95-invert-l:var(--text-25-l);--text-95-invert:hsla(var(--text-h),var(--text-s),var(--text-95-invert-l),1);--text-100:hsla(var(--text-h),var(--text-s),var(--text-100-l),1);--text-100-invert-l:var(--text-30-l);--text-100-invert:hsla(var(--text-h),var(--text-s),var(--text-100-invert-l),1);--text-invert-l:var(--text-100-l);--text-invert:hsla(var(--text-h),var(--text-s),var(--text-invert-l),1);--text-light-l:var(--text-90-l);--text-light:hsla(var(--text-h),var(--text-s),var(--text-light-l),1);--text-light-invert-l:var(--text-20-l);--text-light-invert:hsla(var(--text-h),var(--text-s),var(--text-light-invert-l),1);--text-dark-l:var(--text-10-l);--text-dark:hsla(var(--text-h),var(--text-s),var(--text-dark-l),1);--text-dark-invert-l:var(--text-70-l);--text-dark-invert:hsla(var(--text-h),var(--text-s),var(--text-dark-invert-l),1);--text-soft:hsla(var(--text-h),var(--text-s),var(--soft-l),1);--text-bold:hsla(var(--text-h),var(--text-s),var(--bold-l),1);--text-soft-invert:hsla(var(--text-h),var(--text-s),var(--soft-invert-l),1);--text-bold-invert:hsla(var(--text-h),var(--text-s),var(--bold-invert-l),1);--text-on-scheme-l:29%;--text-on-scheme:hsla(var(--text-h),var(--text-s),var(--text-on-scheme-l),1);--primary:hsla(var(--primary-h),var(--primary-s),var(--primary-l),1);--primary-base:hsla(var(--primary-h),var(--primary-s),var(--primary-l),1);--primary-rgb:0,209,178;--primary-h:171deg;--primary-s:100%;--primary-l:41%;--primary-00-l:1%;--primary-05-l:6%;--primary-10-l:11%;--primary-15-l:16%;--primary-20-l:21%;--primary-25-l:26%;--primary-30-l:31%;--primary-35-l:36%;--primary-40-l:41%;--primary-45-l:46%;--primary-50-l:51%;--primary-55-l:56%;--primary-60-l:61%;--primary-65-l:66%;--primary-70-l:71%;--primary-75-l:76%;--primary-80-l:81%;--primary-85-l:86%;--primary-90-l:91%;--primary-95-l:96%;--primary-100-l:100%;--primary-00:hsla(var(--primary-h),var(--primary-s),var(--primary-00-l),1);--primary-00-invert-l:var(--primary-30-l);--primary-00-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-00-invert-l),1);--primary-05:hsla(var(--primary-h),var(--primary-s),var(--primary-05-l),1);--primary-05-invert-l:var(--primary-40-l);--primary-05-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-05-invert-l),1);--primary-10:hsla(var(--primary-h),var(--primary-s),var(--primary-10-l),1);--primary-10-invert-l:var(--primary-50-l);--primary-10-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-10-invert-l),1);--primary-15:hsla(var(--primary-h),var(--primary-s),var(--primary-15-l),1);--primary-15-invert-l:var(--primary-100-l);--primary-15-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-15-invert-l),1);--primary-20:hsla(var(--primary-h),var(--primary-s),var(--primary-20-l),1);--primary-20-invert-l:var(--primary-100-l);--primary-20-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-20-invert-l),1);--primary-25:hsla(var(--primary-h),var(--primary-s),var(--primary-25-l),1);--primary-25-invert-l:var(--primary-100-l);--primary-25-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-25-invert-l),1);--primary-30:hsla(var(--primary-h),var(--primary-s),var(--primary-30-l),1);--primary-30-invert-l:var(--primary-00-l);--primary-30-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-30-invert-l),1);--primary-35:hsla(var(--primary-h),var(--primary-s),var(--primary-35-l),1);--primary-35-invert-l:var(--primary-00-l);--primary-35-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-35-invert-l),1);--primary-40:hsla(var(--primary-h),var(--primary-s),var(--primary-40-l),1);--primary-40-invert-l:var(--primary-05-l);--primary-40-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-40-invert-l),1);--primary-45:hsla(var(--primary-h),var(--primary-s),var(--primary-45-l),1);--primary-45-invert-l:var(--primary-05-l);--primary-45-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-45-invert-l),1);--primary-50:hsla(var(--primary-h),var(--primary-s),var(--primary-50-l),1);--primary-50-invert-l:var(--primary-10-l);--primary-50-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-50-invert-l),1);--primary-55:hsla(var(--primary-h),var(--primary-s),var(--primary-55-l),1);--primary-55-invert-l:var(--primary-10-l);--primary-55-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-55-invert-l),1);--primary-60:hsla(var(--primary-h),var(--primary-s),var(--primary-60-l),1);--primary-60-invert-l:var(--primary-10-l);--primary-60-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-60-invert-l),1);--primary-65:hsla(var(--primary-h),var(--primary-s),var(--primary-65-l),1);--primary-65-invert-l:var(--primary-10-l);--primary-65-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-65-invert-l),1);--primary-70:hsla(var(--primary-h),var(--primary-s),var(--primary-70-l),1);--primary-70-invert-l:var(--primary-10-l);--primary-70-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-70-invert-l),1);--primary-75:hsla(var(--primary-h),var(--primary-s),var(--primary-75-l),1);--primary-75-invert-l:var(--primary-10-l);--primary-75-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-75-invert-l),1);--primary-80:hsla(var(--primary-h),var(--primary-s),var(--primary-80-l),1);--primary-80-invert-l:var(--primary-10-l);--primary-80-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-80-invert-l),1);--primary-85:hsla(var(--primary-h),var(--primary-s),var(--primary-85-l),1);--primary-85-invert-l:var(--primary-10-l);--primary-85-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-85-invert-l),1);--primary-90:hsla(var(--primary-h),var(--primary-s),var(--primary-90-l),1);--primary-90-invert-l:var(--primary-10-l);--primary-90-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-90-invert-l),1);--primary-95:hsla(var(--primary-h),var(--primary-s),var(--primary-95-l),1);--primary-95-invert-l:var(--primary-10-l);--primary-95-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-95-invert-l),1);--primary-100:hsla(var(--primary-h),var(--primary-s),var(--primary-100-l),1);--primary-100-invert-l:var(--primary-15-l);--primary-100-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-100-invert-l),1);--primary-invert-l:var(--primary-05-l);--primary-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-invert-l),1);--primary-light-l:var(--primary-90-l);--primary-light:hsla(var(--primary-h),var(--primary-s),var(--primary-light-l),1);--primary-light-invert-l:var(--primary-10-l);--primary-light-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-light-invert-l),1);--primary-dark-l:var(--primary-10-l);--primary-dark:hsla(var(--primary-h),var(--primary-s),var(--primary-dark-l),1);--primary-dark-invert-l:var(--primary-50-l);--primary-dark-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-dark-invert-l),1);--primary-soft:hsla(var(--primary-h),var(--primary-s),var(--soft-l),1);--primary-bold:hsla(var(--primary-h),var(--primary-s),var(--bold-l),1);--primary-soft-invert:hsla(var(--primary-h),var(--primary-s),var(--soft-invert-l),1);--primary-bold-invert:hsla(var(--primary-h),var(--primary-s),var(--bold-invert-l),1);--primary-on-scheme-l:21%;--primary-on-scheme:hsla(var(--primary-h),var(--primary-s),var(--primary-on-scheme-l),1);--link:hsla(var(--link-h),var(--link-s),var(--link-l),1);--link-base:hsla(var(--link-h),var(--link-s),var(--link-l),1);--link-rgb:66,88,255;--link-h:233deg;--link-s:100%;--link-l:63%;--link-00-l:0%;--link-05-l:3%;--link-10-l:8%;--link-15-l:13%;--link-20-l:18%;--link-25-l:23%;--link-30-l:28%;--link-35-l:33%;--link-40-l:38%;--link-45-l:43%;--link-50-l:48%;--link-55-l:53%;--link-60-l:58%;--link-65-l:63%;--link-70-l:68%;--link-75-l:73%;--link-80-l:78%;--link-85-l:83%;--link-90-l:88%;--link-95-l:93%;--link-100-l:100%;--link-00:hsla(var(--link-h),var(--link-s),var(--link-00-l),1);--link-00-invert-l:var(--link-75-l);--link-00-invert:hsla(var(--link-h),var(--link-s),var(--link-00-invert-l),1);--link-05:hsla(var(--link-h),var(--link-s),var(--link-05-l),1);--link-05-invert-l:var(--link-75-l);--link-05-invert:hsla(var(--link-h),var(--link-s),var(--link-05-invert-l),1);--link-10:hsla(var(--link-h),var(--link-s),var(--link-10-l),1);--link-10-invert-l:var(--link-75-l);--link-10-invert:hsla(var(--link-h),var(--link-s),var(--link-10-invert-l),1);--link-15:hsla(var(--link-h),var(--link-s),var(--link-15-l),1);--link-15-invert-l:var(--link-80-l);--link-15-invert:hsla(var(--link-h),var(--link-s),var(--link-15-invert-l),1);--link-20:hsla(var(--link-h),var(--link-s),var(--link-20-l),1);--link-20-invert-l:var(--link-80-l);--link-20-invert:hsla(var(--link-h),var(--link-s),var(--link-20-invert-l),1);--link-25:hsla(var(--link-h),var(--link-s),var(--link-25-l),1);--link-25-invert-l:var(--link-85-l);--link-25-invert:hsla(var(--link-h),var(--link-s),var(--link-25-invert-l),1);--link-30:hsla(var(--link-h),var(--link-s),var(--link-30-l),1);--link-30-invert-l:var(--link-90-l);--link-30-invert:hsla(var(--link-h),var(--link-s),var(--link-30-invert-l),1);--link-35:hsla(var(--link-h),var(--link-s),var(--link-35-l),1);--link-35-invert-l:var(--link-90-l);--link-35-invert:hsla(var(--link-h),var(--link-s),var(--link-35-invert-l),1);--link-40:hsla(var(--link-h),var(--link-s),var(--link-40-l),1);--link-40-invert-l:var(--link-95-l);--link-40-invert:hsla(var(--link-h),var(--link-s),var(--link-40-invert-l),1);--link-45:hsla(var(--link-h),var(--link-s),var(--link-45-l),1);--link-45-invert-l:var(--link-100-l);--link-45-invert:hsla(var(--link-h),var(--link-s),var(--link-45-invert-l),1);--link-50:hsla(var(--link-h),var(--link-s),var(--link-50-l),1);--link-50-invert-l:var(--link-100-l);--link-50-invert:hsla(var(--link-h),var(--link-s),var(--link-50-invert-l),1);--link-55:hsla(var(--link-h),var(--link-s),var(--link-55-l),1);--link-55-invert-l:var(--link-100-l);--link-55-invert:hsla(var(--link-h),var(--link-s),var(--link-55-invert-l),1);--link-60:hsla(var(--link-h),var(--link-s),var(--link-60-l),1);--link-60-invert-l:var(--link-100-l);--link-60-invert:hsla(var(--link-h),var(--link-s),var(--link-60-invert-l),1);--link-65:hsla(var(--link-h),var(--link-s),var(--link-65-l),1);--link-65-invert-l:var(--link-100-l);--link-65-invert:hsla(var(--link-h),var(--link-s),var(--link-65-invert-l),1);--link-70:hsla(var(--link-h),var(--link-s),var(--link-70-l),1);--link-70-invert-l:var(--link-100-l);--link-70-invert:hsla(var(--link-h),var(--link-s),var(--link-70-invert-l),1);--link-75:hsla(var(--link-h),var(--link-s),var(--link-75-l),1);--link-75-invert-l:var(--link-10-l);--link-75-invert:hsla(var(--link-h),var(--link-s),var(--link-75-invert-l),1);--link-80:hsla(var(--link-h),var(--link-s),var(--link-80-l),1);--link-80-invert-l:var(--link-20-l);--link-80-invert:hsla(var(--link-h),var(--link-s),var(--link-80-invert-l),1);--link-85:hsla(var(--link-h),var(--link-s),var(--link-85-l),1);--link-85-invert-l:var(--link-25-l);--link-85-invert:hsla(var(--link-h),var(--link-s),var(--link-85-invert-l),1);--link-90:hsla(var(--link-h),var(--link-s),var(--link-90-l),1);--link-90-invert-l:var(--link-35-l);--link-90-invert:hsla(var(--link-h),var(--link-s),var(--link-90-invert-l),1);--link-95:hsla(var(--link-h),var(--link-s),var(--link-95-l),1);--link-95-invert-l:var(--link-40-l);--link-95-invert:hsla(var(--link-h),var(--link-s),var(--link-95-invert-l),1);--link-100:hsla(var(--link-h),var(--link-s),var(--link-100-l),1);--link-100-invert-l:var(--link-50-l);--link-100-invert:hsla(var(--link-h),var(--link-s),var(--link-100-invert-l),1);--link-invert-l:var(--link-100-l);--link-invert:hsla(var(--link-h),var(--link-s),var(--link-invert-l),1);--link-light-l:var(--link-90-l);--link-light:hsla(var(--link-h),var(--link-s),var(--link-light-l),1);--link-light-invert-l:var(--link-35-l);--link-light-invert:hsla(var(--link-h),var(--link-s),var(--link-light-invert-l),1);--link-dark-l:var(--link-10-l);--link-dark:hsla(var(--link-h),var(--link-s),var(--link-dark-l),1);--link-dark-invert-l:var(--link-75-l);--link-dark-invert:hsla(var(--link-h),var(--link-s),var(--link-dark-invert-l),1);--link-soft:hsla(var(--link-h),var(--link-s),var(--soft-l),1);--link-bold:hsla(var(--link-h),var(--link-s),var(--bold-l),1);--link-soft-invert:hsla(var(--link-h),var(--link-s),var(--soft-invert-l),1);--link-bold-invert:hsla(var(--link-h),var(--link-s),var(--bold-invert-l),1);--link-on-scheme-l:58%;--link-on-scheme:hsla(var(--link-h),var(--link-s),var(--link-on-scheme-l),1);--info:hsla(var(--info-h),var(--info-s),var(--info-l),1);--info-base:hsla(var(--info-h),var(--info-s),var(--info-l),1);--info-rgb:102,209,255;--info-h:198deg;--info-s:100%;--info-l:70%;--info-00-l:0%;--info-05-l:5%;--info-10-l:10%;--info-15-l:15%;--info-20-l:20%;--info-25-l:25%;--info-30-l:30%;--info-35-l:35%;--info-40-l:40%;--info-45-l:45%;--info-50-l:50%;--info-55-l:55%;--info-60-l:60%;--info-65-l:65%;--info-70-l:70%;--info-75-l:75%;--info-80-l:80%;--info-85-l:85%;--info-90-l:90%;--info-95-l:95%;--info-100-l:100%;--info-00:hsla(var(--info-h),var(--info-s),var(--info-00-l),1);--info-00-invert-l:var(--info-45-l);--info-00-invert:hsla(var(--info-h),var(--info-s),var(--info-00-invert-l),1);--info-05:hsla(var(--info-h),var(--info-s),var(--info-05-l),1);--info-05-invert-l:var(--info-50-l);--info-05-invert:hsla(var(--info-h),var(--info-s),var(--info-05-invert-l),1);--info-10:hsla(var(--info-h),var(--info-s),var(--info-10-l),1);--info-10-invert-l:var(--info-60-l);--info-10-invert:hsla(var(--info-h),var(--info-s),var(--info-10-invert-l),1);--info-15:hsla(var(--info-h),var(--info-s),var(--info-15-l),1);--info-15-invert-l:var(--info-80-l);--info-15-invert:hsla(var(--info-h),var(--info-s),var(--info-15-invert-l),1);--info-20:hsla(var(--info-h),var(--info-s),var(--info-20-l),1);--info-20-invert-l:var(--info-95-l);--info-20-invert:hsla(var(--info-h),var(--info-s),var(--info-20-invert-l),1);--info-25:hsla(var(--info-h),var(--info-s),var(--info-25-l),1);--info-25-invert-l:var(--info-100-l);--info-25-invert:hsla(var(--info-h),var(--info-s),var(--info-25-invert-l),1);--info-30:hsla(var(--info-h),var(--info-s),var(--info-30-l),1);--info-30-invert-l:var(--info-100-l);--info-30-invert:hsla(var(--info-h),var(--info-s),var(--info-30-invert-l),1);--info-35:hsla(var(--info-h),var(--info-s),var(--info-35-l),1);--info-35-invert-l:var(--info-100-l);--info-35-invert:hsla(var(--info-h),var(--info-s),var(--info-35-invert-l),1);--info-40:hsla(var(--info-h),var(--info-s),var(--info-40-l),1);--info-40-invert-l:var(--info-100-l);--info-40-invert:hsla(var(--info-h),var(--info-s),var(--info-40-invert-l),1);--info-45:hsla(var(--info-h),var(--info-s),var(--info-45-l),1);--info-45-invert-l:var(--info-00-l);--info-45-invert:hsla(var(--info-h),var(--info-s),var(--info-45-invert-l),1);--info-50:hsla(var(--info-h),var(--info-s),var(--info-50-l),1);--info-50-invert-l:var(--info-05-l);--info-50-invert:hsla(var(--info-h),var(--info-s),var(--info-50-invert-l),1);--info-55:hsla(var(--info-h),var(--info-s),var(--info-55-l),1);--info-55-invert-l:var(--info-05-l);--info-55-invert:hsla(var(--info-h),var(--info-s),var(--info-55-invert-l),1);--info-60:hsla(var(--info-h),var(--info-s),var(--info-60-l),1);--info-60-invert-l:var(--info-10-l);--info-60-invert:hsla(var(--info-h),var(--info-s),var(--info-60-invert-l),1);--info-65:hsla(var(--info-h),var(--info-s),var(--info-65-l),1);--info-65-invert-l:var(--info-10-l);--info-65-invert:hsla(var(--info-h),var(--info-s),var(--info-65-invert-l),1);--info-70:hsla(var(--info-h),var(--info-s),var(--info-70-l),1);--info-70-invert-l:var(--info-10-l);--info-70-invert:hsla(var(--info-h),var(--info-s),var(--info-70-invert-l),1);--info-75:hsla(var(--info-h),var(--info-s),var(--info-75-l),1);--info-75-invert-l:var(--info-10-l);--info-75-invert:hsla(var(--info-h),var(--info-s),var(--info-75-invert-l),1);--info-80:hsla(var(--info-h),var(--info-s),var(--info-80-l),1);--info-80-invert-l:var(--info-15-l);--info-80-invert:hsla(var(--info-h),var(--info-s),var(--info-80-invert-l),1);--info-85:hsla(var(--info-h),var(--info-s),var(--info-85-l),1);--info-85-invert-l:var(--info-15-l);--info-85-invert:hsla(var(--info-h),var(--info-s),var(--info-85-invert-l),1);--info-90:hsla(var(--info-h),var(--info-s),var(--info-90-l),1);--info-90-invert-l:var(--info-15-l);--info-90-invert:hsla(var(--info-h),var(--info-s),var(--info-90-invert-l),1);--info-95:hsla(var(--info-h),var(--info-s),var(--info-95-l),1);--info-95-invert-l:var(--info-20-l);--info-95-invert:hsla(var(--info-h),var(--info-s),var(--info-95-invert-l),1);--info-100:hsla(var(--info-h),var(--info-s),var(--info-100-l),1);--info-100-invert-l:var(--info-20-l);--info-100-invert:hsla(var(--info-h),var(--info-s),var(--info-100-invert-l),1);--info-invert-l:var(--info-10-l);--info-invert:hsla(var(--info-h),var(--info-s),var(--info-invert-l),1);--info-light-l:var(--info-90-l);--info-light:hsla(var(--info-h),var(--info-s),var(--info-light-l),1);--info-light-invert-l:var(--info-15-l);--info-light-invert:hsla(var(--info-h),var(--info-s),var(--info-light-invert-l),1);--info-dark-l:var(--info-10-l);--info-dark:hsla(var(--info-h),var(--info-s),var(--info-dark-l),1);--info-dark-invert-l:var(--info-60-l);--info-dark-invert:hsla(var(--info-h),var(--info-s),var(--info-dark-invert-l),1);--info-soft:hsla(var(--info-h),var(--info-s),var(--soft-l),1);--info-bold:hsla(var(--info-h),var(--info-s),var(--bold-l),1);--info-soft-invert:hsla(var(--info-h),var(--info-s),var(--soft-invert-l),1);--info-bold-invert:hsla(var(--info-h),var(--info-s),var(--bold-invert-l),1);--info-on-scheme-l:25%;--info-on-scheme:hsla(var(--info-h),var(--info-s),var(--info-on-scheme-l),1);--success:hsla(var(--success-h),var(--success-s),var(--success-l),1);--success-base:hsla(var(--success-h),var(--success-s),var(--success-l),1);--success-rgb:72,199,142;--success-h:153deg;--success-s:53%;--success-l:53%;--success-00-l:0%;--success-05-l:3%;--success-10-l:8%;--success-15-l:13%;--success-20-l:18%;--success-25-l:23%;--success-30-l:28%;--success-35-l:33%;--success-40-l:38%;--success-45-l:43%;--success-50-l:48%;--success-55-l:53%;--success-60-l:58%;--success-65-l:63%;--success-70-l:68%;--success-75-l:73%;--success-80-l:78%;--success-85-l:83%;--success-90-l:88%;--success-95-l:93%;--success-100-l:100%;--success-00:hsla(var(--success-h),var(--success-s),var(--success-00-l),1);--success-00-invert-l:var(--success-45-l);--success-00-invert:hsla(var(--success-h),var(--success-s),var(--success-00-invert-l),1);--success-05:hsla(var(--success-h),var(--success-s),var(--success-05-l),1);--success-05-invert-l:var(--success-45-l);--success-05-invert:hsla(var(--success-h),var(--success-s),var(--success-05-invert-l),1);--success-10:hsla(var(--success-h),var(--success-s),var(--success-10-l),1);--success-10-invert-l:var(--success-55-l);--success-10-invert:hsla(var(--success-h),var(--success-s),var(--success-10-invert-l),1);--success-15:hsla(var(--success-h),var(--success-s),var(--success-15-l),1);--success-15-invert-l:var(--success-75-l);--success-15-invert:hsla(var(--success-h),var(--success-s),var(--success-15-invert-l),1);--success-20:hsla(var(--success-h),var(--success-s),var(--success-20-l),1);--success-20-invert-l:var(--success-90-l);--success-20-invert:hsla(var(--success-h),var(--success-s),var(--success-20-invert-l),1);--success-25:hsla(var(--success-h),var(--success-s),var(--success-25-l),1);--success-25-invert-l:var(--success-100-l);--success-25-invert:hsla(var(--success-h),var(--success-s),var(--success-25-invert-l),1);--success-30:hsla(var(--success-h),var(--success-s),var(--success-30-l),1);--success-30-invert-l:var(--success-100-l);--success-30-invert:hsla(var(--success-h),var(--success-s),var(--success-30-invert-l),1);--success-35:hsla(var(--success-h),var(--success-s),var(--success-35-l),1);--success-35-invert-l:var(--success-100-l);--success-35-invert:hsla(var(--success-h),var(--success-s),var(--success-35-invert-l),1);--success-40:hsla(var(--success-h),var(--success-s),var(--success-40-l),1);--success-40-invert-l:var(--success-100-l);--success-40-invert:hsla(var(--success-h),var(--success-s),var(--success-40-invert-l),1);--success-45:hsla(var(--success-h),var(--success-s),var(--success-45-l),1);--success-45-invert-l:var(--success-05-l);--success-45-invert:hsla(var(--success-h),var(--success-s),var(--success-45-invert-l),1);--success-50:hsla(var(--success-h),var(--success-s),var(--success-50-l),1);--success-50-invert-l:var(--success-05-l);--success-50-invert:hsla(var(--success-h),var(--success-s),var(--success-50-invert-l),1);--success-55:hsla(var(--success-h),var(--success-s),var(--success-55-l),1);--success-55-invert-l:var(--success-10-l);--success-55-invert:hsla(var(--success-h),var(--success-s),var(--success-55-invert-l),1);--success-60:hsla(var(--success-h),var(--success-s),var(--success-60-l),1);--success-60-invert-l:var(--success-10-l);--success-60-invert:hsla(var(--success-h),var(--success-s),var(--success-60-invert-l),1);--success-65:hsla(var(--success-h),var(--success-s),var(--success-65-l),1);--success-65-invert-l:var(--success-10-l);--success-65-invert:hsla(var(--success-h),var(--success-s),var(--success-65-invert-l),1);--success-70:hsla(var(--success-h),var(--success-s),var(--success-70-l),1);--success-70-invert-l:var(--success-10-l);--success-70-invert:hsla(var(--success-h),var(--success-s),var(--success-70-invert-l),1);--success-75:hsla(var(--success-h),var(--success-s),var(--success-75-l),1);--success-75-invert-l:var(--success-15-l);--success-75-invert:hsla(var(--success-h),var(--success-s),var(--success-75-invert-l),1);--success-80:hsla(var(--success-h),var(--success-s),var(--success-80-l),1);--success-80-invert-l:var(--success-15-l);--success-80-invert:hsla(var(--success-h),var(--success-s),var(--success-80-invert-l),1);--success-85:hsla(var(--success-h),var(--success-s),var(--success-85-l),1);--success-85-invert-l:var(--success-15-l);--success-85-invert:hsla(var(--success-h),var(--success-s),var(--success-85-invert-l),1);--success-90:hsla(var(--success-h),var(--success-s),var(--success-90-l),1);--success-90-invert-l:var(--success-20-l);--success-90-invert:hsla(var(--success-h),var(--success-s),var(--success-90-invert-l),1);--success-95:hsla(var(--success-h),var(--success-s),var(--success-95-l),1);--success-95-invert-l:var(--success-20-l);--success-95-invert:hsla(var(--success-h),var(--success-s),var(--success-95-invert-l),1);--success-100:hsla(var(--success-h),var(--success-s),var(--success-100-l),1);--success-100-invert-l:var(--success-20-l);--success-100-invert:hsla(var(--success-h),var(--success-s),var(--success-100-invert-l),1);--success-invert-l:var(--success-10-l);--success-invert:hsla(var(--success-h),var(--success-s),var(--success-invert-l),1);--success-light-l:var(--success-90-l);--success-light:hsla(var(--success-h),var(--success-s),var(--success-light-l),1);--success-light-invert-l:var(--success-20-l);--success-light-invert:hsla(var(--success-h),var(--success-s),var(--success-light-invert-l),1);--success-dark-l:var(--success-10-l);--success-dark:hsla(var(--success-h),var(--success-s),var(--success-dark-l),1);--success-dark-invert-l:var(--success-55-l);--success-dark-invert:hsla(var(--success-h),var(--success-s),var(--success-dark-invert-l),1);--success-soft:hsla(var(--success-h),var(--success-s),var(--soft-l),1);--success-bold:hsla(var(--success-h),var(--success-s),var(--bold-l),1);--success-soft-invert:hsla(var(--success-h),var(--success-s),var(--soft-invert-l),1);--success-bold-invert:hsla(var(--success-h),var(--success-s),var(--bold-invert-l),1);--success-on-scheme-l:23%;--success-on-scheme:hsla(var(--success-h),var(--success-s),var(--success-on-scheme-l),1);--warning:hsla(var(--warning-h),var(--warning-s),var(--warning-l),1);--warning-base:hsla(var(--warning-h),var(--warning-s),var(--warning-l),1);--warning-rgb:255,183,15;--warning-h:42deg;--warning-s:100%;--warning-l:53%;--warning-00-l:0%;--warning-05-l:3%;--warning-10-l:8%;--warning-15-l:13%;--warning-20-l:18%;--warning-25-l:23%;--warning-30-l:28%;--warning-35-l:33%;--warning-40-l:38%;--warning-45-l:43%;--warning-50-l:48%;--warning-55-l:53%;--warning-60-l:58%;--warning-65-l:63%;--warning-70-l:68%;--warning-75-l:73%;--warning-80-l:78%;--warning-85-l:83%;--warning-90-l:88%;--warning-95-l:93%;--warning-100-l:100%;--warning-00:hsla(var(--warning-h),var(--warning-s),var(--warning-00-l),1);--warning-00-invert-l:var(--warning-40-l);--warning-00-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-00-invert-l),1);--warning-05:hsla(var(--warning-h),var(--warning-s),var(--warning-05-l),1);--warning-05-invert-l:var(--warning-45-l);--warning-05-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-05-invert-l),1);--warning-10:hsla(var(--warning-h),var(--warning-s),var(--warning-10-l),1);--warning-10-invert-l:var(--warning-50-l);--warning-10-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-10-invert-l),1);--warning-15:hsla(var(--warning-h),var(--warning-s),var(--warning-15-l),1);--warning-15-invert-l:var(--warning-70-l);--warning-15-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-15-invert-l),1);--warning-20:hsla(var(--warning-h),var(--warning-s),var(--warning-20-l),1);--warning-20-invert-l:var(--warning-100-l);--warning-20-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-20-invert-l),1);--warning-25:hsla(var(--warning-h),var(--warning-s),var(--warning-25-l),1);--warning-25-invert-l:var(--warning-100-l);--warning-25-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-25-invert-l),1);--warning-30:hsla(var(--warning-h),var(--warning-s),var(--warning-30-l),1);--warning-30-invert-l:var(--warning-100-l);--warning-30-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-30-invert-l),1);--warning-35:hsla(var(--warning-h),var(--warning-s),var(--warning-35-l),1);--warning-35-invert-l:var(--warning-100-l);--warning-35-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-35-invert-l),1);--warning-40:hsla(var(--warning-h),var(--warning-s),var(--warning-40-l),1);--warning-40-invert-l:var(--warning-00-l);--warning-40-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-40-invert-l),1);--warning-45:hsla(var(--warning-h),var(--warning-s),var(--warning-45-l),1);--warning-45-invert-l:var(--warning-05-l);--warning-45-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-45-invert-l),1);--warning-50:hsla(var(--warning-h),var(--warning-s),var(--warning-50-l),1);--warning-50-invert-l:var(--warning-10-l);--warning-50-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-50-invert-l),1);--warning-55:hsla(var(--warning-h),var(--warning-s),var(--warning-55-l),1);--warning-55-invert-l:var(--warning-10-l);--warning-55-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-55-invert-l),1);--warning-60:hsla(var(--warning-h),var(--warning-s),var(--warning-60-l),1);--warning-60-invert-l:var(--warning-10-l);--warning-60-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-60-invert-l),1);--warning-65:hsla(var(--warning-h),var(--warning-s),var(--warning-65-l),1);--warning-65-invert-l:var(--warning-10-l);--warning-65-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-65-invert-l),1);--warning-70:hsla(var(--warning-h),var(--warning-s),var(--warning-70-l),1);--warning-70-invert-l:var(--warning-15-l);--warning-70-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-70-invert-l),1);--warning-75:hsla(var(--warning-h),var(--warning-s),var(--warning-75-l),1);--warning-75-invert-l:var(--warning-15-l);--warning-75-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-75-invert-l),1);--warning-80:hsla(var(--warning-h),var(--warning-s),var(--warning-80-l),1);--warning-80-invert-l:var(--warning-15-l);--warning-80-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-80-invert-l),1);--warning-85:hsla(var(--warning-h),var(--warning-s),var(--warning-85-l),1);--warning-85-invert-l:var(--warning-15-l);--warning-85-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-85-invert-l),1);--warning-90:hsla(var(--warning-h),var(--warning-s),var(--warning-90-l),1);--warning-90-invert-l:var(--warning-15-l);--warning-90-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-90-invert-l),1);--warning-95:hsla(var(--warning-h),var(--warning-s),var(--warning-95-l),1);--warning-95-invert-l:var(--warning-15-l);--warning-95-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-95-invert-l),1);--warning-100:hsla(var(--warning-h),var(--warning-s),var(--warning-100-l),1);--warning-100-invert-l:var(--warning-20-l);--warning-100-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-100-invert-l),1);--warning-invert-l:var(--warning-10-l);--warning-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-invert-l),1);--warning-light-l:var(--warning-90-l);--warning-light:hsla(var(--warning-h),var(--warning-s),var(--warning-light-l),1);--warning-light-invert-l:var(--warning-15-l);--warning-light-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-light-invert-l),1);--warning-dark-l:var(--warning-10-l);--warning-dark:hsla(var(--warning-h),var(--warning-s),var(--warning-dark-l),1);--warning-dark-invert-l:var(--warning-50-l);--warning-dark-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-dark-invert-l),1);--warning-soft:hsla(var(--warning-h),var(--warning-s),var(--soft-l),1);--warning-bold:hsla(var(--warning-h),var(--warning-s),var(--bold-l),1);--warning-soft-invert:hsla(var(--warning-h),var(--warning-s),var(--soft-invert-l),1);--warning-bold-invert:hsla(var(--warning-h),var(--warning-s),var(--bold-invert-l),1);--warning-on-scheme-l:23%;--warning-on-scheme:hsla(var(--warning-h),var(--warning-s),var(--warning-on-scheme-l),1);--danger:hsla(var(--danger-h),var(--danger-s),var(--danger-l),1);--danger-base:hsla(var(--danger-h),var(--danger-s),var(--danger-l),1);--danger-rgb:255,102,133;--danger-h:348deg;--danger-s:100%;--danger-l:70%;--danger-00-l:0%;--danger-05-l:5%;--danger-10-l:10%;--danger-15-l:15%;--danger-20-l:20%;--danger-25-l:25%;--danger-30-l:30%;--danger-35-l:35%;--danger-40-l:40%;--danger-45-l:45%;--danger-50-l:50%;--danger-55-l:55%;--danger-60-l:60%;--danger-65-l:65%;--danger-70-l:70%;--danger-75-l:75%;--danger-80-l:80%;--danger-85-l:85%;--danger-90-l:90%;--danger-95-l:95%;--danger-100-l:100%;--danger-00:hsla(var(--danger-h),var(--danger-s),var(--danger-00-l),1);--danger-00-invert-l:var(--danger-65-l);--danger-00-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-00-invert-l),1);--danger-05:hsla(var(--danger-h),var(--danger-s),var(--danger-05-l),1);--danger-05-invert-l:var(--danger-70-l);--danger-05-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-05-invert-l),1);--danger-10:hsla(var(--danger-h),var(--danger-s),var(--danger-10-l),1);--danger-10-invert-l:var(--danger-75-l);--danger-10-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-10-invert-l),1);--danger-15:hsla(var(--danger-h),var(--danger-s),var(--danger-15-l),1);--danger-15-invert-l:var(--danger-80-l);--danger-15-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-15-invert-l),1);--danger-20:hsla(var(--danger-h),var(--danger-s),var(--danger-20-l),1);--danger-20-invert-l:var(--danger-85-l);--danger-20-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-20-invert-l),1);--danger-25:hsla(var(--danger-h),var(--danger-s),var(--danger-25-l),1);--danger-25-invert-l:var(--danger-90-l);--danger-25-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-25-invert-l),1);--danger-30:hsla(var(--danger-h),var(--danger-s),var(--danger-30-l),1);--danger-30-invert-l:var(--danger-100-l);--danger-30-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-30-invert-l),1);--danger-35:hsla(var(--danger-h),var(--danger-s),var(--danger-35-l),1);--danger-35-invert-l:var(--danger-100-l);--danger-35-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-35-invert-l),1);--danger-40:hsla(var(--danger-h),var(--danger-s),var(--danger-40-l),1);--danger-40-invert-l:var(--danger-100-l);--danger-40-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-40-invert-l),1);--danger-45:hsla(var(--danger-h),var(--danger-s),var(--danger-45-l),1);--danger-45-invert-l:var(--danger-100-l);--danger-45-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-45-invert-l),1);--danger-50:hsla(var(--danger-h),var(--danger-s),var(--danger-50-l),1);--danger-50-invert-l:var(--danger-100-l);--danger-50-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-50-invert-l),1);--danger-55:hsla(var(--danger-h),var(--danger-s),var(--danger-55-l),1);--danger-55-invert-l:var(--danger-100-l);--danger-55-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-55-invert-l),1);--danger-60:hsla(var(--danger-h),var(--danger-s),var(--danger-60-l),1);--danger-60-invert-l:var(--danger-100-l);--danger-60-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-60-invert-l),1);--danger-65:hsla(var(--danger-h),var(--danger-s),var(--danger-65-l),1);--danger-65-invert-l:var(--danger-00-l);--danger-65-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-65-invert-l),1);--danger-70:hsla(var(--danger-h),var(--danger-s),var(--danger-70-l),1);--danger-70-invert-l:var(--danger-05-l);--danger-70-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-70-invert-l),1);--danger-75:hsla(var(--danger-h),var(--danger-s),var(--danger-75-l),1);--danger-75-invert-l:var(--danger-10-l);--danger-75-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-75-invert-l),1);--danger-80:hsla(var(--danger-h),var(--danger-s),var(--danger-80-l),1);--danger-80-invert-l:var(--danger-15-l);--danger-80-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-80-invert-l),1);--danger-85:hsla(var(--danger-h),var(--danger-s),var(--danger-85-l),1);--danger-85-invert-l:var(--danger-20-l);--danger-85-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-85-invert-l),1);--danger-90:hsla(var(--danger-h),var(--danger-s),var(--danger-90-l),1);--danger-90-invert-l:var(--danger-25-l);--danger-90-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-90-invert-l),1);--danger-95:hsla(var(--danger-h),var(--danger-s),var(--danger-95-l),1);--danger-95-invert-l:var(--danger-25-l);--danger-95-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-95-invert-l),1);--danger-100:hsla(var(--danger-h),var(--danger-s),var(--danger-100-l),1);--danger-100-invert-l:var(--danger-30-l);--danger-100-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-100-invert-l),1);--danger-invert-l:var(--danger-05-l);--danger-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-invert-l),1);--danger-light-l:var(--danger-90-l);--danger-light:hsla(var(--danger-h),var(--danger-s),var(--danger-light-l),1);--danger-light-invert-l:var(--danger-25-l);--danger-light-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-light-invert-l),1);--danger-dark-l:var(--danger-10-l);--danger-dark:hsla(var(--danger-h),var(--danger-s),var(--danger-dark-l),1);--danger-dark-invert-l:var(--danger-75-l);--danger-dark-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-dark-invert-l),1);--danger-soft:hsla(var(--danger-h),var(--danger-s),var(--soft-l),1);--danger-bold:hsla(var(--danger-h),var(--danger-s),var(--bold-l),1);--danger-soft-invert:hsla(var(--danger-h),var(--danger-s),var(--soft-invert-l),1);--danger-bold-invert:hsla(var(--danger-h),var(--danger-s),var(--bold-invert-l),1);--danger-on-scheme-l:40%;--danger-on-scheme:hsla(var(--danger-h),var(--danger-s),var(--danger-on-scheme-l),1);--black-bis:#14161a;--black-ter:#1f2229;--grey-darker:#2e333d;--grey-dark:#404654;--grey:#69748c;--grey-light:#abb1bf;--grey-lighter:#d6d9e0;--white-ter:#f3f4f6;--white-bis:#f9fafb;--shadow-h:221deg;--shadow-s:14%;--shadow-l:4%;--size-1:3rem;--size-2:2.5rem;--size-3:2rem;--size-4:1.5rem;--size-5:1.25rem;--size-6:1rem;--size-7:0.75rem;--scheme-main:hsl(var(--scheme-h),var(--scheme-s),var(--scheme-main-l));--scheme-main-bis:hsl(var(--scheme-h),var(--scheme-s),var(--scheme-main-bis-l));--scheme-main-ter:hsl(var(--scheme-h),var(--scheme-s),var(--scheme-main-ter-l));--background:hsl(var(--scheme-h),var(--scheme-s),var(--background-l));--background-hover:hsl(var(--scheme-h),var(--scheme-s),calc(var(--background-l) + var(--hover-background-l-delta)));--background-active:hsl(var(--scheme-h),var(--scheme-s),calc(var(--background-l) + var(--active-background-l-delta)));--border-weak:hsl(var(--scheme-h),var(--scheme-s),var(--border-weak-l));--border:hsl(var(--scheme-h),var(--scheme-s),var(--border-l));--border-hover:hsl(var(--scheme-h),var(--scheme-s),calc(var(--border-l) + var(--hover-border-l-delta)));--border-active:hsl(var(--scheme-h),var(--scheme-s),calc(var(--border-l) + var(--active-border-l-delta)));--text-weak:hsl(var(--text-h),var(--text-s),var(--text-weak-l));--text:hsl(var(--text-h),var(--text-s),var(--text-l));--text-strong:hsl(var(--text-h),var(--text-s),var(--text-strong-l));--scheme-invert-ter:hsl(var(--scheme-h),var(--scheme-s),var(--scheme-invert-ter-l));--scheme-invert-bis:hsl(var(--scheme-h),var(--scheme-s),var(--scheme-invert-bis-l));--scheme-invert:hsl(var(--scheme-h),var(--scheme-s),var(--scheme-invert-l));--link:hsl(var(--link-h),var(--link-s),var(--link-l));--link-text:hsl(var(--link-h),var(--link-s),var(--link-on-scheme-l));--link-text-hover:hsl(var(--link-h),var(--link-s),calc(var(--link-on-scheme-l) + var(--hover-color-l-delta)));--link-text-active:hsl(var(--link-h),var(--link-s),calc(var(--link-on-scheme-l) + var(--active-color-l-delta)));--focus-h:var(--link-h);--focus-s:var(--link-s);--focus-l:var(--link-l);--focus-offset:1px;--focus-style:solid;--focus-width:2px;--focus-shadow-size:0 0 0 0.1875em;--focus-shadow-alpha:0.25;--code:hsl(var(--danger-h),var(--danger-s),var(--danger-on-scheme-l));--code-background:var(--background);--pre:var(--text);--pre-background:var(--background);--shadow:0 0.5em 1em -0.125em hsla(var(--shadow-h),var(--shadow-s),var(--shadow-l),0.1),0 0px 0 1px hsla(var(--shadow-h),var(--shadow-s),var(--shadow-l),0.02)}@media (prefers-color-scheme:light){:root{--scheme-h:221;--scheme-s:14%;--light-l:90%;--light-invert-l:20%;--dark-l:20%;--dark-invert-l:90%;--soft-l:90%;--bold-l:20%;--soft-invert-l:20%;--bold-invert-l:90%;--hover-background-l-delta:-5%;--active-background-l-delta:-10%;--hover-border-l-delta:-10%;--active-border-l-delta:-20%;--hover-color-l-delta:-5%;--active-color-l-delta:-10%;--hover-shadow-a-delta:-0.05;--active-shadow-a-delta:-0.1;--scheme-brightness:light;--scheme-main-l:100%;--scheme-main-bis-l:98%;--scheme-main-ter-l:96%;--background-l:96%;--border-weak-l:93%;--border-l:86%;--text-weak-l:48%;--text-strong-l:21%;--text-title-l:14%;--scheme-invert-ter-l:14%;--scheme-invert-bis-l:7%;--scheme-invert-l:4%;--family-primary:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Lucida Sans Unicode,Lucida Grande,Arial,sans-serif;--family-secondary:Inter,SF Pro,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Helvetica,Arial,sans-serif;--family-code:Inconsolata,Hack,SF Mono,Roboto Mono,Source Code Pro,Ubuntu Mono,monospace;--size-small:0.75rem;--size-normal:1rem;--size-medium:1.25rem;--size-large:1.5rem;--weight-light:300;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--block-spacing:1.5rem;--duration:294ms;--easing:ease-out;--radius-small:0.25rem;--radius:0.375rem;--radius-medium:0.5em;--radius-large:0.75rem;--radius-rounded:9999px;--speed:86ms;--arrow-color:var(--link);--loading-color:var(--border);--burger-h:var(--link-h);--burger-s:var(--link-s);--burger-l:var(--link-l);--burger-border-radius:0.5em;--burger-gap:5px;--burger-item-height:2px;--burger-item-width:20px;--white:hsla(var(--white-h),var(--white-s),var(--white-l),1);--white-base:hsla(var(--white-h),var(--white-s),var(--white-l),1);--white-rgb:255,255,255;--white-h:221deg;--white-s:14%;--white-l:100%;--white-invert-l:4%;--white-invert:#090a0c;--white-on-scheme-l:35%;--white-on-scheme:hsla(var(--white-h),var(--white-s),var(--white-on-scheme-l),1);--black:hsla(var(--black-h),var(--black-s),var(--black-l),1);--black-base:hsla(var(--black-h),var(--black-s),var(--black-l),1);--black-rgb:9,10,12;--black-h:221deg;--black-s:14%;--black-l:4%;--black-invert-l:100%;--black-invert:#fff;--black-on-scheme-l:4%;--black-on-scheme:hsla(var(--black-h),var(--black-s),var(--black-on-scheme-l),1);--light:hsla(var(--light-h),var(--light-s),var(--light-l),1);--light-base:hsla(var(--light-h),var(--light-s),var(--light-l),1);--light-rgb:243,244,246;--light-h:221deg;--light-s:14%;--light-l:96%;--light-invert-l:21%;--light-invert:#2e333d;--light-on-scheme-l:36%;--light-on-scheme:hsla(var(--light-h),var(--light-s),var(--light-on-scheme-l),1);--dark:hsla(var(--dark-h),var(--dark-s),var(--dark-l),1);--dark-base:hsla(var(--dark-h),var(--dark-s),var(--dark-l),1);--dark-rgb:46,51,61;--dark-h:221deg;--dark-s:14%;--dark-l:21%;--dark-invert-l:96%;--dark-invert:#f3f4f6;--dark-on-scheme-l:21%;--dark-on-scheme:hsla(var(--dark-h),var(--dark-s),var(--dark-on-scheme-l),1);--text:hsla(var(--text-h),var(--text-s),var(--text-l),1);--text-base:hsla(var(--text-h),var(--text-s),var(--text-l),1);--text-rgb:64,70,84;--text-h:221deg;--text-s:14%;--text-l:29%;--text-00-l:0%;--text-05-l:4%;--text-10-l:9%;--text-15-l:14%;--text-20-l:19%;--text-25-l:24%;--text-30-l:29%;--text-35-l:34%;--text-40-l:39%;--text-45-l:44%;--text-50-l:49%;--text-55-l:54%;--text-60-l:59%;--text-65-l:64%;--text-70-l:69%;--text-75-l:74%;--text-80-l:79%;--text-85-l:84%;--text-90-l:89%;--text-95-l:94%;--text-100-l:100%;--text-00:hsla(var(--text-h),var(--text-s),var(--text-00-l),1);--text-00-invert-l:var(--text-60-l);--text-00-invert:hsla(var(--text-h),var(--text-s),var(--text-00-invert-l),1);--text-05:hsla(var(--text-h),var(--text-s),var(--text-05-l),1);--text-05-invert-l:var(--text-60-l);--text-05-invert:hsla(var(--text-h),var(--text-s),var(--text-05-invert-l),1);--text-10:hsla(var(--text-h),var(--text-s),var(--text-10-l),1);--text-10-invert-l:var(--text-70-l);--text-10-invert:hsla(var(--text-h),var(--text-s),var(--text-10-invert-l),1);--text-15:hsla(var(--text-h),var(--text-s),var(--text-15-l),1);--text-15-invert-l:var(--text-75-l);--text-15-invert:hsla(var(--text-h),var(--text-s),var(--text-15-invert-l),1);--text-20:hsla(var(--text-h),var(--text-s),var(--text-20-l),1);--text-20-invert-l:var(--text-85-l);--text-20-invert:hsla(var(--text-h),var(--text-s),var(--text-20-invert-l),1);--text-25:hsla(var(--text-h),var(--text-s),var(--text-25-l),1);--text-25-invert-l:var(--text-95-l);--text-25-invert:hsla(var(--text-h),var(--text-s),var(--text-25-invert-l),1);--text-30:hsla(var(--text-h),var(--text-s),var(--text-30-l),1);--text-30-invert-l:var(--text-100-l);--text-30-invert:hsla(var(--text-h),var(--text-s),var(--text-30-invert-l),1);--text-35:hsla(var(--text-h),var(--text-s),var(--text-35-l),1);--text-35-invert-l:var(--text-100-l);--text-35-invert:hsla(var(--text-h),var(--text-s),var(--text-35-invert-l),1);--text-40:hsla(var(--text-h),var(--text-s),var(--text-40-l),1);--text-40-invert-l:var(--text-100-l);--text-40-invert:hsla(var(--text-h),var(--text-s),var(--text-40-invert-l),1);--text-45:hsla(var(--text-h),var(--text-s),var(--text-45-l),1);--text-45-invert-l:var(--text-100-l);--text-45-invert:hsla(var(--text-h),var(--text-s),var(--text-45-invert-l),1);--text-50:hsla(var(--text-h),var(--text-s),var(--text-50-l),1);--text-50-invert-l:var(--text-100-l);--text-50-invert:hsla(var(--text-h),var(--text-s),var(--text-50-invert-l),1);--text-55:hsla(var(--text-h),var(--text-s),var(--text-55-l),1);--text-55-invert-l:var(--text-100-l);--text-55-invert:hsla(var(--text-h),var(--text-s),var(--text-55-invert-l),1);--text-60:hsla(var(--text-h),var(--text-s),var(--text-60-l),1);--text-60-invert-l:var(--text-05-l);--text-60-invert:hsla(var(--text-h),var(--text-s),var(--text-60-invert-l),1);--text-65:hsla(var(--text-h),var(--text-s),var(--text-65-l),1);--text-65-invert-l:var(--text-05-l);--text-65-invert:hsla(var(--text-h),var(--text-s),var(--text-65-invert-l),1);--text-70:hsla(var(--text-h),var(--text-s),var(--text-70-l),1);--text-70-invert-l:var(--text-10-l);--text-70-invert:hsla(var(--text-h),var(--text-s),var(--text-70-invert-l),1);--text-75:hsla(var(--text-h),var(--text-s),var(--text-75-l),1);--text-75-invert-l:var(--text-15-l);--text-75-invert:hsla(var(--text-h),var(--text-s),var(--text-75-invert-l),1);--text-80:hsla(var(--text-h),var(--text-s),var(--text-80-l),1);--text-80-invert-l:var(--text-15-l);--text-80-invert:hsla(var(--text-h),var(--text-s),var(--text-80-invert-l),1);--text-85:hsla(var(--text-h),var(--text-s),var(--text-85-l),1);--text-85-invert-l:var(--text-20-l);--text-85-invert:hsla(var(--text-h),var(--text-s),var(--text-85-invert-l),1);--text-90:hsla(var(--text-h),var(--text-s),var(--text-90-l),1);--text-90-invert-l:var(--text-20-l);--text-90-invert:hsla(var(--text-h),var(--text-s),var(--text-90-invert-l),1);--text-95:hsla(var(--text-h),var(--text-s),var(--text-95-l),1);--text-95-invert-l:var(--text-25-l);--text-95-invert:hsla(var(--text-h),var(--text-s),var(--text-95-invert-l),1);--text-100:hsla(var(--text-h),var(--text-s),var(--text-100-l),1);--text-100-invert-l:var(--text-30-l);--text-100-invert:hsla(var(--text-h),var(--text-s),var(--text-100-invert-l),1);--text-invert-l:var(--text-100-l);--text-invert:hsla(var(--text-h),var(--text-s),var(--text-invert-l),1);--text-light-l:var(--text-90-l);--text-light:hsla(var(--text-h),var(--text-s),var(--text-light-l),1);--text-light-invert-l:var(--text-20-l);--text-light-invert:hsla(var(--text-h),var(--text-s),var(--text-light-invert-l),1);--text-dark-l:var(--text-10-l);--text-dark:hsla(var(--text-h),var(--text-s),var(--text-dark-l),1);--text-dark-invert-l:var(--text-70-l);--text-dark-invert:hsla(var(--text-h),var(--text-s),var(--text-dark-invert-l),1);--text-soft:hsla(var(--text-h),var(--text-s),var(--soft-l),1);--text-bold:hsla(var(--text-h),var(--text-s),var(--bold-l),1);--text-soft-invert:hsla(var(--text-h),var(--text-s),var(--soft-invert-l),1);--text-bold-invert:hsla(var(--text-h),var(--text-s),var(--bold-invert-l),1);--text-on-scheme-l:29%;--text-on-scheme:hsla(var(--text-h),var(--text-s),var(--text-on-scheme-l),1);--primary:hsla(var(--primary-h),var(--primary-s),var(--primary-l),1);--primary-base:hsla(var(--primary-h),var(--primary-s),var(--primary-l),1);--primary-rgb:0,209,178;--primary-h:171deg;--primary-s:100%;--primary-l:41%;--primary-00-l:1%;--primary-05-l:6%;--primary-10-l:11%;--primary-15-l:16%;--primary-20-l:21%;--primary-25-l:26%;--primary-30-l:31%;--primary-35-l:36%;--primary-40-l:41%;--primary-45-l:46%;--primary-50-l:51%;--primary-55-l:56%;--primary-60-l:61%;--primary-65-l:66%;--primary-70-l:71%;--primary-75-l:76%;--primary-80-l:81%;--primary-85-l:86%;--primary-90-l:91%;--primary-95-l:96%;--primary-100-l:100%;--primary-00:hsla(var(--primary-h),var(--primary-s),var(--primary-00-l),1);--primary-00-invert-l:var(--primary-30-l);--primary-00-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-00-invert-l),1);--primary-05:hsla(var(--primary-h),var(--primary-s),var(--primary-05-l),1);--primary-05-invert-l:var(--primary-40-l);--primary-05-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-05-invert-l),1);--primary-10:hsla(var(--primary-h),var(--primary-s),var(--primary-10-l),1);--primary-10-invert-l:var(--primary-50-l);--primary-10-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-10-invert-l),1);--primary-15:hsla(var(--primary-h),var(--primary-s),var(--primary-15-l),1);--primary-15-invert-l:var(--primary-100-l);--primary-15-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-15-invert-l),1);--primary-20:hsla(var(--primary-h),var(--primary-s),var(--primary-20-l),1);--primary-20-invert-l:var(--primary-100-l);--primary-20-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-20-invert-l),1);--primary-25:hsla(var(--primary-h),var(--primary-s),var(--primary-25-l),1);--primary-25-invert-l:var(--primary-100-l);--primary-25-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-25-invert-l),1);--primary-30:hsla(var(--primary-h),var(--primary-s),var(--primary-30-l),1);--primary-30-invert-l:var(--primary-00-l);--primary-30-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-30-invert-l),1);--primary-35:hsla(var(--primary-h),var(--primary-s),var(--primary-35-l),1);--primary-35-invert-l:var(--primary-00-l);--primary-35-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-35-invert-l),1);--primary-40:hsla(var(--primary-h),var(--primary-s),var(--primary-40-l),1);--primary-40-invert-l:var(--primary-05-l);--primary-40-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-40-invert-l),1);--primary-45:hsla(var(--primary-h),var(--primary-s),var(--primary-45-l),1);--primary-45-invert-l:var(--primary-05-l);--primary-45-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-45-invert-l),1);--primary-50:hsla(var(--primary-h),var(--primary-s),var(--primary-50-l),1);--primary-50-invert-l:var(--primary-10-l);--primary-50-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-50-invert-l),1);--primary-55:hsla(var(--primary-h),var(--primary-s),var(--primary-55-l),1);--primary-55-invert-l:var(--primary-10-l);--primary-55-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-55-invert-l),1);--primary-60:hsla(var(--primary-h),var(--primary-s),var(--primary-60-l),1);--primary-60-invert-l:var(--primary-10-l);--primary-60-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-60-invert-l),1);--primary-65:hsla(var(--primary-h),var(--primary-s),var(--primary-65-l),1);--primary-65-invert-l:var(--primary-10-l);--primary-65-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-65-invert-l),1);--primary-70:hsla(var(--primary-h),var(--primary-s),var(--primary-70-l),1);--primary-70-invert-l:var(--primary-10-l);--primary-70-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-70-invert-l),1);--primary-75:hsla(var(--primary-h),var(--primary-s),var(--primary-75-l),1);--primary-75-invert-l:var(--primary-10-l);--primary-75-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-75-invert-l),1);--primary-80:hsla(var(--primary-h),var(--primary-s),var(--primary-80-l),1);--primary-80-invert-l:var(--primary-10-l);--primary-80-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-80-invert-l),1);--primary-85:hsla(var(--primary-h),var(--primary-s),var(--primary-85-l),1);--primary-85-invert-l:var(--primary-10-l);--primary-85-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-85-invert-l),1);--primary-90:hsla(var(--primary-h),var(--primary-s),var(--primary-90-l),1);--primary-90-invert-l:var(--primary-10-l);--primary-90-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-90-invert-l),1);--primary-95:hsla(var(--primary-h),var(--primary-s),var(--primary-95-l),1);--primary-95-invert-l:var(--primary-10-l);--primary-95-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-95-invert-l),1);--primary-100:hsla(var(--primary-h),var(--primary-s),var(--primary-100-l),1);--primary-100-invert-l:var(--primary-15-l);--primary-100-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-100-invert-l),1);--primary-invert-l:var(--primary-05-l);--primary-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-invert-l),1);--primary-light-l:var(--primary-90-l);--primary-light:hsla(var(--primary-h),var(--primary-s),var(--primary-light-l),1);--primary-light-invert-l:var(--primary-10-l);--primary-light-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-light-invert-l),1);--primary-dark-l:var(--primary-10-l);--primary-dark:hsla(var(--primary-h),var(--primary-s),var(--primary-dark-l),1);--primary-dark-invert-l:var(--primary-50-l);--primary-dark-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-dark-invert-l),1);--primary-soft:hsla(var(--primary-h),var(--primary-s),var(--soft-l),1);--primary-bold:hsla(var(--primary-h),var(--primary-s),var(--bold-l),1);--primary-soft-invert:hsla(var(--primary-h),var(--primary-s),var(--soft-invert-l),1);--primary-bold-invert:hsla(var(--primary-h),var(--primary-s),var(--bold-invert-l),1);--primary-on-scheme-l:21%;--primary-on-scheme:hsla(var(--primary-h),var(--primary-s),var(--primary-on-scheme-l),1);--link:hsla(var(--link-h),var(--link-s),var(--link-l),1);--link-base:hsla(var(--link-h),var(--link-s),var(--link-l),1);--link-rgb:66,88,255;--link-h:233deg;--link-s:100%;--link-l:63%;--link-00-l:0%;--link-05-l:3%;--link-10-l:8%;--link-15-l:13%;--link-20-l:18%;--link-25-l:23%;--link-30-l:28%;--link-35-l:33%;--link-40-l:38%;--link-45-l:43%;--link-50-l:48%;--link-55-l:53%;--link-60-l:58%;--link-65-l:63%;--link-70-l:68%;--link-75-l:73%;--link-80-l:78%;--link-85-l:83%;--link-90-l:88%;--link-95-l:93%;--link-100-l:100%;--link-00:hsla(var(--link-h),var(--link-s),var(--link-00-l),1);--link-00-invert-l:var(--link-75-l);--link-00-invert:hsla(var(--link-h),var(--link-s),var(--link-00-invert-l),1);--link-05:hsla(var(--link-h),var(--link-s),var(--link-05-l),1);--link-05-invert-l:var(--link-75-l);--link-05-invert:hsla(var(--link-h),var(--link-s),var(--link-05-invert-l),1);--link-10:hsla(var(--link-h),var(--link-s),var(--link-10-l),1);--link-10-invert-l:var(--link-75-l);--link-10-invert:hsla(var(--link-h),var(--link-s),var(--link-10-invert-l),1);--link-15:hsla(var(--link-h),var(--link-s),var(--link-15-l),1);--link-15-invert-l:var(--link-80-l);--link-15-invert:hsla(var(--link-h),var(--link-s),var(--link-15-invert-l),1);--link-20:hsla(var(--link-h),var(--link-s),var(--link-20-l),1);--link-20-invert-l:var(--link-80-l);--link-20-invert:hsla(var(--link-h),var(--link-s),var(--link-20-invert-l),1);--link-25:hsla(var(--link-h),var(--link-s),var(--link-25-l),1);--link-25-invert-l:var(--link-85-l);--link-25-invert:hsla(var(--link-h),var(--link-s),var(--link-25-invert-l),1);--link-30:hsla(var(--link-h),var(--link-s),var(--link-30-l),1);--link-30-invert-l:var(--link-90-l);--link-30-invert:hsla(var(--link-h),var(--link-s),var(--link-30-invert-l),1);--link-35:hsla(var(--link-h),var(--link-s),var(--link-35-l),1);--link-35-invert-l:var(--link-90-l);--link-35-invert:hsla(var(--link-h),var(--link-s),var(--link-35-invert-l),1);--link-40:hsla(var(--link-h),var(--link-s),var(--link-40-l),1);--link-40-invert-l:var(--link-95-l);--link-40-invert:hsla(var(--link-h),var(--link-s),var(--link-40-invert-l),1);--link-45:hsla(var(--link-h),var(--link-s),var(--link-45-l),1);--link-45-invert-l:var(--link-100-l);--link-45-invert:hsla(var(--link-h),var(--link-s),var(--link-45-invert-l),1);--link-50:hsla(var(--link-h),var(--link-s),var(--link-50-l),1);--link-50-invert-l:var(--link-100-l);--link-50-invert:hsla(var(--link-h),var(--link-s),var(--link-50-invert-l),1);--link-55:hsla(var(--link-h),var(--link-s),var(--link-55-l),1);--link-55-invert-l:var(--link-100-l);--link-55-invert:hsla(var(--link-h),var(--link-s),var(--link-55-invert-l),1);--link-60:hsla(var(--link-h),var(--link-s),var(--link-60-l),1);--link-60-invert-l:var(--link-100-l);--link-60-invert:hsla(var(--link-h),var(--link-s),var(--link-60-invert-l),1);--link-65:hsla(var(--link-h),var(--link-s),var(--link-65-l),1);--link-65-invert-l:var(--link-100-l);--link-65-invert:hsla(var(--link-h),var(--link-s),var(--link-65-invert-l),1);--link-70:hsla(var(--link-h),var(--link-s),var(--link-70-l),1);--link-70-invert-l:var(--link-100-l);--link-70-invert:hsla(var(--link-h),var(--link-s),var(--link-70-invert-l),1);--link-75:hsla(var(--link-h),var(--link-s),var(--link-75-l),1);--link-75-invert-l:var(--link-10-l);--link-75-invert:hsla(var(--link-h),var(--link-s),var(--link-75-invert-l),1);--link-80:hsla(var(--link-h),var(--link-s),var(--link-80-l),1);--link-80-invert-l:var(--link-20-l);--link-80-invert:hsla(var(--link-h),var(--link-s),var(--link-80-invert-l),1);--link-85:hsla(var(--link-h),var(--link-s),var(--link-85-l),1);--link-85-invert-l:var(--link-25-l);--link-85-invert:hsla(var(--link-h),var(--link-s),var(--link-85-invert-l),1);--link-90:hsla(var(--link-h),var(--link-s),var(--link-90-l),1);--link-90-invert-l:var(--link-35-l);--link-90-invert:hsla(var(--link-h),var(--link-s),var(--link-90-invert-l),1);--link-95:hsla(var(--link-h),var(--link-s),var(--link-95-l),1);--link-95-invert-l:var(--link-40-l);--link-95-invert:hsla(var(--link-h),var(--link-s),var(--link-95-invert-l),1);--link-100:hsla(var(--link-h),var(--link-s),var(--link-100-l),1);--link-100-invert-l:var(--link-50-l);--link-100-invert:hsla(var(--link-h),var(--link-s),var(--link-100-invert-l),1);--link-invert-l:var(--link-100-l);--link-invert:hsla(var(--link-h),var(--link-s),var(--link-invert-l),1);--link-light-l:var(--link-90-l);--link-light:hsla(var(--link-h),var(--link-s),var(--link-light-l),1);--link-light-invert-l:var(--link-35-l);--link-light-invert:hsla(var(--link-h),var(--link-s),var(--link-light-invert-l),1);--link-dark-l:var(--link-10-l);--link-dark:hsla(var(--link-h),var(--link-s),var(--link-dark-l),1);--link-dark-invert-l:var(--link-75-l);--link-dark-invert:hsla(var(--link-h),var(--link-s),var(--link-dark-invert-l),1);--link-soft:hsla(var(--link-h),var(--link-s),var(--soft-l),1);--link-bold:hsla(var(--link-h),var(--link-s),var(--bold-l),1);--link-soft-invert:hsla(var(--link-h),var(--link-s),var(--soft-invert-l),1);--link-bold-invert:hsla(var(--link-h),var(--link-s),var(--bold-invert-l),1);--link-on-scheme-l:58%;--link-on-scheme:hsla(var(--link-h),var(--link-s),var(--link-on-scheme-l),1);--info:hsla(var(--info-h),var(--info-s),var(--info-l),1);--info-base:hsla(var(--info-h),var(--info-s),var(--info-l),1);--info-rgb:102,209,255;--info-h:198deg;--info-s:100%;--info-l:70%;--info-00-l:0%;--info-05-l:5%;--info-10-l:10%;--info-15-l:15%;--info-20-l:20%;--info-25-l:25%;--info-30-l:30%;--info-35-l:35%;--info-40-l:40%;--info-45-l:45%;--info-50-l:50%;--info-55-l:55%;--info-60-l:60%;--info-65-l:65%;--info-70-l:70%;--info-75-l:75%;--info-80-l:80%;--info-85-l:85%;--info-90-l:90%;--info-95-l:95%;--info-100-l:100%;--info-00:hsla(var(--info-h),var(--info-s),var(--info-00-l),1);--info-00-invert-l:var(--info-45-l);--info-00-invert:hsla(var(--info-h),var(--info-s),var(--info-00-invert-l),1);--info-05:hsla(var(--info-h),var(--info-s),var(--info-05-l),1);--info-05-invert-l:var(--info-50-l);--info-05-invert:hsla(var(--info-h),var(--info-s),var(--info-05-invert-l),1);--info-10:hsla(var(--info-h),var(--info-s),var(--info-10-l),1);--info-10-invert-l:var(--info-60-l);--info-10-invert:hsla(var(--info-h),var(--info-s),var(--info-10-invert-l),1);--info-15:hsla(var(--info-h),var(--info-s),var(--info-15-l),1);--info-15-invert-l:var(--info-80-l);--info-15-invert:hsla(var(--info-h),var(--info-s),var(--info-15-invert-l),1);--info-20:hsla(var(--info-h),var(--info-s),var(--info-20-l),1);--info-20-invert-l:var(--info-95-l);--info-20-invert:hsla(var(--info-h),var(--info-s),var(--info-20-invert-l),1);--info-25:hsla(var(--info-h),var(--info-s),var(--info-25-l),1);--info-25-invert-l:var(--info-100-l);--info-25-invert:hsla(var(--info-h),var(--info-s),var(--info-25-invert-l),1);--info-30:hsla(var(--info-h),var(--info-s),var(--info-30-l),1);--info-30-invert-l:var(--info-100-l);--info-30-invert:hsla(var(--info-h),var(--info-s),var(--info-30-invert-l),1);--info-35:hsla(var(--info-h),var(--info-s),var(--info-35-l),1);--info-35-invert-l:var(--info-100-l);--info-35-invert:hsla(var(--info-h),var(--info-s),var(--info-35-invert-l),1);--info-40:hsla(var(--info-h),var(--info-s),var(--info-40-l),1);--info-40-invert-l:var(--info-100-l);--info-40-invert:hsla(var(--info-h),var(--info-s),var(--info-40-invert-l),1);--info-45:hsla(var(--info-h),var(--info-s),var(--info-45-l),1);--info-45-invert-l:var(--info-00-l);--info-45-invert:hsla(var(--info-h),var(--info-s),var(--info-45-invert-l),1);--info-50:hsla(var(--info-h),var(--info-s),var(--info-50-l),1);--info-50-invert-l:var(--info-05-l);--info-50-invert:hsla(var(--info-h),var(--info-s),var(--info-50-invert-l),1);--info-55:hsla(var(--info-h),var(--info-s),var(--info-55-l),1);--info-55-invert-l:var(--info-05-l);--info-55-invert:hsla(var(--info-h),var(--info-s),var(--info-55-invert-l),1);--info-60:hsla(var(--info-h),var(--info-s),var(--info-60-l),1);--info-60-invert-l:var(--info-10-l);--info-60-invert:hsla(var(--info-h),var(--info-s),var(--info-60-invert-l),1);--info-65:hsla(var(--info-h),var(--info-s),var(--info-65-l),1);--info-65-invert-l:var(--info-10-l);--info-65-invert:hsla(var(--info-h),var(--info-s),var(--info-65-invert-l),1);--info-70:hsla(var(--info-h),var(--info-s),var(--info-70-l),1);--info-70-invert-l:var(--info-10-l);--info-70-invert:hsla(var(--info-h),var(--info-s),var(--info-70-invert-l),1);--info-75:hsla(var(--info-h),var(--info-s),var(--info-75-l),1);--info-75-invert-l:var(--info-10-l);--info-75-invert:hsla(var(--info-h),var(--info-s),var(--info-75-invert-l),1);--info-80:hsla(var(--info-h),var(--info-s),var(--info-80-l),1);--info-80-invert-l:var(--info-15-l);--info-80-invert:hsla(var(--info-h),var(--info-s),var(--info-80-invert-l),1);--info-85:hsla(var(--info-h),var(--info-s),var(--info-85-l),1);--info-85-invert-l:var(--info-15-l);--info-85-invert:hsla(var(--info-h),var(--info-s),var(--info-85-invert-l),1);--info-90:hsla(var(--info-h),var(--info-s),var(--info-90-l),1);--info-90-invert-l:var(--info-15-l);--info-90-invert:hsla(var(--info-h),var(--info-s),var(--info-90-invert-l),1);--info-95:hsla(var(--info-h),var(--info-s),var(--info-95-l),1);--info-95-invert-l:var(--info-20-l);--info-95-invert:hsla(var(--info-h),var(--info-s),var(--info-95-invert-l),1);--info-100:hsla(var(--info-h),var(--info-s),var(--info-100-l),1);--info-100-invert-l:var(--info-20-l);--info-100-invert:hsla(var(--info-h),var(--info-s),var(--info-100-invert-l),1);--info-invert-l:var(--info-10-l);--info-invert:hsla(var(--info-h),var(--info-s),var(--info-invert-l),1);--info-light-l:var(--info-90-l);--info-light:hsla(var(--info-h),var(--info-s),var(--info-light-l),1);--info-light-invert-l:var(--info-15-l);--info-light-invert:hsla(var(--info-h),var(--info-s),var(--info-light-invert-l),1);--info-dark-l:var(--info-10-l);--info-dark:hsla(var(--info-h),var(--info-s),var(--info-dark-l),1);--info-dark-invert-l:var(--info-60-l);--info-dark-invert:hsla(var(--info-h),var(--info-s),var(--info-dark-invert-l),1);--info-soft:hsla(var(--info-h),var(--info-s),var(--soft-l),1);--info-bold:hsla(var(--info-h),var(--info-s),var(--bold-l),1);--info-soft-invert:hsla(var(--info-h),var(--info-s),var(--soft-invert-l),1);--info-bold-invert:hsla(var(--info-h),var(--info-s),var(--bold-invert-l),1);--info-on-scheme-l:25%;--info-on-scheme:hsla(var(--info-h),var(--info-s),var(--info-on-scheme-l),1);--success:hsla(var(--success-h),var(--success-s),var(--success-l),1);--success-base:hsla(var(--success-h),var(--success-s),var(--success-l),1);--success-rgb:72,199,142;--success-h:153deg;--success-s:53%;--success-l:53%;--success-00-l:0%;--success-05-l:3%;--success-10-l:8%;--success-15-l:13%;--success-20-l:18%;--success-25-l:23%;--success-30-l:28%;--success-35-l:33%;--success-40-l:38%;--success-45-l:43%;--success-50-l:48%;--success-55-l:53%;--success-60-l:58%;--success-65-l:63%;--success-70-l:68%;--success-75-l:73%;--success-80-l:78%;--success-85-l:83%;--success-90-l:88%;--success-95-l:93%;--success-100-l:100%;--success-00:hsla(var(--success-h),var(--success-s),var(--success-00-l),1);--success-00-invert-l:var(--success-45-l);--success-00-invert:hsla(var(--success-h),var(--success-s),var(--success-00-invert-l),1);--success-05:hsla(var(--success-h),var(--success-s),var(--success-05-l),1);--success-05-invert-l:var(--success-45-l);--success-05-invert:hsla(var(--success-h),var(--success-s),var(--success-05-invert-l),1);--success-10:hsla(var(--success-h),var(--success-s),var(--success-10-l),1);--success-10-invert-l:var(--success-55-l);--success-10-invert:hsla(var(--success-h),var(--success-s),var(--success-10-invert-l),1);--success-15:hsla(var(--success-h),var(--success-s),var(--success-15-l),1);--success-15-invert-l:var(--success-75-l);--success-15-invert:hsla(var(--success-h),var(--success-s),var(--success-15-invert-l),1);--success-20:hsla(var(--success-h),var(--success-s),var(--success-20-l),1);--success-20-invert-l:var(--success-90-l);--success-20-invert:hsla(var(--success-h),var(--success-s),var(--success-20-invert-l),1);--success-25:hsla(var(--success-h),var(--success-s),var(--success-25-l),1);--success-25-invert-l:var(--success-100-l);--success-25-invert:hsla(var(--success-h),var(--success-s),var(--success-25-invert-l),1);--success-30:hsla(var(--success-h),var(--success-s),var(--success-30-l),1);--success-30-invert-l:var(--success-100-l);--success-30-invert:hsla(var(--success-h),var(--success-s),var(--success-30-invert-l),1);--success-35:hsla(var(--success-h),var(--success-s),var(--success-35-l),1);--success-35-invert-l:var(--success-100-l);--success-35-invert:hsla(var(--success-h),var(--success-s),var(--success-35-invert-l),1);--success-40:hsla(var(--success-h),var(--success-s),var(--success-40-l),1);--success-40-invert-l:var(--success-100-l);--success-40-invert:hsla(var(--success-h),var(--success-s),var(--success-40-invert-l),1);--success-45:hsla(var(--success-h),var(--success-s),var(--success-45-l),1);--success-45-invert-l:var(--success-05-l);--success-45-invert:hsla(var(--success-h),var(--success-s),var(--success-45-invert-l),1);--success-50:hsla(var(--success-h),var(--success-s),var(--success-50-l),1);--success-50-invert-l:var(--success-05-l);--success-50-invert:hsla(var(--success-h),var(--success-s),var(--success-50-invert-l),1);--success-55:hsla(var(--success-h),var(--success-s),var(--success-55-l),1);--success-55-invert-l:var(--success-10-l);--success-55-invert:hsla(var(--success-h),var(--success-s),var(--success-55-invert-l),1);--success-60:hsla(var(--success-h),var(--success-s),var(--success-60-l),1);--success-60-invert-l:var(--success-10-l);--success-60-invert:hsla(var(--success-h),var(--success-s),var(--success-60-invert-l),1);--success-65:hsla(var(--success-h),var(--success-s),var(--success-65-l),1);--success-65-invert-l:var(--success-10-l);--success-65-invert:hsla(var(--success-h),var(--success-s),var(--success-65-invert-l),1);--success-70:hsla(var(--success-h),var(--success-s),var(--success-70-l),1);--success-70-invert-l:var(--success-10-l);--success-70-invert:hsla(var(--success-h),var(--success-s),var(--success-70-invert-l),1);--success-75:hsla(var(--success-h),var(--success-s),var(--success-75-l),1);--success-75-invert-l:var(--success-15-l);--success-75-invert:hsla(var(--success-h),var(--success-s),var(--success-75-invert-l),1);--success-80:hsla(var(--success-h),var(--success-s),var(--success-80-l),1);--success-80-invert-l:var(--success-15-l);--success-80-invert:hsla(var(--success-h),var(--success-s),var(--success-80-invert-l),1);--success-85:hsla(var(--success-h),var(--success-s),var(--success-85-l),1);--success-85-invert-l:var(--success-15-l);--success-85-invert:hsla(var(--success-h),var(--success-s),var(--success-85-invert-l),1);--success-90:hsla(var(--success-h),var(--success-s),var(--success-90-l),1);--success-90-invert-l:var(--success-20-l);--success-90-invert:hsla(var(--success-h),var(--success-s),var(--success-90-invert-l),1);--success-95:hsla(var(--success-h),var(--success-s),var(--success-95-l),1);--success-95-invert-l:var(--success-20-l);--success-95-invert:hsla(var(--success-h),var(--success-s),var(--success-95-invert-l),1);--success-100:hsla(var(--success-h),var(--success-s),var(--success-100-l),1);--success-100-invert-l:var(--success-20-l);--success-100-invert:hsla(var(--success-h),var(--success-s),var(--success-100-invert-l),1);--success-invert-l:var(--success-10-l);--success-invert:hsla(var(--success-h),var(--success-s),var(--success-invert-l),1);--success-light-l:var(--success-90-l);--success-light:hsla(var(--success-h),var(--success-s),var(--success-light-l),1);--success-light-invert-l:var(--success-20-l);--success-light-invert:hsla(var(--success-h),var(--success-s),var(--success-light-invert-l),1);--success-dark-l:var(--success-10-l);--success-dark:hsla(var(--success-h),var(--success-s),var(--success-dark-l),1);--success-dark-invert-l:var(--success-55-l);--success-dark-invert:hsla(var(--success-h),var(--success-s),var(--success-dark-invert-l),1);--success-soft:hsla(var(--success-h),var(--success-s),var(--soft-l),1);--success-bold:hsla(var(--success-h),var(--success-s),var(--bold-l),1);--success-soft-invert:hsla(var(--success-h),var(--success-s),var(--soft-invert-l),1);--success-bold-invert:hsla(var(--success-h),var(--success-s),var(--bold-invert-l),1);--success-on-scheme-l:23%;--success-on-scheme:hsla(var(--success-h),var(--success-s),var(--success-on-scheme-l),1);--warning:hsla(var(--warning-h),var(--warning-s),var(--warning-l),1);--warning-base:hsla(var(--warning-h),var(--warning-s),var(--warning-l),1);--warning-rgb:255,183,15;--warning-h:42deg;--warning-s:100%;--warning-l:53%;--warning-00-l:0%;--warning-05-l:3%;--warning-10-l:8%;--warning-15-l:13%;--warning-20-l:18%;--warning-25-l:23%;--warning-30-l:28%;--warning-35-l:33%;--warning-40-l:38%;--warning-45-l:43%;--warning-50-l:48%;--warning-55-l:53%;--warning-60-l:58%;--warning-65-l:63%;--warning-70-l:68%;--warning-75-l:73%;--warning-80-l:78%;--warning-85-l:83%;--warning-90-l:88%;--warning-95-l:93%;--warning-100-l:100%;--warning-00:hsla(var(--warning-h),var(--warning-s),var(--warning-00-l),1);--warning-00-invert-l:var(--warning-40-l);--warning-00-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-00-invert-l),1);--warning-05:hsla(var(--warning-h),var(--warning-s),var(--warning-05-l),1);--warning-05-invert-l:var(--warning-45-l);--warning-05-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-05-invert-l),1);--warning-10:hsla(var(--warning-h),var(--warning-s),var(--warning-10-l),1);--warning-10-invert-l:var(--warning-50-l);--warning-10-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-10-invert-l),1);--warning-15:hsla(var(--warning-h),var(--warning-s),var(--warning-15-l),1);--warning-15-invert-l:var(--warning-70-l);--warning-15-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-15-invert-l),1);--warning-20:hsla(var(--warning-h),var(--warning-s),var(--warning-20-l),1);--warning-20-invert-l:var(--warning-100-l);--warning-20-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-20-invert-l),1);--warning-25:hsla(var(--warning-h),var(--warning-s),var(--warning-25-l),1);--warning-25-invert-l:var(--warning-100-l);--warning-25-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-25-invert-l),1);--warning-30:hsla(var(--warning-h),var(--warning-s),var(--warning-30-l),1);--warning-30-invert-l:var(--warning-100-l);--warning-30-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-30-invert-l),1);--warning-35:hsla(var(--warning-h),var(--warning-s),var(--warning-35-l),1);--warning-35-invert-l:var(--warning-100-l);--warning-35-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-35-invert-l),1);--warning-40:hsla(var(--warning-h),var(--warning-s),var(--warning-40-l),1);--warning-40-invert-l:var(--warning-00-l);--warning-40-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-40-invert-l),1);--warning-45:hsla(var(--warning-h),var(--warning-s),var(--warning-45-l),1);--warning-45-invert-l:var(--warning-05-l);--warning-45-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-45-invert-l),1);--warning-50:hsla(var(--warning-h),var(--warning-s),var(--warning-50-l),1);--warning-50-invert-l:var(--warning-10-l);--warning-50-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-50-invert-l),1);--warning-55:hsla(var(--warning-h),var(--warning-s),var(--warning-55-l),1);--warning-55-invert-l:var(--warning-10-l);--warning-55-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-55-invert-l),1);--warning-60:hsla(var(--warning-h),var(--warning-s),var(--warning-60-l),1);--warning-60-invert-l:var(--warning-10-l);--warning-60-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-60-invert-l),1);--warning-65:hsla(var(--warning-h),var(--warning-s),var(--warning-65-l),1);--warning-65-invert-l:var(--warning-10-l);--warning-65-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-65-invert-l),1);--warning-70:hsla(var(--warning-h),var(--warning-s),var(--warning-70-l),1);--warning-70-invert-l:var(--warning-15-l);--warning-70-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-70-invert-l),1);--warning-75:hsla(var(--warning-h),var(--warning-s),var(--warning-75-l),1);--warning-75-invert-l:var(--warning-15-l);--warning-75-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-75-invert-l),1);--warning-80:hsla(var(--warning-h),var(--warning-s),var(--warning-80-l),1);--warning-80-invert-l:var(--warning-15-l);--warning-80-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-80-invert-l),1);--warning-85:hsla(var(--warning-h),var(--warning-s),var(--warning-85-l),1);--warning-85-invert-l:var(--warning-15-l);--warning-85-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-85-invert-l),1);--warning-90:hsla(var(--warning-h),var(--warning-s),var(--warning-90-l),1);--warning-90-invert-l:var(--warning-15-l);--warning-90-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-90-invert-l),1);--warning-95:hsla(var(--warning-h),var(--warning-s),var(--warning-95-l),1);--warning-95-invert-l:var(--warning-15-l);--warning-95-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-95-invert-l),1);--warning-100:hsla(var(--warning-h),var(--warning-s),var(--warning-100-l),1);--warning-100-invert-l:var(--warning-20-l);--warning-100-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-100-invert-l),1);--warning-invert-l:var(--warning-10-l);--warning-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-invert-l),1);--warning-light-l:var(--warning-90-l);--warning-light:hsla(var(--warning-h),var(--warning-s),var(--warning-light-l),1);--warning-light-invert-l:var(--warning-15-l);--warning-light-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-light-invert-l),1);--warning-dark-l:var(--warning-10-l);--warning-dark:hsla(var(--warning-h),var(--warning-s),var(--warning-dark-l),1);--warning-dark-invert-l:var(--warning-50-l);--warning-dark-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-dark-invert-l),1);--warning-soft:hsla(var(--warning-h),var(--warning-s),var(--soft-l),1);--warning-bold:hsla(var(--warning-h),var(--warning-s),var(--bold-l),1);--warning-soft-invert:hsla(var(--warning-h),var(--warning-s),var(--soft-invert-l),1);--warning-bold-invert:hsla(var(--warning-h),var(--warning-s),var(--bold-invert-l),1);--warning-on-scheme-l:23%;--warning-on-scheme:hsla(var(--warning-h),var(--warning-s),var(--warning-on-scheme-l),1);--danger:hsla(var(--danger-h),var(--danger-s),var(--danger-l),1);--danger-base:hsla(var(--danger-h),var(--danger-s),var(--danger-l),1);--danger-rgb:255,102,133;--danger-h:348deg;--danger-s:100%;--danger-l:70%;--danger-00-l:0%;--danger-05-l:5%;--danger-10-l:10%;--danger-15-l:15%;--danger-20-l:20%;--danger-25-l:25%;--danger-30-l:30%;--danger-35-l:35%;--danger-40-l:40%;--danger-45-l:45%;--danger-50-l:50%;--danger-55-l:55%;--danger-60-l:60%;--danger-65-l:65%;--danger-70-l:70%;--danger-75-l:75%;--danger-80-l:80%;--danger-85-l:85%;--danger-90-l:90%;--danger-95-l:95%;--danger-100-l:100%;--danger-00:hsla(var(--danger-h),var(--danger-s),var(--danger-00-l),1);--danger-00-invert-l:var(--danger-65-l);--danger-00-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-00-invert-l),1);--danger-05:hsla(var(--danger-h),var(--danger-s),var(--danger-05-l),1);--danger-05-invert-l:var(--danger-70-l);--danger-05-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-05-invert-l),1);--danger-10:hsla(var(--danger-h),var(--danger-s),var(--danger-10-l),1);--danger-10-invert-l:var(--danger-75-l);--danger-10-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-10-invert-l),1);--danger-15:hsla(var(--danger-h),var(--danger-s),var(--danger-15-l),1);--danger-15-invert-l:var(--danger-80-l);--danger-15-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-15-invert-l),1);--danger-20:hsla(var(--danger-h),var(--danger-s),var(--danger-20-l),1);--danger-20-invert-l:var(--danger-85-l);--danger-20-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-20-invert-l),1);--danger-25:hsla(var(--danger-h),var(--danger-s),var(--danger-25-l),1);--danger-25-invert-l:var(--danger-90-l);--danger-25-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-25-invert-l),1);--danger-30:hsla(var(--danger-h),var(--danger-s),var(--danger-30-l),1);--danger-30-invert-l:var(--danger-100-l);--danger-30-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-30-invert-l),1);--danger-35:hsla(var(--danger-h),var(--danger-s),var(--danger-35-l),1);--danger-35-invert-l:var(--danger-100-l);--danger-35-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-35-invert-l),1);--danger-40:hsla(var(--danger-h),var(--danger-s),var(--danger-40-l),1);--danger-40-invert-l:var(--danger-100-l);--danger-40-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-40-invert-l),1);--danger-45:hsla(var(--danger-h),var(--danger-s),var(--danger-45-l),1);--danger-45-invert-l:var(--danger-100-l);--danger-45-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-45-invert-l),1);--danger-50:hsla(var(--danger-h),var(--danger-s),var(--danger-50-l),1);--danger-50-invert-l:var(--danger-100-l);--danger-50-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-50-invert-l),1);--danger-55:hsla(var(--danger-h),var(--danger-s),var(--danger-55-l),1);--danger-55-invert-l:var(--danger-100-l);--danger-55-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-55-invert-l),1);--danger-60:hsla(var(--danger-h),var(--danger-s),var(--danger-60-l),1);--danger-60-invert-l:var(--danger-100-l);--danger-60-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-60-invert-l),1);--danger-65:hsla(var(--danger-h),var(--danger-s),var(--danger-65-l),1);--danger-65-invert-l:var(--danger-00-l);--danger-65-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-65-invert-l),1);--danger-70:hsla(var(--danger-h),var(--danger-s),var(--danger-70-l),1);--danger-70-invert-l:var(--danger-05-l);--danger-70-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-70-invert-l),1);--danger-75:hsla(var(--danger-h),var(--danger-s),var(--danger-75-l),1);--danger-75-invert-l:var(--danger-10-l);--danger-75-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-75-invert-l),1);--danger-80:hsla(var(--danger-h),var(--danger-s),var(--danger-80-l),1);--danger-80-invert-l:var(--danger-15-l);--danger-80-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-80-invert-l),1);--danger-85:hsla(var(--danger-h),var(--danger-s),var(--danger-85-l),1);--danger-85-invert-l:var(--danger-20-l);--danger-85-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-85-invert-l),1);--danger-90:hsla(var(--danger-h),var(--danger-s),var(--danger-90-l),1);--danger-90-invert-l:var(--danger-25-l);--danger-90-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-90-invert-l),1);--danger-95:hsla(var(--danger-h),var(--danger-s),var(--danger-95-l),1);--danger-95-invert-l:var(--danger-25-l);--danger-95-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-95-invert-l),1);--danger-100:hsla(var(--danger-h),var(--danger-s),var(--danger-100-l),1);--danger-100-invert-l:var(--danger-30-l);--danger-100-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-100-invert-l),1);--danger-invert-l:var(--danger-05-l);--danger-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-invert-l),1);--danger-light-l:var(--danger-90-l);--danger-light:hsla(var(--danger-h),var(--danger-s),var(--danger-light-l),1);--danger-light-invert-l:var(--danger-25-l);--danger-light-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-light-invert-l),1);--danger-dark-l:var(--danger-10-l);--danger-dark:hsla(var(--danger-h),var(--danger-s),var(--danger-dark-l),1);--danger-dark-invert-l:var(--danger-75-l);--danger-dark-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-dark-invert-l),1);--danger-soft:hsla(var(--danger-h),var(--danger-s),var(--soft-l),1);--danger-bold:hsla(var(--danger-h),var(--danger-s),var(--bold-l),1);--danger-soft-invert:hsla(var(--danger-h),var(--danger-s),var(--soft-invert-l),1);--danger-bold-invert:hsla(var(--danger-h),var(--danger-s),var(--bold-invert-l),1);--danger-on-scheme-l:40%;--danger-on-scheme:hsla(var(--danger-h),var(--danger-s),var(--danger-on-scheme-l),1);--black-bis:#14161a;--black-ter:#1f2229;--grey-darker:#2e333d;--grey-dark:#404654;--grey:#69748c;--grey-light:#abb1bf;--grey-lighter:#d6d9e0;--white-ter:#f3f4f6;--white-bis:#f9fafb;--shadow-h:221deg;--shadow-s:14%;--shadow-l:4%;--size-1:3rem;--size-2:2.5rem;--size-3:2rem;--size-4:1.5rem;--size-5:1.25rem;--size-6:1rem;--size-7:0.75rem}}@media (prefers-color-scheme:dark){:root{--white-on-scheme-l:100%;--white-on-scheme:hsla(var(--white-h),var(--white-s),var(--white-on-scheme-l),1);--black-on-scheme-l:0%;--black-on-scheme:hsla(var(--black-h),var(--black-s),var(--black-on-scheme-l),1);--light-on-scheme-l:96%;--light-on-scheme:hsla(var(--light-h),var(--light-s),var(--light-on-scheme-l),1);--dark-on-scheme-l:56%;--dark-on-scheme:hsla(var(--dark-h),var(--dark-s),var(--dark-on-scheme-l),1);--text-on-scheme-l:54%;--text-on-scheme:hsla(var(--text-h),var(--text-s),var(--text-on-scheme-l),1);--primary-on-scheme-l:41%;--primary-on-scheme:hsla(var(--primary-h),var(--primary-s),var(--primary-on-scheme-l),1);--link-on-scheme-l:73%;--link-on-scheme:hsla(var(--link-h),var(--link-s),var(--link-on-scheme-l),1);--info-on-scheme-l:70%;--info-on-scheme:hsla(var(--info-h),var(--info-s),var(--info-on-scheme-l),1);--success-on-scheme-l:53%;--success-on-scheme:hsla(var(--success-h),var(--success-s),var(--success-on-scheme-l),1);--warning-on-scheme-l:53%;--warning-on-scheme:hsla(var(--warning-h),var(--warning-s),var(--warning-on-scheme-l),1);--danger-on-scheme-l:70%;--danger-on-scheme:hsla(var(--danger-h),var(--danger-s),var(--danger-on-scheme-l),1);--scheme-brightness:dark;--scheme-main-l:9%;--scheme-main-bis-l:11%;--scheme-main-ter-l:13%;--soft-l:20%;--bold-l:90%;--soft-invert-l:90%;--bold-invert-l:20%;--background-l:14%;--border-weak-l:21%;--border-l:24%;--text-weak-l:53%;--text-l:71%;--text-strong-l:93%;--text-title-l:100%;--hover-background-l-delta:5%;--active-background-l-delta:10%;--hover-border-l-delta:10%;--active-border-l-delta:20%;--hover-color-l-delta:5%;--active-color-l-delta:10%;--shadow-h:0deg;--shadow-s:0%;--shadow-l:100%}}[data-theme=light]{--scheme-h:221;--scheme-s:14%;--light-l:90%;--light-invert-l:20%;--dark-l:20%;--dark-invert-l:90%;--soft-l:90%;--bold-l:20%;--soft-invert-l:20%;--bold-invert-l:90%;--hover-background-l-delta:-5%;--active-background-l-delta:-10%;--hover-border-l-delta:-10%;--active-border-l-delta:-20%;--hover-color-l-delta:-5%;--active-color-l-delta:-10%;--hover-shadow-a-delta:-0.05;--active-shadow-a-delta:-0.1;--scheme-brightness:light;--scheme-main-l:100%;--scheme-main-bis-l:98%;--scheme-main-ter-l:96%;--background-l:96%;--border-weak-l:93%;--border-l:86%;--text-weak-l:48%;--text-strong-l:21%;--text-title-l:14%;--scheme-invert-ter-l:14%;--scheme-invert-bis-l:7%;--scheme-invert-l:4%;--family-primary:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Lucida Sans Unicode,Lucida Grande,Arial,sans-serif;--family-secondary:Inter,SF Pro,Segoe UI,Roboto,Oxygen,Ubuntu,Helvetica Neue,Helvetica,Arial,sans-serif;--family-code:Inconsolata,Hack,SF Mono,Roboto Mono,Source Code Pro,Ubuntu Mono,monospace;--size-small:0.75rem;--size-normal:1rem;--size-medium:1.25rem;--size-large:1.5rem;--weight-light:300;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--block-spacing:1.5rem;--duration:294ms;--easing:ease-out;--radius-small:0.25rem;--radius:0.375rem;--radius-medium:0.5em;--radius-large:0.75rem;--radius-rounded:9999px;--speed:86ms;--arrow-color:var(--link);--loading-color:var(--border);--burger-h:var(--link-h);--burger-s:var(--link-s);--burger-l:var(--link-l);--burger-border-radius:0.5em;--burger-gap:5px;--burger-item-height:2px;--burger-item-width:20px;--white:hsla(var(--white-h),var(--white-s),var(--white-l),1);--white-base:hsla(var(--white-h),var(--white-s),var(--white-l),1);--white-rgb:255,255,255;--white-h:221deg;--white-s:14%;--white-l:100%;--white-invert-l:4%;--white-invert:#090a0c;--white-on-scheme-l:35%;--white-on-scheme:hsla(var(--white-h),var(--white-s),var(--white-on-scheme-l),1);--black:hsla(var(--black-h),var(--black-s),var(--black-l),1);--black-base:hsla(var(--black-h),var(--black-s),var(--black-l),1);--black-rgb:9,10,12;--black-h:221deg;--black-s:14%;--black-l:4%;--black-invert-l:100%;--black-invert:#fff;--black-on-scheme-l:4%;--black-on-scheme:hsla(var(--black-h),var(--black-s),var(--black-on-scheme-l),1);--light:hsla(var(--light-h),var(--light-s),var(--light-l),1);--light-base:hsla(var(--light-h),var(--light-s),var(--light-l),1);--light-rgb:243,244,246;--light-h:221deg;--light-s:14%;--light-l:96%;--light-invert-l:21%;--light-invert:#2e333d;--light-on-scheme-l:36%;--light-on-scheme:hsla(var(--light-h),var(--light-s),var(--light-on-scheme-l),1);--dark:hsla(var(--dark-h),var(--dark-s),var(--dark-l),1);--dark-base:hsla(var(--dark-h),var(--dark-s),var(--dark-l),1);--dark-rgb:46,51,61;--dark-h:221deg;--dark-s:14%;--dark-l:21%;--dark-invert-l:96%;--dark-invert:#f3f4f6;--dark-on-scheme-l:21%;--dark-on-scheme:hsla(var(--dark-h),var(--dark-s),var(--dark-on-scheme-l),1);--text:hsla(var(--text-h),var(--text-s),var(--text-l),1);--text-base:hsla(var(--text-h),var(--text-s),var(--text-l),1);--text-rgb:64,70,84;--text-h:221deg;--text-s:14%;--text-l:29%;--text-00-l:0%;--text-05-l:4%;--text-10-l:9%;--text-15-l:14%;--text-20-l:19%;--text-25-l:24%;--text-30-l:29%;--text-35-l:34%;--text-40-l:39%;--text-45-l:44%;--text-50-l:49%;--text-55-l:54%;--text-60-l:59%;--text-65-l:64%;--text-70-l:69%;--text-75-l:74%;--text-80-l:79%;--text-85-l:84%;--text-90-l:89%;--text-95-l:94%;--text-100-l:100%;--text-00:hsla(var(--text-h),var(--text-s),var(--text-00-l),1);--text-00-invert-l:var(--text-60-l);--text-00-invert:hsla(var(--text-h),var(--text-s),var(--text-00-invert-l),1);--text-05:hsla(var(--text-h),var(--text-s),var(--text-05-l),1);--text-05-invert-l:var(--text-60-l);--text-05-invert:hsla(var(--text-h),var(--text-s),var(--text-05-invert-l),1);--text-10:hsla(var(--text-h),var(--text-s),var(--text-10-l),1);--text-10-invert-l:var(--text-70-l);--text-10-invert:hsla(var(--text-h),var(--text-s),var(--text-10-invert-l),1);--text-15:hsla(var(--text-h),var(--text-s),var(--text-15-l),1);--text-15-invert-l:var(--text-75-l);--text-15-invert:hsla(var(--text-h),var(--text-s),var(--text-15-invert-l),1);--text-20:hsla(var(--text-h),var(--text-s),var(--text-20-l),1);--text-20-invert-l:var(--text-85-l);--text-20-invert:hsla(var(--text-h),var(--text-s),var(--text-20-invert-l),1);--text-25:hsla(var(--text-h),var(--text-s),var(--text-25-l),1);--text-25-invert-l:var(--text-95-l);--text-25-invert:hsla(var(--text-h),var(--text-s),var(--text-25-invert-l),1);--text-30:hsla(var(--text-h),var(--text-s),var(--text-30-l),1);--text-30-invert-l:var(--text-100-l);--text-30-invert:hsla(var(--text-h),var(--text-s),var(--text-30-invert-l),1);--text-35:hsla(var(--text-h),var(--text-s),var(--text-35-l),1);--text-35-invert-l:var(--text-100-l);--text-35-invert:hsla(var(--text-h),var(--text-s),var(--text-35-invert-l),1);--text-40:hsla(var(--text-h),var(--text-s),var(--text-40-l),1);--text-40-invert-l:var(--text-100-l);--text-40-invert:hsla(var(--text-h),var(--text-s),var(--text-40-invert-l),1);--text-45:hsla(var(--text-h),var(--text-s),var(--text-45-l),1);--text-45-invert-l:var(--text-100-l);--text-45-invert:hsla(var(--text-h),var(--text-s),var(--text-45-invert-l),1);--text-50:hsla(var(--text-h),var(--text-s),var(--text-50-l),1);--text-50-invert-l:var(--text-100-l);--text-50-invert:hsla(var(--text-h),var(--text-s),var(--text-50-invert-l),1);--text-55:hsla(var(--text-h),var(--text-s),var(--text-55-l),1);--text-55-invert-l:var(--text-100-l);--text-55-invert:hsla(var(--text-h),var(--text-s),var(--text-55-invert-l),1);--text-60:hsla(var(--text-h),var(--text-s),var(--text-60-l),1);--text-60-invert-l:var(--text-05-l);--text-60-invert:hsla(var(--text-h),var(--text-s),var(--text-60-invert-l),1);--text-65:hsla(var(--text-h),var(--text-s),var(--text-65-l),1);--text-65-invert-l:var(--text-05-l);--text-65-invert:hsla(var(--text-h),var(--text-s),var(--text-65-invert-l),1);--text-70:hsla(var(--text-h),var(--text-s),var(--text-70-l),1);--text-70-invert-l:var(--text-10-l);--text-70-invert:hsla(var(--text-h),var(--text-s),var(--text-70-invert-l),1);--text-75:hsla(var(--text-h),var(--text-s),var(--text-75-l),1);--text-75-invert-l:var(--text-15-l);--text-75-invert:hsla(var(--text-h),var(--text-s),var(--text-75-invert-l),1);--text-80:hsla(var(--text-h),var(--text-s),var(--text-80-l),1);--text-80-invert-l:var(--text-15-l);--text-80-invert:hsla(var(--text-h),var(--text-s),var(--text-80-invert-l),1);--text-85:hsla(var(--text-h),var(--text-s),var(--text-85-l),1);--text-85-invert-l:var(--text-20-l);--text-85-invert:hsla(var(--text-h),var(--text-s),var(--text-85-invert-l),1);--text-90:hsla(var(--text-h),var(--text-s),var(--text-90-l),1);--text-90-invert-l:var(--text-20-l);--text-90-invert:hsla(var(--text-h),var(--text-s),var(--text-90-invert-l),1);--text-95:hsla(var(--text-h),var(--text-s),var(--text-95-l),1);--text-95-invert-l:var(--text-25-l);--text-95-invert:hsla(var(--text-h),var(--text-s),var(--text-95-invert-l),1);--text-100:hsla(var(--text-h),var(--text-s),var(--text-100-l),1);--text-100-invert-l:var(--text-30-l);--text-100-invert:hsla(var(--text-h),var(--text-s),var(--text-100-invert-l),1);--text-invert-l:var(--text-100-l);--text-invert:hsla(var(--text-h),var(--text-s),var(--text-invert-l),1);--text-light-l:var(--text-90-l);--text-light:hsla(var(--text-h),var(--text-s),var(--text-light-l),1);--text-light-invert-l:var(--text-20-l);--text-light-invert:hsla(var(--text-h),var(--text-s),var(--text-light-invert-l),1);--text-dark-l:var(--text-10-l);--text-dark:hsla(var(--text-h),var(--text-s),var(--text-dark-l),1);--text-dark-invert-l:var(--text-70-l);--text-dark-invert:hsla(var(--text-h),var(--text-s),var(--text-dark-invert-l),1);--text-soft:hsla(var(--text-h),var(--text-s),var(--soft-l),1);--text-bold:hsla(var(--text-h),var(--text-s),var(--bold-l),1);--text-soft-invert:hsla(var(--text-h),var(--text-s),var(--soft-invert-l),1);--text-bold-invert:hsla(var(--text-h),var(--text-s),var(--bold-invert-l),1);--text-on-scheme-l:29%;--text-on-scheme:hsla(var(--text-h),var(--text-s),var(--text-on-scheme-l),1);--primary:hsla(var(--primary-h),var(--primary-s),var(--primary-l),1);--primary-base:hsla(var(--primary-h),var(--primary-s),var(--primary-l),1);--primary-rgb:0,209,178;--primary-h:171deg;--primary-s:100%;--primary-l:41%;--primary-00-l:1%;--primary-05-l:6%;--primary-10-l:11%;--primary-15-l:16%;--primary-20-l:21%;--primary-25-l:26%;--primary-30-l:31%;--primary-35-l:36%;--primary-40-l:41%;--primary-45-l:46%;--primary-50-l:51%;--primary-55-l:56%;--primary-60-l:61%;--primary-65-l:66%;--primary-70-l:71%;--primary-75-l:76%;--primary-80-l:81%;--primary-85-l:86%;--primary-90-l:91%;--primary-95-l:96%;--primary-100-l:100%;--primary-00:hsla(var(--primary-h),var(--primary-s),var(--primary-00-l),1);--primary-00-invert-l:var(--primary-30-l);--primary-00-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-00-invert-l),1);--primary-05:hsla(var(--primary-h),var(--primary-s),var(--primary-05-l),1);--primary-05-invert-l:var(--primary-40-l);--primary-05-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-05-invert-l),1);--primary-10:hsla(var(--primary-h),var(--primary-s),var(--primary-10-l),1);--primary-10-invert-l:var(--primary-50-l);--primary-10-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-10-invert-l),1);--primary-15:hsla(var(--primary-h),var(--primary-s),var(--primary-15-l),1);--primary-15-invert-l:var(--primary-100-l);--primary-15-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-15-invert-l),1);--primary-20:hsla(var(--primary-h),var(--primary-s),var(--primary-20-l),1);--primary-20-invert-l:var(--primary-100-l);--primary-20-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-20-invert-l),1);--primary-25:hsla(var(--primary-h),var(--primary-s),var(--primary-25-l),1);--primary-25-invert-l:var(--primary-100-l);--primary-25-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-25-invert-l),1);--primary-30:hsla(var(--primary-h),var(--primary-s),var(--primary-30-l),1);--primary-30-invert-l:var(--primary-00-l);--primary-30-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-30-invert-l),1);--primary-35:hsla(var(--primary-h),var(--primary-s),var(--primary-35-l),1);--primary-35-invert-l:var(--primary-00-l);--primary-35-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-35-invert-l),1);--primary-40:hsla(var(--primary-h),var(--primary-s),var(--primary-40-l),1);--primary-40-invert-l:var(--primary-05-l);--primary-40-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-40-invert-l),1);--primary-45:hsla(var(--primary-h),var(--primary-s),var(--primary-45-l),1);--primary-45-invert-l:var(--primary-05-l);--primary-45-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-45-invert-l),1);--primary-50:hsla(var(--primary-h),var(--primary-s),var(--primary-50-l),1);--primary-50-invert-l:var(--primary-10-l);--primary-50-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-50-invert-l),1);--primary-55:hsla(var(--primary-h),var(--primary-s),var(--primary-55-l),1);--primary-55-invert-l:var(--primary-10-l);--primary-55-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-55-invert-l),1);--primary-60:hsla(var(--primary-h),var(--primary-s),var(--primary-60-l),1);--primary-60-invert-l:var(--primary-10-l);--primary-60-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-60-invert-l),1);--primary-65:hsla(var(--primary-h),var(--primary-s),var(--primary-65-l),1);--primary-65-invert-l:var(--primary-10-l);--primary-65-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-65-invert-l),1);--primary-70:hsla(var(--primary-h),var(--primary-s),var(--primary-70-l),1);--primary-70-invert-l:var(--primary-10-l);--primary-70-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-70-invert-l),1);--primary-75:hsla(var(--primary-h),var(--primary-s),var(--primary-75-l),1);--primary-75-invert-l:var(--primary-10-l);--primary-75-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-75-invert-l),1);--primary-80:hsla(var(--primary-h),var(--primary-s),var(--primary-80-l),1);--primary-80-invert-l:var(--primary-10-l);--primary-80-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-80-invert-l),1);--primary-85:hsla(var(--primary-h),var(--primary-s),var(--primary-85-l),1);--primary-85-invert-l:var(--primary-10-l);--primary-85-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-85-invert-l),1);--primary-90:hsla(var(--primary-h),var(--primary-s),var(--primary-90-l),1);--primary-90-invert-l:var(--primary-10-l);--primary-90-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-90-invert-l),1);--primary-95:hsla(var(--primary-h),var(--primary-s),var(--primary-95-l),1);--primary-95-invert-l:var(--primary-10-l);--primary-95-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-95-invert-l),1);--primary-100:hsla(var(--primary-h),var(--primary-s),var(--primary-100-l),1);--primary-100-invert-l:var(--primary-15-l);--primary-100-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-100-invert-l),1);--primary-invert-l:var(--primary-05-l);--primary-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-invert-l),1);--primary-light-l:var(--primary-90-l);--primary-light:hsla(var(--primary-h),var(--primary-s),var(--primary-light-l),1);--primary-light-invert-l:var(--primary-10-l);--primary-light-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-light-invert-l),1);--primary-dark-l:var(--primary-10-l);--primary-dark:hsla(var(--primary-h),var(--primary-s),var(--primary-dark-l),1);--primary-dark-invert-l:var(--primary-50-l);--primary-dark-invert:hsla(var(--primary-h),var(--primary-s),var(--primary-dark-invert-l),1);--primary-soft:hsla(var(--primary-h),var(--primary-s),var(--soft-l),1);--primary-bold:hsla(var(--primary-h),var(--primary-s),var(--bold-l),1);--primary-soft-invert:hsla(var(--primary-h),var(--primary-s),var(--soft-invert-l),1);--primary-bold-invert:hsla(var(--primary-h),var(--primary-s),var(--bold-invert-l),1);--primary-on-scheme-l:21%;--primary-on-scheme:hsla(var(--primary-h),var(--primary-s),var(--primary-on-scheme-l),1);--link:hsla(var(--link-h),var(--link-s),var(--link-l),1);--link-base:hsla(var(--link-h),var(--link-s),var(--link-l),1);--link-rgb:66,88,255;--link-h:233deg;--link-s:100%;--link-l:63%;--link-00-l:0%;--link-05-l:3%;--link-10-l:8%;--link-15-l:13%;--link-20-l:18%;--link-25-l:23%;--link-30-l:28%;--link-35-l:33%;--link-40-l:38%;--link-45-l:43%;--link-50-l:48%;--link-55-l:53%;--link-60-l:58%;--link-65-l:63%;--link-70-l:68%;--link-75-l:73%;--link-80-l:78%;--link-85-l:83%;--link-90-l:88%;--link-95-l:93%;--link-100-l:100%;--link-00:hsla(var(--link-h),var(--link-s),var(--link-00-l),1);--link-00-invert-l:var(--link-75-l);--link-00-invert:hsla(var(--link-h),var(--link-s),var(--link-00-invert-l),1);--link-05:hsla(var(--link-h),var(--link-s),var(--link-05-l),1);--link-05-invert-l:var(--link-75-l);--link-05-invert:hsla(var(--link-h),var(--link-s),var(--link-05-invert-l),1);--link-10:hsla(var(--link-h),var(--link-s),var(--link-10-l),1);--link-10-invert-l:var(--link-75-l);--link-10-invert:hsla(var(--link-h),var(--link-s),var(--link-10-invert-l),1);--link-15:hsla(var(--link-h),var(--link-s),var(--link-15-l),1);--link-15-invert-l:var(--link-80-l);--link-15-invert:hsla(var(--link-h),var(--link-s),var(--link-15-invert-l),1);--link-20:hsla(var(--link-h),var(--link-s),var(--link-20-l),1);--link-20-invert-l:var(--link-80-l);--link-20-invert:hsla(var(--link-h),var(--link-s),var(--link-20-invert-l),1);--link-25:hsla(var(--link-h),var(--link-s),var(--link-25-l),1);--link-25-invert-l:var(--link-85-l);--link-25-invert:hsla(var(--link-h),var(--link-s),var(--link-25-invert-l),1);--link-30:hsla(var(--link-h),var(--link-s),var(--link-30-l),1);--link-30-invert-l:var(--link-90-l);--link-30-invert:hsla(var(--link-h),var(--link-s),var(--link-30-invert-l),1);--link-35:hsla(var(--link-h),var(--link-s),var(--link-35-l),1);--link-35-invert-l:var(--link-90-l);--link-35-invert:hsla(var(--link-h),var(--link-s),var(--link-35-invert-l),1);--link-40:hsla(var(--link-h),var(--link-s),var(--link-40-l),1);--link-40-invert-l:var(--link-95-l);--link-40-invert:hsla(var(--link-h),var(--link-s),var(--link-40-invert-l),1);--link-45:hsla(var(--link-h),var(--link-s),var(--link-45-l),1);--link-45-invert-l:var(--link-100-l);--link-45-invert:hsla(var(--link-h),var(--link-s),var(--link-45-invert-l),1);--link-50:hsla(var(--link-h),var(--link-s),var(--link-50-l),1);--link-50-invert-l:var(--link-100-l);--link-50-invert:hsla(var(--link-h),var(--link-s),var(--link-50-invert-l),1);--link-55:hsla(var(--link-h),var(--link-s),var(--link-55-l),1);--link-55-invert-l:var(--link-100-l);--link-55-invert:hsla(var(--link-h),var(--link-s),var(--link-55-invert-l),1);--link-60:hsla(var(--link-h),var(--link-s),var(--link-60-l),1);--link-60-invert-l:var(--link-100-l);--link-60-invert:hsla(var(--link-h),var(--link-s),var(--link-60-invert-l),1);--link-65:hsla(var(--link-h),var(--link-s),var(--link-65-l),1);--link-65-invert-l:var(--link-100-l);--link-65-invert:hsla(var(--link-h),var(--link-s),var(--link-65-invert-l),1);--link-70:hsla(var(--link-h),var(--link-s),var(--link-70-l),1);--link-70-invert-l:var(--link-100-l);--link-70-invert:hsla(var(--link-h),var(--link-s),var(--link-70-invert-l),1);--link-75:hsla(var(--link-h),var(--link-s),var(--link-75-l),1);--link-75-invert-l:var(--link-10-l);--link-75-invert:hsla(var(--link-h),var(--link-s),var(--link-75-invert-l),1);--link-80:hsla(var(--link-h),var(--link-s),var(--link-80-l),1);--link-80-invert-l:var(--link-20-l);--link-80-invert:hsla(var(--link-h),var(--link-s),var(--link-80-invert-l),1);--link-85:hsla(var(--link-h),var(--link-s),var(--link-85-l),1);--link-85-invert-l:var(--link-25-l);--link-85-invert:hsla(var(--link-h),var(--link-s),var(--link-85-invert-l),1);--link-90:hsla(var(--link-h),var(--link-s),var(--link-90-l),1);--link-90-invert-l:var(--link-35-l);--link-90-invert:hsla(var(--link-h),var(--link-s),var(--link-90-invert-l),1);--link-95:hsla(var(--link-h),var(--link-s),var(--link-95-l),1);--link-95-invert-l:var(--link-40-l);--link-95-invert:hsla(var(--link-h),var(--link-s),var(--link-95-invert-l),1);--link-100:hsla(var(--link-h),var(--link-s),var(--link-100-l),1);--link-100-invert-l:var(--link-50-l);--link-100-invert:hsla(var(--link-h),var(--link-s),var(--link-100-invert-l),1);--link-invert-l:var(--link-100-l);--link-invert:hsla(var(--link-h),var(--link-s),var(--link-invert-l),1);--link-light-l:var(--link-90-l);--link-light:hsla(var(--link-h),var(--link-s),var(--link-light-l),1);--link-light-invert-l:var(--link-35-l);--link-light-invert:hsla(var(--link-h),var(--link-s),var(--link-light-invert-l),1);--link-dark-l:var(--link-10-l);--link-dark:hsla(var(--link-h),var(--link-s),var(--link-dark-l),1);--link-dark-invert-l:var(--link-75-l);--link-dark-invert:hsla(var(--link-h),var(--link-s),var(--link-dark-invert-l),1);--link-soft:hsla(var(--link-h),var(--link-s),var(--soft-l),1);--link-bold:hsla(var(--link-h),var(--link-s),var(--bold-l),1);--link-soft-invert:hsla(var(--link-h),var(--link-s),var(--soft-invert-l),1);--link-bold-invert:hsla(var(--link-h),var(--link-s),var(--bold-invert-l),1);--link-on-scheme-l:58%;--link-on-scheme:hsla(var(--link-h),var(--link-s),var(--link-on-scheme-l),1);--info:hsla(var(--info-h),var(--info-s),var(--info-l),1);--info-base:hsla(var(--info-h),var(--info-s),var(--info-l),1);--info-rgb:102,209,255;--info-h:198deg;--info-s:100%;--info-l:70%;--info-00-l:0%;--info-05-l:5%;--info-10-l:10%;--info-15-l:15%;--info-20-l:20%;--info-25-l:25%;--info-30-l:30%;--info-35-l:35%;--info-40-l:40%;--info-45-l:45%;--info-50-l:50%;--info-55-l:55%;--info-60-l:60%;--info-65-l:65%;--info-70-l:70%;--info-75-l:75%;--info-80-l:80%;--info-85-l:85%;--info-90-l:90%;--info-95-l:95%;--info-100-l:100%;--info-00:hsla(var(--info-h),var(--info-s),var(--info-00-l),1);--info-00-invert-l:var(--info-45-l);--info-00-invert:hsla(var(--info-h),var(--info-s),var(--info-00-invert-l),1);--info-05:hsla(var(--info-h),var(--info-s),var(--info-05-l),1);--info-05-invert-l:var(--info-50-l);--info-05-invert:hsla(var(--info-h),var(--info-s),var(--info-05-invert-l),1);--info-10:hsla(var(--info-h),var(--info-s),var(--info-10-l),1);--info-10-invert-l:var(--info-60-l);--info-10-invert:hsla(var(--info-h),var(--info-s),var(--info-10-invert-l),1);--info-15:hsla(var(--info-h),var(--info-s),var(--info-15-l),1);--info-15-invert-l:var(--info-80-l);--info-15-invert:hsla(var(--info-h),var(--info-s),var(--info-15-invert-l),1);--info-20:hsla(var(--info-h),var(--info-s),var(--info-20-l),1);--info-20-invert-l:var(--info-95-l);--info-20-invert:hsla(var(--info-h),var(--info-s),var(--info-20-invert-l),1);--info-25:hsla(var(--info-h),var(--info-s),var(--info-25-l),1);--info-25-invert-l:var(--info-100-l);--info-25-invert:hsla(var(--info-h),var(--info-s),var(--info-25-invert-l),1);--info-30:hsla(var(--info-h),var(--info-s),var(--info-30-l),1);--info-30-invert-l:var(--info-100-l);--info-30-invert:hsla(var(--info-h),var(--info-s),var(--info-30-invert-l),1);--info-35:hsla(var(--info-h),var(--info-s),var(--info-35-l),1);--info-35-invert-l:var(--info-100-l);--info-35-invert:hsla(var(--info-h),var(--info-s),var(--info-35-invert-l),1);--info-40:hsla(var(--info-h),var(--info-s),var(--info-40-l),1);--info-40-invert-l:var(--info-100-l);--info-40-invert:hsla(var(--info-h),var(--info-s),var(--info-40-invert-l),1);--info-45:hsla(var(--info-h),var(--info-s),var(--info-45-l),1);--info-45-invert-l:var(--info-00-l);--info-45-invert:hsla(var(--info-h),var(--info-s),var(--info-45-invert-l),1);--info-50:hsla(var(--info-h),var(--info-s),var(--info-50-l),1);--info-50-invert-l:var(--info-05-l);--info-50-invert:hsla(var(--info-h),var(--info-s),var(--info-50-invert-l),1);--info-55:hsla(var(--info-h),var(--info-s),var(--info-55-l),1);--info-55-invert-l:var(--info-05-l);--info-55-invert:hsla(var(--info-h),var(--info-s),var(--info-55-invert-l),1);--info-60:hsla(var(--info-h),var(--info-s),var(--info-60-l),1);--info-60-invert-l:var(--info-10-l);--info-60-invert:hsla(var(--info-h),var(--info-s),var(--info-60-invert-l),1);--info-65:hsla(var(--info-h),var(--info-s),var(--info-65-l),1);--info-65-invert-l:var(--info-10-l);--info-65-invert:hsla(var(--info-h),var(--info-s),var(--info-65-invert-l),1);--info-70:hsla(var(--info-h),var(--info-s),var(--info-70-l),1);--info-70-invert-l:var(--info-10-l);--info-70-invert:hsla(var(--info-h),var(--info-s),var(--info-70-invert-l),1);--info-75:hsla(var(--info-h),var(--info-s),var(--info-75-l),1);--info-75-invert-l:var(--info-10-l);--info-75-invert:hsla(var(--info-h),var(--info-s),var(--info-75-invert-l),1);--info-80:hsla(var(--info-h),var(--info-s),var(--info-80-l),1);--info-80-invert-l:var(--info-15-l);--info-80-invert:hsla(var(--info-h),var(--info-s),var(--info-80-invert-l),1);--info-85:hsla(var(--info-h),var(--info-s),var(--info-85-l),1);--info-85-invert-l:var(--info-15-l);--info-85-invert:hsla(var(--info-h),var(--info-s),var(--info-85-invert-l),1);--info-90:hsla(var(--info-h),var(--info-s),var(--info-90-l),1);--info-90-invert-l:var(--info-15-l);--info-90-invert:hsla(var(--info-h),var(--info-s),var(--info-90-invert-l),1);--info-95:hsla(var(--info-h),var(--info-s),var(--info-95-l),1);--info-95-invert-l:var(--info-20-l);--info-95-invert:hsla(var(--info-h),var(--info-s),var(--info-95-invert-l),1);--info-100:hsla(var(--info-h),var(--info-s),var(--info-100-l),1);--info-100-invert-l:var(--info-20-l);--info-100-invert:hsla(var(--info-h),var(--info-s),var(--info-100-invert-l),1);--info-invert-l:var(--info-10-l);--info-invert:hsla(var(--info-h),var(--info-s),var(--info-invert-l),1);--info-light-l:var(--info-90-l);--info-light:hsla(var(--info-h),var(--info-s),var(--info-light-l),1);--info-light-invert-l:var(--info-15-l);--info-light-invert:hsla(var(--info-h),var(--info-s),var(--info-light-invert-l),1);--info-dark-l:var(--info-10-l);--info-dark:hsla(var(--info-h),var(--info-s),var(--info-dark-l),1);--info-dark-invert-l:var(--info-60-l);--info-dark-invert:hsla(var(--info-h),var(--info-s),var(--info-dark-invert-l),1);--info-soft:hsla(var(--info-h),var(--info-s),var(--soft-l),1);--info-bold:hsla(var(--info-h),var(--info-s),var(--bold-l),1);--info-soft-invert:hsla(var(--info-h),var(--info-s),var(--soft-invert-l),1);--info-bold-invert:hsla(var(--info-h),var(--info-s),var(--bold-invert-l),1);--info-on-scheme-l:25%;--info-on-scheme:hsla(var(--info-h),var(--info-s),var(--info-on-scheme-l),1);--success:hsla(var(--success-h),var(--success-s),var(--success-l),1);--success-base:hsla(var(--success-h),var(--success-s),var(--success-l),1);--success-rgb:72,199,142;--success-h:153deg;--success-s:53%;--success-l:53%;--success-00-l:0%;--success-05-l:3%;--success-10-l:8%;--success-15-l:13%;--success-20-l:18%;--success-25-l:23%;--success-30-l:28%;--success-35-l:33%;--success-40-l:38%;--success-45-l:43%;--success-50-l:48%;--success-55-l:53%;--success-60-l:58%;--success-65-l:63%;--success-70-l:68%;--success-75-l:73%;--success-80-l:78%;--success-85-l:83%;--success-90-l:88%;--success-95-l:93%;--success-100-l:100%;--success-00:hsla(var(--success-h),var(--success-s),var(--success-00-l),1);--success-00-invert-l:var(--success-45-l);--success-00-invert:hsla(var(--success-h),var(--success-s),var(--success-00-invert-l),1);--success-05:hsla(var(--success-h),var(--success-s),var(--success-05-l),1);--success-05-invert-l:var(--success-45-l);--success-05-invert:hsla(var(--success-h),var(--success-s),var(--success-05-invert-l),1);--success-10:hsla(var(--success-h),var(--success-s),var(--success-10-l),1);--success-10-invert-l:var(--success-55-l);--success-10-invert:hsla(var(--success-h),var(--success-s),var(--success-10-invert-l),1);--success-15:hsla(var(--success-h),var(--success-s),var(--success-15-l),1);--success-15-invert-l:var(--success-75-l);--success-15-invert:hsla(var(--success-h),var(--success-s),var(--success-15-invert-l),1);--success-20:hsla(var(--success-h),var(--success-s),var(--success-20-l),1);--success-20-invert-l:var(--success-90-l);--success-20-invert:hsla(var(--success-h),var(--success-s),var(--success-20-invert-l),1);--success-25:hsla(var(--success-h),var(--success-s),var(--success-25-l),1);--success-25-invert-l:var(--success-100-l);--success-25-invert:hsla(var(--success-h),var(--success-s),var(--success-25-invert-l),1);--success-30:hsla(var(--success-h),var(--success-s),var(--success-30-l),1);--success-30-invert-l:var(--success-100-l);--success-30-invert:hsla(var(--success-h),var(--success-s),var(--success-30-invert-l),1);--success-35:hsla(var(--success-h),var(--success-s),var(--success-35-l),1);--success-35-invert-l:var(--success-100-l);--success-35-invert:hsla(var(--success-h),var(--success-s),var(--success-35-invert-l),1);--success-40:hsla(var(--success-h),var(--success-s),var(--success-40-l),1);--success-40-invert-l:var(--success-100-l);--success-40-invert:hsla(var(--success-h),var(--success-s),var(--success-40-invert-l),1);--success-45:hsla(var(--success-h),var(--success-s),var(--success-45-l),1);--success-45-invert-l:var(--success-05-l);--success-45-invert:hsla(var(--success-h),var(--success-s),var(--success-45-invert-l),1);--success-50:hsla(var(--success-h),var(--success-s),var(--success-50-l),1);--success-50-invert-l:var(--success-05-l);--success-50-invert:hsla(var(--success-h),var(--success-s),var(--success-50-invert-l),1);--success-55:hsla(var(--success-h),var(--success-s),var(--success-55-l),1);--success-55-invert-l:var(--success-10-l);--success-55-invert:hsla(var(--success-h),var(--success-s),var(--success-55-invert-l),1);--success-60:hsla(var(--success-h),var(--success-s),var(--success-60-l),1);--success-60-invert-l:var(--success-10-l);--success-60-invert:hsla(var(--success-h),var(--success-s),var(--success-60-invert-l),1);--success-65:hsla(var(--success-h),var(--success-s),var(--success-65-l),1);--success-65-invert-l:var(--success-10-l);--success-65-invert:hsla(var(--success-h),var(--success-s),var(--success-65-invert-l),1);--success-70:hsla(var(--success-h),var(--success-s),var(--success-70-l),1);--success-70-invert-l:var(--success-10-l);--success-70-invert:hsla(var(--success-h),var(--success-s),var(--success-70-invert-l),1);--success-75:hsla(var(--success-h),var(--success-s),var(--success-75-l),1);--success-75-invert-l:var(--success-15-l);--success-75-invert:hsla(var(--success-h),var(--success-s),var(--success-75-invert-l),1);--success-80:hsla(var(--success-h),var(--success-s),var(--success-80-l),1);--success-80-invert-l:var(--success-15-l);--success-80-invert:hsla(var(--success-h),var(--success-s),var(--success-80-invert-l),1);--success-85:hsla(var(--success-h),var(--success-s),var(--success-85-l),1);--success-85-invert-l:var(--success-15-l);--success-85-invert:hsla(var(--success-h),var(--success-s),var(--success-85-invert-l),1);--success-90:hsla(var(--success-h),var(--success-s),var(--success-90-l),1);--success-90-invert-l:var(--success-20-l);--success-90-invert:hsla(var(--success-h),var(--success-s),var(--success-90-invert-l),1);--success-95:hsla(var(--success-h),var(--success-s),var(--success-95-l),1);--success-95-invert-l:var(--success-20-l);--success-95-invert:hsla(var(--success-h),var(--success-s),var(--success-95-invert-l),1);--success-100:hsla(var(--success-h),var(--success-s),var(--success-100-l),1);--success-100-invert-l:var(--success-20-l);--success-100-invert:hsla(var(--success-h),var(--success-s),var(--success-100-invert-l),1);--success-invert-l:var(--success-10-l);--success-invert:hsla(var(--success-h),var(--success-s),var(--success-invert-l),1);--success-light-l:var(--success-90-l);--success-light:hsla(var(--success-h),var(--success-s),var(--success-light-l),1);--success-light-invert-l:var(--success-20-l);--success-light-invert:hsla(var(--success-h),var(--success-s),var(--success-light-invert-l),1);--success-dark-l:var(--success-10-l);--success-dark:hsla(var(--success-h),var(--success-s),var(--success-dark-l),1);--success-dark-invert-l:var(--success-55-l);--success-dark-invert:hsla(var(--success-h),var(--success-s),var(--success-dark-invert-l),1);--success-soft:hsla(var(--success-h),var(--success-s),var(--soft-l),1);--success-bold:hsla(var(--success-h),var(--success-s),var(--bold-l),1);--success-soft-invert:hsla(var(--success-h),var(--success-s),var(--soft-invert-l),1);--success-bold-invert:hsla(var(--success-h),var(--success-s),var(--bold-invert-l),1);--success-on-scheme-l:23%;--success-on-scheme:hsla(var(--success-h),var(--success-s),var(--success-on-scheme-l),1);--warning:hsla(var(--warning-h),var(--warning-s),var(--warning-l),1);--warning-base:hsla(var(--warning-h),var(--warning-s),var(--warning-l),1);--warning-rgb:255,183,15;--warning-h:42deg;--warning-s:100%;--warning-l:53%;--warning-00-l:0%;--warning-05-l:3%;--warning-10-l:8%;--warning-15-l:13%;--warning-20-l:18%;--warning-25-l:23%;--warning-30-l:28%;--warning-35-l:33%;--warning-40-l:38%;--warning-45-l:43%;--warning-50-l:48%;--warning-55-l:53%;--warning-60-l:58%;--warning-65-l:63%;--warning-70-l:68%;--warning-75-l:73%;--warning-80-l:78%;--warning-85-l:83%;--warning-90-l:88%;--warning-95-l:93%;--warning-100-l:100%;--warning-00:hsla(var(--warning-h),var(--warning-s),var(--warning-00-l),1);--warning-00-invert-l:var(--warning-40-l);--warning-00-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-00-invert-l),1);--warning-05:hsla(var(--warning-h),var(--warning-s),var(--warning-05-l),1);--warning-05-invert-l:var(--warning-45-l);--warning-05-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-05-invert-l),1);--warning-10:hsla(var(--warning-h),var(--warning-s),var(--warning-10-l),1);--warning-10-invert-l:var(--warning-50-l);--warning-10-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-10-invert-l),1);--warning-15:hsla(var(--warning-h),var(--warning-s),var(--warning-15-l),1);--warning-15-invert-l:var(--warning-70-l);--warning-15-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-15-invert-l),1);--warning-20:hsla(var(--warning-h),var(--warning-s),var(--warning-20-l),1);--warning-20-invert-l:var(--warning-100-l);--warning-20-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-20-invert-l),1);--warning-25:hsla(var(--warning-h),var(--warning-s),var(--warning-25-l),1);--warning-25-invert-l:var(--warning-100-l);--warning-25-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-25-invert-l),1);--warning-30:hsla(var(--warning-h),var(--warning-s),var(--warning-30-l),1);--warning-30-invert-l:var(--warning-100-l);--warning-30-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-30-invert-l),1);--warning-35:hsla(var(--warning-h),var(--warning-s),var(--warning-35-l),1);--warning-35-invert-l:var(--warning-100-l);--warning-35-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-35-invert-l),1);--warning-40:hsla(var(--warning-h),var(--warning-s),var(--warning-40-l),1);--warning-40-invert-l:var(--warning-00-l);--warning-40-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-40-invert-l),1);--warning-45:hsla(var(--warning-h),var(--warning-s),var(--warning-45-l),1);--warning-45-invert-l:var(--warning-05-l);--warning-45-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-45-invert-l),1);--warning-50:hsla(var(--warning-h),var(--warning-s),var(--warning-50-l),1);--warning-50-invert-l:var(--warning-10-l);--warning-50-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-50-invert-l),1);--warning-55:hsla(var(--warning-h),var(--warning-s),var(--warning-55-l),1);--warning-55-invert-l:var(--warning-10-l);--warning-55-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-55-invert-l),1);--warning-60:hsla(var(--warning-h),var(--warning-s),var(--warning-60-l),1);--warning-60-invert-l:var(--warning-10-l);--warning-60-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-60-invert-l),1);--warning-65:hsla(var(--warning-h),var(--warning-s),var(--warning-65-l),1);--warning-65-invert-l:var(--warning-10-l);--warning-65-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-65-invert-l),1);--warning-70:hsla(var(--warning-h),var(--warning-s),var(--warning-70-l),1);--warning-70-invert-l:var(--warning-15-l);--warning-70-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-70-invert-l),1);--warning-75:hsla(var(--warning-h),var(--warning-s),var(--warning-75-l),1);--warning-75-invert-l:var(--warning-15-l);--warning-75-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-75-invert-l),1);--warning-80:hsla(var(--warning-h),var(--warning-s),var(--warning-80-l),1);--warning-80-invert-l:var(--warning-15-l);--warning-80-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-80-invert-l),1);--warning-85:hsla(var(--warning-h),var(--warning-s),var(--warning-85-l),1);--warning-85-invert-l:var(--warning-15-l);--warning-85-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-85-invert-l),1);--warning-90:hsla(var(--warning-h),var(--warning-s),var(--warning-90-l),1);--warning-90-invert-l:var(--warning-15-l);--warning-90-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-90-invert-l),1);--warning-95:hsla(var(--warning-h),var(--warning-s),var(--warning-95-l),1);--warning-95-invert-l:var(--warning-15-l);--warning-95-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-95-invert-l),1);--warning-100:hsla(var(--warning-h),var(--warning-s),var(--warning-100-l),1);--warning-100-invert-l:var(--warning-20-l);--warning-100-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-100-invert-l),1);--warning-invert-l:var(--warning-10-l);--warning-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-invert-l),1);--warning-light-l:var(--warning-90-l);--warning-light:hsla(var(--warning-h),var(--warning-s),var(--warning-light-l),1);--warning-light-invert-l:var(--warning-15-l);--warning-light-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-light-invert-l),1);--warning-dark-l:var(--warning-10-l);--warning-dark:hsla(var(--warning-h),var(--warning-s),var(--warning-dark-l),1);--warning-dark-invert-l:var(--warning-50-l);--warning-dark-invert:hsla(var(--warning-h),var(--warning-s),var(--warning-dark-invert-l),1);--warning-soft:hsla(var(--warning-h),var(--warning-s),var(--soft-l),1);--warning-bold:hsla(var(--warning-h),var(--warning-s),var(--bold-l),1);--warning-soft-invert:hsla(var(--warning-h),var(--warning-s),var(--soft-invert-l),1);--warning-bold-invert:hsla(var(--warning-h),var(--warning-s),var(--bold-invert-l),1);--warning-on-scheme-l:23%;--warning-on-scheme:hsla(var(--warning-h),var(--warning-s),var(--warning-on-scheme-l),1);--danger:hsla(var(--danger-h),var(--danger-s),var(--danger-l),1);--danger-base:hsla(var(--danger-h),var(--danger-s),var(--danger-l),1);--danger-rgb:255,102,133;--danger-h:348deg;--danger-s:100%;--danger-l:70%;--danger-00-l:0%;--danger-05-l:5%;--danger-10-l:10%;--danger-15-l:15%;--danger-20-l:20%;--danger-25-l:25%;--danger-30-l:30%;--danger-35-l:35%;--danger-40-l:40%;--danger-45-l:45%;--danger-50-l:50%;--danger-55-l:55%;--danger-60-l:60%;--danger-65-l:65%;--danger-70-l:70%;--danger-75-l:75%;--danger-80-l:80%;--danger-85-l:85%;--danger-90-l:90%;--danger-95-l:95%;--danger-100-l:100%;--danger-00:hsla(var(--danger-h),var(--danger-s),var(--danger-00-l),1);--danger-00-invert-l:var(--danger-65-l);--danger-00-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-00-invert-l),1);--danger-05:hsla(var(--danger-h),var(--danger-s),var(--danger-05-l),1);--danger-05-invert-l:var(--danger-70-l);--danger-05-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-05-invert-l),1);--danger-10:hsla(var(--danger-h),var(--danger-s),var(--danger-10-l),1);--danger-10-invert-l:var(--danger-75-l);--danger-10-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-10-invert-l),1);--danger-15:hsla(var(--danger-h),var(--danger-s),var(--danger-15-l),1);--danger-15-invert-l:var(--danger-80-l);--danger-15-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-15-invert-l),1);--danger-20:hsla(var(--danger-h),var(--danger-s),var(--danger-20-l),1);--danger-20-invert-l:var(--danger-85-l);--danger-20-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-20-invert-l),1);--danger-25:hsla(var(--danger-h),var(--danger-s),var(--danger-25-l),1);--danger-25-invert-l:var(--danger-90-l);--danger-25-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-25-invert-l),1);--danger-30:hsla(var(--danger-h),var(--danger-s),var(--danger-30-l),1);--danger-30-invert-l:var(--danger-100-l);--danger-30-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-30-invert-l),1);--danger-35:hsla(var(--danger-h),var(--danger-s),var(--danger-35-l),1);--danger-35-invert-l:var(--danger-100-l);--danger-35-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-35-invert-l),1);--danger-40:hsla(var(--danger-h),var(--danger-s),var(--danger-40-l),1);--danger-40-invert-l:var(--danger-100-l);--danger-40-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-40-invert-l),1);--danger-45:hsla(var(--danger-h),var(--danger-s),var(--danger-45-l),1);--danger-45-invert-l:var(--danger-100-l);--danger-45-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-45-invert-l),1);--danger-50:hsla(var(--danger-h),var(--danger-s),var(--danger-50-l),1);--danger-50-invert-l:var(--danger-100-l);--danger-50-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-50-invert-l),1);--danger-55:hsla(var(--danger-h),var(--danger-s),var(--danger-55-l),1);--danger-55-invert-l:var(--danger-100-l);--danger-55-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-55-invert-l),1);--danger-60:hsla(var(--danger-h),var(--danger-s),var(--danger-60-l),1);--danger-60-invert-l:var(--danger-100-l);--danger-60-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-60-invert-l),1);--danger-65:hsla(var(--danger-h),var(--danger-s),var(--danger-65-l),1);--danger-65-invert-l:var(--danger-00-l);--danger-65-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-65-invert-l),1);--danger-70:hsla(var(--danger-h),var(--danger-s),var(--danger-70-l),1);--danger-70-invert-l:var(--danger-05-l);--danger-70-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-70-invert-l),1);--danger-75:hsla(var(--danger-h),var(--danger-s),var(--danger-75-l),1);--danger-75-invert-l:var(--danger-10-l);--danger-75-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-75-invert-l),1);--danger-80:hsla(var(--danger-h),var(--danger-s),var(--danger-80-l),1);--danger-80-invert-l:var(--danger-15-l);--danger-80-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-80-invert-l),1);--danger-85:hsla(var(--danger-h),var(--danger-s),var(--danger-85-l),1);--danger-85-invert-l:var(--danger-20-l);--danger-85-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-85-invert-l),1);--danger-90:hsla(var(--danger-h),var(--danger-s),var(--danger-90-l),1);--danger-90-invert-l:var(--danger-25-l);--danger-90-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-90-invert-l),1);--danger-95:hsla(var(--danger-h),var(--danger-s),var(--danger-95-l),1);--danger-95-invert-l:var(--danger-25-l);--danger-95-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-95-invert-l),1);--danger-100:hsla(var(--danger-h),var(--danger-s),var(--danger-100-l),1);--danger-100-invert-l:var(--danger-30-l);--danger-100-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-100-invert-l),1);--danger-invert-l:var(--danger-05-l);--danger-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-invert-l),1);--danger-light-l:var(--danger-90-l);--danger-light:hsla(var(--danger-h),var(--danger-s),var(--danger-light-l),1);--danger-light-invert-l:var(--danger-25-l);--danger-light-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-light-invert-l),1);--danger-dark-l:var(--danger-10-l);--danger-dark:hsla(var(--danger-h),var(--danger-s),var(--danger-dark-l),1);--danger-dark-invert-l:var(--danger-75-l);--danger-dark-invert:hsla(var(--danger-h),var(--danger-s),var(--danger-dark-invert-l),1);--danger-soft:hsla(var(--danger-h),var(--danger-s),var(--soft-l),1);--danger-bold:hsla(var(--danger-h),var(--danger-s),var(--bold-l),1);--danger-soft-invert:hsla(var(--danger-h),var(--danger-s),var(--soft-invert-l),1);--danger-bold-invert:hsla(var(--danger-h),var(--danger-s),var(--bold-invert-l),1);--danger-on-scheme-l:40%;--danger-on-scheme:hsla(var(--danger-h),var(--danger-s),var(--danger-on-scheme-l),1);--black-bis:#14161a;--black-ter:#1f2229;--grey-darker:#2e333d;--grey-dark:#404654;--grey:#69748c;--grey-light:#abb1bf;--grey-lighter:#d6d9e0;--white-ter:#f3f4f6;--white-bis:#f9fafb;--shadow-h:221deg;--shadow-s:14%;--shadow-l:4%;--size-1:3rem;--size-2:2.5rem;--size-3:2rem;--size-4:1.5rem;--size-5:1.25rem;--size-6:1rem;--size-7:0.75rem;--scheme-main:hsl(var(--scheme-h),var(--scheme-s),var(--scheme-main-l));--scheme-main-bis:hsl(var(--scheme-h),var(--scheme-s),var(--scheme-main-bis-l));--scheme-main-ter:hsl(var(--scheme-h),var(--scheme-s),var(--scheme-main-ter-l));--background:hsl(var(--scheme-h),var(--scheme-s),var(--background-l));--background-hover:hsl(var(--scheme-h),var(--scheme-s),calc(var(--background-l) + var(--hover-background-l-delta)));--background-active:hsl(var(--scheme-h),var(--scheme-s),calc(var(--background-l) + var(--active-background-l-delta)));--border-weak:hsl(var(--scheme-h),var(--scheme-s),var(--border-weak-l));--border:hsl(var(--scheme-h),var(--scheme-s),var(--border-l));--border-hover:hsl(var(--scheme-h),var(--scheme-s),calc(var(--border-l) + var(--hover-border-l-delta)));--border-active:hsl(var(--scheme-h),var(--scheme-s),calc(var(--border-l) + var(--active-border-l-delta)));--text-weak:hsl(var(--text-h),var(--text-s),var(--text-weak-l));--text:hsl(var(--text-h),var(--text-s),var(--text-l));--text-strong:hsl(var(--text-h),var(--text-s),var(--text-strong-l));--scheme-invert-ter:hsl(var(--scheme-h),var(--scheme-s),var(--scheme-invert-ter-l));--scheme-invert-bis:hsl(var(--scheme-h),var(--scheme-s),var(--scheme-invert-bis-l));--scheme-invert:hsl(var(--scheme-h),var(--scheme-s),var(--scheme-invert-l));--link:hsl(var(--link-h),var(--link-s),var(--link-l));--link-text:hsl(var(--link-h),var(--link-s),var(--link-on-scheme-l));--link-text-hover:hsl(var(--link-h),var(--link-s),calc(var(--link-on-scheme-l) + var(--hover-color-l-delta)));--link-text-active:hsl(var(--link-h),var(--link-s),calc(var(--link-on-scheme-l) + var(--active-color-l-delta)));--focus-h:var(--link-h);--focus-s:var(--link-s);--focus-l:var(--link-l);--focus-offset:1px;--focus-style:solid;--focus-width:2px;--focus-shadow-size:0 0 0 0.1875em;--focus-shadow-alpha:0.25;--code:hsl(var(--danger-h),var(--danger-s),var(--danger-on-scheme-l));--code-background:var(--background);--pre:var(--text);--pre-background:var(--background);--shadow:0 0.5em 1em -0.125em hsla(var(--shadow-h),var(--shadow-s),var(--shadow-l),0.1),0 0px 0 1px hsla(var(--shadow-h),var(--shadow-s),var(--shadow-l),0.02)}.switch[type=checkbox]{display:inline-block;opacity:0;outline:0;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none}.switch[type=checkbox]:focus+label:after,.switch[type=checkbox]:focus+label:before{outline:1px dotted #abb1bf}.switch[type=checkbox][disabled]{cursor:not-allowed}.switch[type=checkbox][disabled]+label,.switch[type=checkbox][disabled]+label:after,.switch[type=checkbox][disabled]+label:before{opacity:.5}.switch[type=checkbox][disabled]+label:hover{cursor:not-allowed}.switch[type=checkbox]+label{align-items:center;cursor:pointer;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-left:3.5rem;padding-top:.2rem;position:relative}.switch[type=checkbox]+label:before{background:#abb1bf;border:.1rem solid transparent;border-radius:.375rem;content:"";display:block;height:1.5rem;left:0;position:absolute;top:calc(50% - .75rem);width:3rem}.switch[type=checkbox]+label:after{background:#fff;border-radius:.375rem;content:"";display:block;height:1rem;left:.25rem;position:absolute;top:calc(50% - .5rem);transform:translateZ(0);transition:all .25s ease-out;width:1rem}.switch[type=checkbox]:checked+label:before{background:#00d1b2}.switch[type=checkbox]:checked+label:after{left:1.625rem}.switch[type=checkbox].is-rounded+label:before{border-radius:3rem}.switch[type=checkbox].is-rounded+label:after{border-radius:50%}.switch[type=checkbox].is-small+label{align-items:center;cursor:pointer;display:inline-flex;font-size:.75rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-left:2.75rem;padding-top:.2rem;position:relative}.switch[type=checkbox].is-small+label:before{background:#abb1bf;border:.1rem solid transparent;border-radius:.375rem;content:"";display:block;height:1.125rem;left:0;position:absolute;top:calc(50% - .5625rem);width:2.25rem}.switch[type=checkbox].is-small+label:after{background:#fff;border-radius:.375rem;content:"";display:block;height:.625rem;left:.25rem;position:absolute;top:calc(50% - .3125rem);transform:translateZ(0);transition:all .25s ease-out;width:.625rem}.switch[type=checkbox].is-small:checked+label:before{background:#00d1b2}.switch[type=checkbox].is-small:checked+label:after{left:1.25rem}.switch[type=checkbox].is-small.is-rounded+label:before{border-radius:3rem}.switch[type=checkbox].is-small.is-rounded+label:after{border-radius:50%}.switch[type=checkbox].is-medium+label{align-items:center;cursor:pointer;display:inline-flex;font-size:1.25rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-left:4.25rem;padding-top:.2rem;position:relative}.switch[type=checkbox].is-medium+label:before{background:#abb1bf;border:.1rem solid transparent;border-radius:.375rem;content:"";display:block;height:1.875rem;left:0;position:absolute;top:calc(50% - .9375rem);width:3.75rem}.switch[type=checkbox].is-medium+label:after{background:#fff;border-radius:.375rem;content:"";display:block;height:1.375rem;left:.25rem;position:absolute;top:calc(50% - .6875rem);transform:translateZ(0);transition:all .25s ease-out;width:1.375rem}.switch[type=checkbox].is-medium:checked+label:before{background:#00d1b2}.switch[type=checkbox].is-medium:checked+label:after{left:2rem}.switch[type=checkbox].is-medium.is-rounded+label:before{border-radius:3rem}.switch[type=checkbox].is-medium.is-rounded+label:after{border-radius:50%}.switch[type=checkbox].is-large+label{align-items:center;cursor:pointer;display:inline-flex;font-size:1.5rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-left:5rem;padding-top:.2rem;position:relative}.switch[type=checkbox].is-large+label:before{background:#abb1bf;border:.1rem solid transparent;border-radius:.375rem;content:"";display:block;height:2.25rem;left:0;position:absolute;top:calc(50% - 1.125rem);width:4.5rem}.switch[type=checkbox].is-large+label:after{background:#fff;border-radius:.375rem;content:"";display:block;height:1.75rem;left:.25rem;position:absolute;top:calc(50% - .875rem);transform:translateZ(0);transition:all .25s ease-out;width:1.75rem}.switch[type=checkbox].is-large:checked+label:before{background:#00d1b2}.switch[type=checkbox].is-large:checked+label:after{left:2.375rem}.switch[type=checkbox].is-large.is-rounded+label:before{border-radius:3rem}.switch[type=checkbox].is-large.is-rounded+label:after{border-radius:50%}.field-body .switch[type=checkbox]+label{margin-top:.375em}[data-tooltip]:not(.is-disabled),[data-tooltip]:not(.is-loading),[data-tooltip]:not([disabled]){cursor:pointer;overflow:visible;position:relative}[data-tooltip]:not(.is-disabled):after,[data-tooltip]:not(.is-disabled):before,[data-tooltip]:not(.is-loading):after,[data-tooltip]:not(.is-loading):before,[data-tooltip]:not([disabled]):after,[data-tooltip]:not([disabled]):before{box-sizing:border-box;color:#fff;display:inline-block;font-family:"Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Lucida Sans Unicode, Lucida Grande, Arial, sans-serif";font-size:.75rem;-webkit-hyphens:auto;hyphens:auto;opacity:0;overflow:hidden;pointer-events:none;position:absolute;visibility:hidden;z-index:1020}[data-tooltip]:not(.is-disabled):after,[data-tooltip]:not(.is-loading):after,[data-tooltip]:not([disabled]):after{border:6px solid transparent;border-top-color:rgba(64,70,84,.9);border-color:rgba(64,70,84,.9) transparent transparent;bottom:auto;content:"";left:50%;margin-bottom:-5px;margin:-5px auto auto -5px;right:auto;top:0}[data-tooltip]:not(.is-disabled):before,[data-tooltip]:not(.is-loading):before,[data-tooltip]:not([disabled]):before{background:rgba(64,70,84,.9);border-radius:.25rem;bottom:auto;content:attr(data-tooltip);left:50%;margin-bottom:auto;margin-top:-5px;padding:.5rem 1rem;right:auto;text-overflow:ellipsis;top:0;transform:translate(-50%,-100%);white-space:pre}[data-tooltip]:not(.is-disabled).has-tooltip-right:after,[data-tooltip]:not(.is-loading).has-tooltip-right:after,[data-tooltip]:not([disabled]).has-tooltip-right:after{border-color:transparent rgba(64,70,84,.9) transparent transparent;bottom:50%;left:auto;margin:auto -11px -6px auto;right:0;top:auto}[data-tooltip]:not(.is-disabled).has-tooltip-right:before,[data-tooltip]:not(.is-loading).has-tooltip-right:before,[data-tooltip]:not([disabled]).has-tooltip-right:before{bottom:50%;left:auto;margin-top:auto;right:-11px;top:auto;transform:translate(100%,50%)}[data-tooltip]:not(.is-disabled).has-tooltip-multiline:before,[data-tooltip]:not(.is-loading).has-tooltip-multiline:before,[data-tooltip]:not([disabled]).has-tooltip-multiline:before{height:auto;max-width:15rem;text-overflow:clip;white-space:normal;width:15rem;word-break:keep-all}[data-tooltip]:not(.is-disabled):focus:after,[data-tooltip]:not(.is-disabled):focus:before,[data-tooltip]:not(.is-disabled):hover:after,[data-tooltip]:not(.is-disabled):hover:before,[data-tooltip]:not(.is-loading):focus:after,[data-tooltip]:not(.is-loading):focus:before,[data-tooltip]:not(.is-loading):hover:after,[data-tooltip]:not(.is-loading):hover:before,[data-tooltip]:not([disabled]):focus:after,[data-tooltip]:not([disabled]):focus:before,[data-tooltip]:not([disabled]):hover:after,[data-tooltip]:not([disabled]):hover:before{opacity:1;visibility:visible}.is-checkradio[type=checkbox]{display:none;opacity:0;outline:0;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none}.is-checkradio[type=checkbox]+label{border-radius:.375rem;cursor:pointer;display:initial;margin:.5em;padding:.2rem .5rem .2rem 0;position:relative;vertical-align:middle}.is-checkradio[type=checkbox]+label:first-of-type{margin-left:0}.is-checkradio[type=checkbox]+label:hover:before{animation-duration:.4s;animation-fill-mode:both;animation-name:hover-color}.is-checkradio[type=checkbox]+label:before{border:.1rem solid #d6d9e0;content:"";left:0;position:absolute;top:0}.is-checkradio[type=checkbox]+label:after{content:"";display:none;position:absolute;top:0}.is-checkradio[type=checkbox]:focus+label:before{outline:1px dotted #abb1bf}.is-checkradio[type=checkbox]:hover:not([disabled])+label:before{border-color:#00d1b2!important}.is-checkradio[type=checkbox]:checked+label:before{border:.1rem solid #d6d9e0}.is-checkradio[type=checkbox]:checked[disabled]{cursor:not-allowed}.is-checkradio[type=checkbox]:checked[disabled]+label{opacity:.5}.is-checkradio[type=checkbox]:checked+label:before{animation-name:none}.is-checkradio[type=checkbox]:checked+label:after{display:inline-block}.is-checkradio[type=checkbox][disabled]{cursor:not-allowed}.is-checkradio[type=checkbox][disabled]+label{cursor:not-allowed;opacity:.5}.is-checkradio[type=checkbox][disabled]+label:after,.is-checkradio[type=checkbox][disabled]+label:before,.is-checkradio[type=checkbox][disabled]+label:hover,.is-checkradio[type=checkbox][disabled]:hover{cursor:not-allowed}.is-checkradio[type=checkbox][disabled]:hover:before{animation-name:none}.is-checkradio[type=checkbox][disabled]:after,.is-checkradio[type=checkbox][disabled]:before{cursor:not-allowed}.is-checkradio[type=checkbox].is-block{display:none!important}.is-checkradio[type=checkbox].is-block+label{background:#f3f4f6;color:findColorInvert(#f3f4f6);padding-right:.75em;width:100%!important}.is-checkradio[type=checkbox].is-block:hover:not([disabled])+label{background:#e5e7eb}.is-checkradio[type=checkbox]+label:before{border-radius:.375rem}.is-checkradio[type=checkbox]+label:after{border:.1rem solid #00d1b2;border-left:0;border-top:0;box-sizing:border-box;transform:translateY(0) rotate(45deg)}.is-checkradio[type=checkbox]+label{font-size:1rem;padding-left:2rem}.is-checkradio[type=checkbox]+label:before{height:1.5rem;width:1.5rem}.is-checkradio[type=checkbox]+label:after{height:.6rem;left:.6rem;top:.405rem;width:.375rem}.is-checkradio[type=checkbox].is-block+label:before{height:1.25rem;left:.175rem;top:.175rem;width:1.25rem}.is-checkradio[type=checkbox].is-block+label:after{left:.65rem;top:.325rem}.is-checkradio[type=checkbox].is-small+label{font-size:.75rem;padding-left:1.5rem}.is-checkradio[type=checkbox].is-small+label:before{height:1.125rem;width:1.125rem}.is-checkradio[type=checkbox].is-small+label:after{height:.45rem;left:.45rem;top:.30375rem;width:.28125rem}.is-checkradio[type=checkbox].is-small.is-block+label:before{height:.9375rem;left:.175rem;top:.175rem;width:.9375rem}.is-checkradio[type=checkbox].is-small.is-block+label:after{left:.5375rem;top:.29375rem}.is-checkradio[type=checkbox].is-medium+label{font-size:1.25rem;padding-left:2.5rem}.is-checkradio[type=checkbox].is-medium+label:before{height:1.875rem;width:1.875rem}.is-checkradio[type=checkbox].is-medium+label:after{height:.75rem;left:.75rem;top:.50625rem;width:.46875rem}.is-checkradio[type=checkbox].is-medium.is-block+label:before{height:1.5625rem;left:.175rem;top:.175rem;width:1.5625rem}.is-checkradio[type=checkbox].is-medium.is-block+label:after{left:.7625rem;top:.35625rem}.is-checkradio[type=checkbox].is-large+label{font-size:1.5rem;padding-left:3rem}.is-checkradio[type=checkbox].is-large+label:before{height:2.25rem;width:2.25rem}.is-checkradio[type=checkbox].is-large+label:after{height:.9rem;left:.9rem;top:.6075rem;width:.5625rem}.is-checkradio[type=checkbox].is-large.is-block+label:before{height:1.875rem;left:.175rem;top:.175rem;width:1.875rem}.is-checkradio[type=checkbox].is-large.is-block+label:after{left:.875rem;top:.3875rem}.is-checkradio[type=checkbox]:indeterminate+label:after{border-bottom:none;display:inline-block;transform:rotate(90deg)}.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.far,.fas{font-family:Font Awesome\ 6 Free}@font-face{font-display:block;font-family:Font Awesome\ 6 Brands;font-style:normal;font-weight:400;src:url(/static/fonts/fontawesome/webfonts/fa-brands-400.woff2) format("woff2"),url(/static/fonts/fontawesome/webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-display:block;font-family:Font Awesome\ 6 Free;font-style:normal;font-weight:900;src:url(/static/fonts/fontawesome/webfonts/fa-solid-900.woff2) format("woff2"),url(/static/fonts/fontawesome/webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-display:block;font-family:Font Awesome\ 6 Free;font-style:normal;font-weight:400;src:url(/static/fonts/fontawesome/webfonts/fa-regular-400.woff2) format("woff2"),url(/static/fonts/fontawesome/webfonts/fa-regular-400.ttf) format("truetype")}.far{font-weight:400}.far,.fas{font-family:Font Awesome\ 6 Free}.fas{font-weight:900}.fa-magnifying-glass:before{content:"\f002"}.fa-pen-to-square:before{content:"\f044"}.fa-trash:before{content:"\f1f8"}.fa-delete-left:before{content:"\f55a"}.fa-sort:before{content:"\f0dc"}.fa-terminal:before{content:"\f120"}.fa-ban:before{content:"\f05e"}.fa-toggle-on:before{content:"\f205"}.fa-toggle-off:before{content:"\f204"}.fa-circle-play:before{content:"\f144"}.fa-plus:before{content:"\+"}.fa-rotate:before{content:"\f2f1"}.fa-copy:before{content:"\f0c5"}.fa-download:before{content:"\f019"}.fa-check:before{content:"\f00c"}.fa-circle-info:before{content:"\f05a"}.fa-file-arrow-down:before{content:"\f56d"}.fa-angle-right:before{content:"\f105"}.fa-circle-check:before{content:"\f058"}.fa-circle-xmark:before{content:"\f057"}.fa-circle-notch:before{content:"\f1ce"}.fa-circle-stop:before{content:"\f28d"}.fa-circle-pause:before{content:"\f28b"}.fa-circle-question:before{content:"\f059"}.fa-calendar:before{content:"\f133"}.fa-arrow-up-right-from-square:before{content:"\f08e"}.fa-eye-slash:before{content:"\f070"}.fa-eye:before{content:"\f06e"}.fa-users:before{content:"\f0c0"}.fa-right-to-bracket:before{content:"\f2f6"}.fa-angle-down:before{content:"\f107"}.fa-triangle-exclamation:before{content:"\f071"}.CodeMirror{color:#000;direction:ltr;font-family:monospace;height:300px}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{background-color:#f7f7f7;border-right:1px solid #ddd;white-space:nowrap}.CodeMirror-linenumber{color:#999;min-width:20px;padding:0 3px 0 5px;text-align:right;white-space:nowrap}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{background:#7e7;border:0!important;width:auto}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror{background:#fff;overflow:hidden;position:relative}.CodeMirror-scroll{height:100%;margin-bottom:-30px;margin-right:-30px;outline:none;overflow:scroll!important;padding-bottom:30px;position:relative}.CodeMirror-sizer{border-right:30px solid transparent;position:relative}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{display:none;position:absolute;z-index:6}.CodeMirror-vscrollbar{overflow-x:hidden;overflow-y:scroll;right:0;top:0}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-x:scroll;overflow-y:hidden}.CodeMirror-scrollbar-filler{bottom:0;right:0}.CodeMirror-gutter-filler{bottom:0;left:0}.CodeMirror-gutters{left:0;min-height:100%;position:absolute;top:0;z-index:3}.CodeMirror-gutter{display:inline-block;height:100%;margin-bottom:-30px;vertical-align:top;white-space:normal}.CodeMirror-gutter-wrapper{background:none!important;border:none!important;position:absolute;z-index:4}.CodeMirror-gutter-background{bottom:0;position:absolute;top:0;z-index:4}.CodeMirror-gutter-elt{cursor:default;position:absolute;z-index:4}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{background:transparent;border-radius:0;border-width:0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;color:inherit;line-height:inherit;overflow:visible;position:relative;z-index:2;-webkit-tap-highlight-color:transparent;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{bottom:0;left:0;position:absolute;right:0;top:0;z-index:0}.CodeMirror-linewidget{padding:.1px;position:relative;z-index:2}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{box-sizing:content-box}.CodeMirror-measure{height:0;overflow:hidden;position:absolute;visibility:hidden;width:100%}.CodeMirror-cursor{pointer-events:none;position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{position:relative;visibility:hidden;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::-moz-selection, .CodeMirror-line>span::-moz-selection, .CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}.CodeMirror-overlayscroll .CodeMirror-gutter-filler,.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler{display:none}.ss-wrapper{float:left;height:100%;overflow:hidden;position:relative;width:100%;z-index:1}.ss-content{box-sizing:border-box;height:calc(22px + 100%);overflow-x:scroll;overflow-y:scroll;padding:0;position:relative;width:calc(18px + 100%)}.ss-scroll{padding-top:2px;right:0;top:0}.ss-hscroll,.ss-scroll{cursor:pointer;opacity:0;padding-bottom:2px;padding-right:2px;position:absolute;transition:opacity .25s linear .5s;z-index:2}.ss-hscroll{bottom:0;left:0;padding-left:2px}.ss-liner{background:rgba(0,0,0,.4);border-radius:4px;height:100%;transition:background .25s linear;width:100%}.ss-scroll .ss-liner{transition:width .15s linear;width:8px}.ss-hscroll .ss-liner{height:8px;transition:height .15s linear}.ss-grabbed .ss-liner,.ss-hscroll:hover .ss-liner,.ss-scroll:hover .ss-liner{background:rgba(0,0,0,.5);border-radius:6px}.ss-scroll.ss-grabbed .ss-liner,.ss-scroll:hover .ss-liner{width:12px}.ss-hscroll.ss-grabbed .ss-liner,.ss-hscroll:hover .ss-liner{height:12px}.ss-container.light .ss-liner{background:hsla(0,0%,100%,.4)}.ss-container.light .ss-grabbed .ss-liner,.ss-container.light .ss-hscroll:hover .ss-liner,.ss-container.light .ss-scroll:hover .ss-liner{background:hsla(0,0%,100%,.8)}.ss-hidden{display:none}.ss-container.ss-grabbed>.ss-wrapper>.ss-hscroll,.ss-container.ss-grabbed>.ss-wrapper>.ss-scroll,.ss-container:active>.ss-wrapper>.ss-hscroll,.ss-container:active>.ss-wrapper>.ss-scroll,.ss-container:hover>.ss-wrapper>.ss-hscroll,.ss-container:hover>.ss-wrapper>.ss-scroll{opacity:1;transition:opacity .25s linear 0s}.ss-grabbed{-o-user-select:none;-moz-user-select:none;-webkit-user-select:none;user-select:none}.sp-wrapper{height:100%;opacity:0;position:absolute;right:0;top:0;transition:opacity .25s linear .5s;-moz-user-select:none;-webkit-user-select:none;user-select:none;width:0}.sp-container:hover .sp-wrapper,.sp-wrapper>.sp-grabbed,.ss-grabbed~.sp-wrapper{opacity:1;transition:opacity .25s linear 0s}.sp-content{transform-origin:0 0}.sp-scroll{background-image:linear-gradient(270deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.2));border-left:2px solid #e7db74;left:-2px;opacity:0;position:absolute;transition:opacity .25s linear .5s;width:100%}.sp-wrapper .sp-scroll.sp-grabbed,.sp-wrapper:hover .sp-scroll,.ss-scroll.ss-grabbed~.sp-wrapper .sp-scroll,.ss-scroll:hover~.sp-wrapper .sp-scroll{opacity:1;transition:opacity .25s linear 0s}.ss-content::-webkit-scrollbar{background-color:#fff;width:16px}code[class*=language-],pre[class*=language-]{background:none;color:#000;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;text-shadow:0 1px #fff;white-space:pre;word-break:normal;word-spacing:normal;word-wrap:normal;-webkit-hyphens:none;hyphens:none;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{background:#b3d4fc;text-shadow:none}code[class*=language-] ::-moz-selection, code[class*=language-]::-moz-selection, pre[class*=language-] ::-moz-selection, pre[class*=language-]::-moz-selection{background:#b3d4fc;text-shadow:none}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{background:#b3d4fc;text-shadow:none}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.style .token.string,.token.entity,.token.operator,.token.url{background:hsla(0,0%,100%,.5);color:#9a6e3a}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.important{font-weight:700}.token.entity{cursor:help}.table.sort tr>th{cursor:pointer}pre[class*=language-].line-numbers{counter-reset:linenumber;padding-left:3.8em;position:relative}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{border-right:1px solid #999;font-size:100%;left:-3.8em;letter-spacing:-1px;pointer-events:none;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:3em}.line-numbers-rows>span{counter-increment:linenumber;display:block}.line-numbers-rows>span:before{color:#999;content:counter(linenumber);display:block;padding-right:.8em;text-align:right}.flatpickr-calendar{animation:none;background:transparent;background:#fff;border:0;border-radius:5px;box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-sizing:border-box;direction:ltr;display:none;font-size:14px;line-height:24px;opacity:0;padding:0;position:absolute;text-align:center;touch-action:manipulation;visibility:hidden;width:307.875px}.flatpickr-calendar.inline,.flatpickr-calendar.open{max-height:640px;opacity:1;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{display:block;z-index:999}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{border-top:1px solid #e6e6e6;height:40px}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:after,.flatpickr-calendar:before{border:solid transparent;content:"";display:block;height:0;left:22px;pointer-events:none;position:absolute;width:0}.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{display:inline-block;position:relative}.flatpickr-months{display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,.9);fill:rgba(0,0,0,.9);height:34px;line-height:1;overflow:hidden;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex:1}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{color:rgba(0,0,0,.9);cursor:pointer;height:34px;padding:10px;position:absolute;text-decoration:none;top:0;z-index:3;fill:rgba(0,0,0,.9)}.flatpickr-months .flatpickr-next-month.flatpickr-disabled,.flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i{position:relative}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#959ea9}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{height:14px;width:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{transition:fill .1s;fill:inherit}.numInputWrapper{height:auto;position:relative}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.numInputWrapper span{border:1px solid rgba(57,57,57,.15);box-sizing:border-box;cursor:pointer;height:50%;line-height:50%;opacity:0;padding:0 4px 0 2px;position:absolute;right:0;width:14px}.numInputWrapper span:hover{background:rgba(0,0,0,.1)}.numInputWrapper span:active{background:rgba(0,0,0,.2)}.numInputWrapper span:after{content:"";display:block;position:absolute}.numInputWrapper span.arrowUp{border-bottom:0;top:0}.numInputWrapper span.arrowUp:after{border-bottom:4px solid rgba(57,57,57,.6);border-left:4px solid transparent;border-right:4px solid transparent;top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{height:auto;width:inherit}.numInputWrapper span svg path{fill:rgba(0,0,0,.5)}.numInputWrapper:hover{background:rgba(0,0,0,.05)}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{color:inherit;display:inline-block;font-size:135%;font-weight:300;height:34px;left:12.5%;line-height:inherit;line-height:1;padding:7.48px 0 0;position:absolute;text-align:center;transform:translateZ(0);width:75%}.flatpickr-current-month span.cur-month{color:inherit;display:inline-block;font-family:inherit;font-weight:700;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .numInputWrapper{display:inline-block;width:6ch;width:7ch\0}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,.9)}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,.9)}.flatpickr-current-month input.cur-year{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;background:transparent;border:0;border-radius:0;box-sizing:border-box;color:inherit;cursor:text;display:inline-block;font-family:inherit;font-size:inherit;font-weight:300;height:auto;line-height:inherit;margin:0;padding:0 0 0 .5ch;vertical-align:initial}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{background:transparent;color:rgba(0,0,0,.5);font-size:100%;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;-webkit-appearance:menulist;-moz-appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;-webkit-box-sizing:border-box;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:active,.flatpickr-current-month .flatpickr-monthDropdown-months:focus{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(0,0,0,.05)}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;overflow:hidden;text-align:center;width:100%;align-items:center;height:28px}.flatpickr-weekdays,.flatpickr-weekdays .flatpickr-weekdaycontainer{display:flex}.flatpickr-weekdays .flatpickr-weekdaycontainer,span.flatpickr-weekday{flex:1}span.flatpickr-weekday{background:transparent;color:rgba(0,0,0,.54);cursor:default;display:block;font-size:90%;font-weight:bolder;line-height:1;margin:0;text-align:center}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{display:flex;overflow:hidden;position:relative;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{box-sizing:border-box;display:inline-block;display:flex;flex-wrap:wrap;-ms-flex-wrap:wrap;max-width:307.875px;min-width:307.875px;outline:0;padding:0;text-align:left;width:307.875px;justify-content:space-around;opacity:1;transform:translateZ(0)}.dayContainer+.dayContainer{box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;box-sizing:border-box;color:#393939;cursor:pointer;-webkit-flex-basis:14.2857143%;font-weight:400;width:14.2857143%;-ms-flex-preferred-size:14.2857143%;display:inline-block;flex-basis:14.2857143%;height:39px;line-height:39px;margin:0;max-width:39px;position:relative;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{background:#e6e6e6;border-color:#e6e6e6;cursor:pointer;outline:0}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:focus,.flatpickr-day.today:hover{background:#959ea9;border-color:#959ea9;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#569ff7;border-color:#569ff7;box-shadow:none;color:#fff}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 0 #569ff7}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{background:transparent;border-color:transparent;color:rgba(57,57,57,.3);cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{color:rgba(57,57,57,.1);cursor:not-allowed}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{box-shadow:1px 0 0 #e6e6e6;padding:0 12px}.flatpickr-weekwrapper .flatpickr-weekday{float:none;line-height:28px;width:100%}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{background:transparent;border:none;color:rgba(57,57,57,.3);cursor:default;display:block;max-width:none;width:100%}.flatpickr-innerContainer{display:block;display:flex;overflow:hidden}.flatpickr-innerContainer,.flatpickr-rContainer{box-sizing:border-box}.flatpickr-rContainer{display:inline-block;padding:0}.flatpickr-time{box-sizing:border-box;display:block;display:flex;height:0;line-height:40px;max-height:40px;outline:0;overflow:hidden;text-align:center}.flatpickr-time:after{clear:both;content:"";display:table}.flatpickr-time .numInputWrapper{flex:1;float:left;height:40px;width:40%}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;background:transparent;border:0;border-radius:0;box-shadow:none;box-sizing:border-box;color:#393939;font-size:14px;height:inherit;line-height:inherit;margin:0;padding:0;position:relative;text-align:center}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{border:0;outline:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{-webkit-align-self:center;color:#393939;float:left;font-weight:700;height:inherit;line-height:inherit;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:2%;align-self:center}.flatpickr-time .flatpickr-am-pm{cursor:pointer;font-weight:400;outline:0;text-align:center;width:18%}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@keyframes fpFadeInDown{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:300;src:url(/static/fonts/inter/files/inter-latin-300-normal.woff2) format("woff2"),url(/static/fonts/inter/files/inter-latin-300-normal.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/static/fonts/inter/files/inter-latin-400-normal.woff2) format("woff2"),url(/static/fonts/inter/files/inter-latin-400-normal.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/static/fonts/inter/files/inter-latin-500-normal.woff2) format("woff2"),url(/static/fonts/inter/files/inter-latin-500-normal.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/static/fonts/inter/files/inter-latin-600-normal.woff2) format("woff2"),url(/static/fonts/inter/files/inter-latin-600-normal.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/static/fonts/inter/files/inter-latin-700-normal.woff2) format("woff2"),url(/static/fonts/inter/files/inter-latin-700-normal.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Rasa;font-style:normal;font-weight:600;src:url(/static/fonts/rasa/files/rasa-latin-600-normal.woff2) format("woff2"),url(/static/fonts/rasa/files/rasa-latin-600-normal.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}.column{min-width:0}.atlas-navbar{padding:16px 0}.atlas-navbar .navbar-brand{margin-left:0!important}.atlas-navbar .navbar-brand a{padding-bottom:0;padding-top:0}.atlas-navbar .navbar-brand a img{height:50px;max-height:50px}.atlas-navbar .has-dropdown .navbar-link:hover,.atlas-navbar a.navbar-item:hover{color:#2e333d}@media screen and (min-width:1024px){.atlas-navbar .navbar-start{padding-top:0!important}.hide-desktop{display:none!important}}#search-form{position:relative}#search-results{border-radius:.375rem;display:none;left:0;max-height:calc(100vh - 145px);max-width:800px;min-width:100%;min-width:max(50vw,100%);overflow-y:auto;position:absolute;top:50px;z-index:999999}@media screen and (min-width:1024px){#search-results{min-width:max(30vw,100%)}}#search-results:empty{display:none!important}#search-results.search-focus,#search-results:active{border:1px solid #d6d9e0;display:block}#search-results .panel-block:first-of-type{border-top-left-radius:inherit;border-top-right-radius:inherit}#search-background{background:transparent;bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:10}#search-background+div{z-index:11}#search-results em{background-color:#eff5fb;color:#3e8ed0}.tab-cnt>.tab-dta:not(.is-active){display:none}.tag:empty{background:transparent}[data-tooltip].has-tooltip-multiline:before{white-space:pre-line!important}[data-tooltip]:before{max-width:21rem!important;width:21rem!important}.is-size-6-5{font-size:.85rem!important}input.transparent{background:transparent!important;border:transparent!important}.pagination.is-close ul li:not(:first-of-type) .pagination-link{border-bottom-left-radius:0;border-top-left-radius:0;margin-left:0}.pagination.is-close ul li:not(:last-child) .pagination-link{border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.pagination.is-close ul li:not(:last-child) .pagination-link:hover{margin-right:0;z-index:4}.pagination.is-close ul li:not(:last-child):hover+li .pagination-link{margin-left:-1px}.log-group div[log_id].is-collapsed{align-items:baseline;height:20px;overflow:hidden}.em-codeBox{max-height:500px;overflow:hidden}.em-codeBox pre{display:inline-block;margin:0!important;min-height:calc(100% - 1px);min-width:100%;overflow:hidden!important;padding:1em 0 0 1em}.em-codeBox code{padding-right:130px}.em-timelineScale{bottom:0;position:absolute;top:0;width:100%}.em-timelineLiner{padding-left:50px;position:relative}.em-timelineLiner:before{bottom:-20px;content:"runs/\a time";left:0;position:absolute;white-space:pre-wrap}.em-el{height:200px}.em-elBar{height:0;position:relative}.em-elBar:before{background:#fff;bottom:-30px;content:attr(data-attr);left:0;position:absolute;right:0}.em-ScaleBar{background:#abb1bf;height:1px;margin-bottom:50px;position:relative;width:100%}.em-ScaleBar:before{background:#fff;color:#404654;content:attr(data-attr);padding-right:10px;position:absolute;top:50%;transform:translateY(-50%)}.em-ScaleBar:last-of-type{background:transparent}code .number{all:unset}.is-inlineblock{display:inline-block!important}article.message a{text-decoration:none!important}.em-ajaxContent.is-inline div{display:inline-block} \ No newline at end of file diff --git a/web/static/fonts/fontawesome/webfonts/fa-regular-400.ttf b/web/static/fonts/fontawesome/webfonts/fa-regular-400.ttf index f015bb6a..ad6faeb6 100644 Binary files a/web/static/fonts/fontawesome/webfonts/fa-regular-400.ttf and b/web/static/fonts/fontawesome/webfonts/fa-regular-400.ttf differ diff --git a/web/static/fonts/fontawesome/webfonts/fa-regular-400.woff2 b/web/static/fonts/fontawesome/webfonts/fa-regular-400.woff2 index 3d7babfe..e3ca572a 100644 Binary files a/web/static/fonts/fontawesome/webfonts/fa-regular-400.woff2 and b/web/static/fonts/fontawesome/webfonts/fa-regular-400.woff2 differ diff --git a/web/static/fonts/fontawesome/webfonts/fa-solid-900.ttf b/web/static/fonts/fontawesome/webfonts/fa-solid-900.ttf index 65a54780..e5fe836e 100644 Binary files a/web/static/fonts/fontawesome/webfonts/fa-solid-900.ttf and b/web/static/fonts/fontawesome/webfonts/fa-solid-900.ttf differ diff --git a/web/static/fonts/fontawesome/webfonts/fa-solid-900.woff2 b/web/static/fonts/fontawesome/webfonts/fa-solid-900.woff2 index 9d444e48..5a5a56d0 100644 Binary files a/web/static/fonts/fontawesome/webfonts/fa-solid-900.woff2 and b/web/static/fonts/fontawesome/webfonts/fa-solid-900.woff2 differ diff --git a/web/static/fonts/inter/100.css b/web/static/fonts/inter/100.css index e7c37f51..2f188d25 100644 --- a/web/static/fonts/inter/100.css +++ b/web/static/fonts/inter/100.css @@ -35,7 +35,7 @@ font-display: swap; font-weight: 100; src: url(/static/fonts/inter/files/inter-greek-100-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-greek-100-normal.woff) format('woff'); - unicode-range: U+0370-03FF; + unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; } /* inter-vietnamese-100-normal */ @@ -55,7 +55,7 @@ font-display: swap; font-weight: 100; src: url(/static/fonts/inter/files/inter-latin-ext-100-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-ext-100-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* inter-latin-100-normal */ @@ -65,5 +65,5 @@ font-display: swap; font-weight: 100; src: url(/static/fonts/inter/files/inter-latin-100-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-100-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/inter/200.css b/web/static/fonts/inter/200.css index 51c094b6..c6787d9c 100644 --- a/web/static/fonts/inter/200.css +++ b/web/static/fonts/inter/200.css @@ -35,7 +35,7 @@ font-display: swap; font-weight: 200; src: url(/static/fonts/inter/files/inter-greek-200-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-greek-200-normal.woff) format('woff'); - unicode-range: U+0370-03FF; + unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; } /* inter-vietnamese-200-normal */ @@ -55,7 +55,7 @@ font-display: swap; font-weight: 200; src: url(/static/fonts/inter/files/inter-latin-ext-200-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-ext-200-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* inter-latin-200-normal */ @@ -65,5 +65,5 @@ font-display: swap; font-weight: 200; src: url(/static/fonts/inter/files/inter-latin-200-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-200-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/inter/300.css b/web/static/fonts/inter/300.css index b8805c75..9104ead6 100644 --- a/web/static/fonts/inter/300.css +++ b/web/static/fonts/inter/300.css @@ -35,7 +35,7 @@ font-display: swap; font-weight: 300; src: url(/static/fonts/inter/files/inter-greek-300-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-greek-300-normal.woff) format('woff'); - unicode-range: U+0370-03FF; + unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; } /* inter-vietnamese-300-normal */ @@ -55,7 +55,7 @@ font-display: swap; font-weight: 300; src: url(/static/fonts/inter/files/inter-latin-ext-300-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-ext-300-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* inter-latin-300-normal */ @@ -65,5 +65,5 @@ font-display: swap; font-weight: 300; src: url(/static/fonts/inter/files/inter-latin-300-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-300-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/inter/400.css b/web/static/fonts/inter/400.css index 15f91ed0..a5988b68 100644 --- a/web/static/fonts/inter/400.css +++ b/web/static/fonts/inter/400.css @@ -35,7 +35,7 @@ font-display: swap; font-weight: 400; src: url(/static/fonts/inter/files/inter-greek-400-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-greek-400-normal.woff) format('woff'); - unicode-range: U+0370-03FF; + unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; } /* inter-vietnamese-400-normal */ @@ -55,7 +55,7 @@ font-display: swap; font-weight: 400; src: url(/static/fonts/inter/files/inter-latin-ext-400-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-ext-400-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* inter-latin-400-normal */ @@ -65,5 +65,5 @@ font-display: swap; font-weight: 400; src: url(/static/fonts/inter/files/inter-latin-400-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-400-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/inter/500.css b/web/static/fonts/inter/500.css index b5abebc0..10c0dba1 100644 --- a/web/static/fonts/inter/500.css +++ b/web/static/fonts/inter/500.css @@ -35,7 +35,7 @@ font-display: swap; font-weight: 500; src: url(/static/fonts/inter/files/inter-greek-500-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-greek-500-normal.woff) format('woff'); - unicode-range: U+0370-03FF; + unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; } /* inter-vietnamese-500-normal */ @@ -55,7 +55,7 @@ font-display: swap; font-weight: 500; src: url(/static/fonts/inter/files/inter-latin-ext-500-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-ext-500-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* inter-latin-500-normal */ @@ -65,5 +65,5 @@ font-display: swap; font-weight: 500; src: url(/static/fonts/inter/files/inter-latin-500-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-500-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/inter/600.css b/web/static/fonts/inter/600.css index ad4eda2b..2d3c03c8 100644 --- a/web/static/fonts/inter/600.css +++ b/web/static/fonts/inter/600.css @@ -35,7 +35,7 @@ font-display: swap; font-weight: 600; src: url(/static/fonts/inter/files/inter-greek-600-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-greek-600-normal.woff) format('woff'); - unicode-range: U+0370-03FF; + unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; } /* inter-vietnamese-600-normal */ @@ -55,7 +55,7 @@ font-display: swap; font-weight: 600; src: url(/static/fonts/inter/files/inter-latin-ext-600-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-ext-600-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* inter-latin-600-normal */ @@ -65,5 +65,5 @@ font-display: swap; font-weight: 600; src: url(/static/fonts/inter/files/inter-latin-600-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-600-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/inter/700.css b/web/static/fonts/inter/700.css index 8111fad5..8cfdd6e6 100644 --- a/web/static/fonts/inter/700.css +++ b/web/static/fonts/inter/700.css @@ -35,7 +35,7 @@ font-display: swap; font-weight: 700; src: url(/static/fonts/inter/files/inter-greek-700-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-greek-700-normal.woff) format('woff'); - unicode-range: U+0370-03FF; + unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; } /* inter-vietnamese-700-normal */ @@ -55,7 +55,7 @@ font-display: swap; font-weight: 700; src: url(/static/fonts/inter/files/inter-latin-ext-700-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-ext-700-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* inter-latin-700-normal */ @@ -65,5 +65,5 @@ font-display: swap; font-weight: 700; src: url(/static/fonts/inter/files/inter-latin-700-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-700-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/inter/800.css b/web/static/fonts/inter/800.css index 42435bce..7ae170de 100644 --- a/web/static/fonts/inter/800.css +++ b/web/static/fonts/inter/800.css @@ -35,7 +35,7 @@ font-display: swap; font-weight: 800; src: url(/static/fonts/inter/files/inter-greek-800-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-greek-800-normal.woff) format('woff'); - unicode-range: U+0370-03FF; + unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; } /* inter-vietnamese-800-normal */ @@ -55,7 +55,7 @@ font-display: swap; font-weight: 800; src: url(/static/fonts/inter/files/inter-latin-ext-800-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-ext-800-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* inter-latin-800-normal */ @@ -65,5 +65,5 @@ font-display: swap; font-weight: 800; src: url(/static/fonts/inter/files/inter-latin-800-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-800-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/inter/900.css b/web/static/fonts/inter/900.css index 012fba83..4d97133f 100644 --- a/web/static/fonts/inter/900.css +++ b/web/static/fonts/inter/900.css @@ -35,7 +35,7 @@ font-display: swap; font-weight: 900; src: url(/static/fonts/inter/files/inter-greek-900-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-greek-900-normal.woff) format('woff'); - unicode-range: U+0370-03FF; + unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; } /* inter-vietnamese-900-normal */ @@ -55,7 +55,7 @@ font-display: swap; font-weight: 900; src: url(/static/fonts/inter/files/inter-latin-ext-900-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-ext-900-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* inter-latin-900-normal */ @@ -65,5 +65,5 @@ font-display: swap; font-weight: 900; src: url(/static/fonts/inter/files/inter-latin-900-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-900-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/inter/README.md b/web/static/fonts/inter/README.md index 6fa8fc21..c39eedef 100644 --- a/web/static/fonts/inter/README.md +++ b/web/static/fonts/inter/README.md @@ -42,6 +42,6 @@ Copyright 2020 The Inter Project Authors (https://github.com/rsms/inter) [OFL-1.1](http://scripts.sil.org/OFL) ## Other Notes -Font version (provided by source): `v12`. +Font version (provided by source): `v13`. If you have any suggestions or ideas to improve the performance of font loading or expand the existing library, feel free to star and contribute to this repository. You can share your suggestions or ideas by creating an [issue](https://github.com/fontsource/fontsource/issues). \ No newline at end of file diff --git a/web/static/fonts/inter/files/inter-cyrillic-100-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-100-normal.woff index 0b328f0e..f2585040 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-100-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-100-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-100-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-100-normal.woff2 index 519ef27e..ba0971b2 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-100-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-100-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-200-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-200-normal.woff index 4bd3fc3b..4ee6610d 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-200-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-200-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-200-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-200-normal.woff2 index d94f792f..63722165 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-200-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-200-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-300-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-300-normal.woff index cbfcc5d4..034deed6 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-300-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-300-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-300-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-300-normal.woff2 index f98e5b23..dbb9bf2f 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-300-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-300-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-400-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-400-normal.woff index 3dcb4ecc..06edbbaf 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-400-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-400-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-400-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-400-normal.woff2 index c1c57683..a78fd7e6 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-400-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-400-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-500-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-500-normal.woff index 7803e79b..17934a5c 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-500-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-500-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-500-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-500-normal.woff2 index d1518426..251c47cb 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-500-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-500-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-600-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-600-normal.woff index 0dbbbcf9..2195bb55 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-600-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-600-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-600-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-600-normal.woff2 index b0f0af58..625a4de0 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-600-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-600-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-700-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-700-normal.woff index c2d977ff..262a0cde 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-700-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-700-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-700-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-700-normal.woff2 index 22a09b0b..004f53c9 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-700-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-700-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-800-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-800-normal.woff index 19f9d557..1d1e429f 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-800-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-800-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-800-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-800-normal.woff2 index cad49b63..fd36c805 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-800-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-800-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-900-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-900-normal.woff index 730baf7b..92604cfc 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-900-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-900-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-900-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-900-normal.woff2 index d1133f54..12973f78 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-900-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-900-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-100-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-ext-100-normal.woff index 26d00510..69169d2d 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-100-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-ext-100-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-100-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-ext-100-normal.woff2 index 878765a5..206feef7 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-100-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-ext-100-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-200-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-ext-200-normal.woff index 3940678e..659fed75 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-200-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-ext-200-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-200-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-ext-200-normal.woff2 index eb020032..eb7ac050 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-200-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-ext-200-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-300-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-ext-300-normal.woff index 186e4977..52a606e2 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-300-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-ext-300-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-300-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-ext-300-normal.woff2 index 294c7ff8..85aacbd4 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-300-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-ext-300-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-400-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-ext-400-normal.woff index 4017466b..462eca0b 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-400-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-ext-400-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-400-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-ext-400-normal.woff2 index da834bb8..41cb31d5 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-400-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-ext-400-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-500-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-ext-500-normal.woff index 1c047a5b..3aeaa52e 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-500-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-ext-500-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-500-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-ext-500-normal.woff2 index 5a1646bc..3b7b57c8 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-500-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-ext-500-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-600-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-ext-600-normal.woff index 8d6489d7..54fb2a68 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-600-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-ext-600-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-600-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-ext-600-normal.woff2 index 3b4d7f4b..9b11f7cf 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-600-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-ext-600-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-700-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-ext-700-normal.woff index cb714dfa..83a006a7 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-700-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-ext-700-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-700-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-ext-700-normal.woff2 index 7e52d98c..74d9e3ec 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-700-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-ext-700-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-800-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-ext-800-normal.woff index d8f99045..abe93a50 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-800-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-ext-800-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-800-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-ext-800-normal.woff2 index f9a1a8cd..c74b1dcd 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-800-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-ext-800-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-900-normal.woff b/web/static/fonts/inter/files/inter-cyrillic-ext-900-normal.woff index 8919d091..a9531198 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-900-normal.woff and b/web/static/fonts/inter/files/inter-cyrillic-ext-900-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-cyrillic-ext-900-normal.woff2 b/web/static/fonts/inter/files/inter-cyrillic-ext-900-normal.woff2 index 160f0fff..956e9b15 100644 Binary files a/web/static/fonts/inter/files/inter-cyrillic-ext-900-normal.woff2 and b/web/static/fonts/inter/files/inter-cyrillic-ext-900-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-100-normal.woff b/web/static/fonts/inter/files/inter-greek-100-normal.woff index 9d9fa7af..137942d7 100644 Binary files a/web/static/fonts/inter/files/inter-greek-100-normal.woff and b/web/static/fonts/inter/files/inter-greek-100-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-100-normal.woff2 b/web/static/fonts/inter/files/inter-greek-100-normal.woff2 index bbff286c..cd6defc6 100644 Binary files a/web/static/fonts/inter/files/inter-greek-100-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-100-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-200-normal.woff b/web/static/fonts/inter/files/inter-greek-200-normal.woff index c7a5b0a8..b9f4d8cd 100644 Binary files a/web/static/fonts/inter/files/inter-greek-200-normal.woff and b/web/static/fonts/inter/files/inter-greek-200-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-200-normal.woff2 b/web/static/fonts/inter/files/inter-greek-200-normal.woff2 index 8041bcbf..77877074 100644 Binary files a/web/static/fonts/inter/files/inter-greek-200-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-200-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-300-normal.woff b/web/static/fonts/inter/files/inter-greek-300-normal.woff index cd730de5..3ba2821d 100644 Binary files a/web/static/fonts/inter/files/inter-greek-300-normal.woff and b/web/static/fonts/inter/files/inter-greek-300-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-300-normal.woff2 b/web/static/fonts/inter/files/inter-greek-300-normal.woff2 index e96490ff..ea23a101 100644 Binary files a/web/static/fonts/inter/files/inter-greek-300-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-300-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-400-normal.woff b/web/static/fonts/inter/files/inter-greek-400-normal.woff index d293f1fc..18f07829 100644 Binary files a/web/static/fonts/inter/files/inter-greek-400-normal.woff and b/web/static/fonts/inter/files/inter-greek-400-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-400-normal.woff2 b/web/static/fonts/inter/files/inter-greek-400-normal.woff2 index 143a941b..03a81ff8 100644 Binary files a/web/static/fonts/inter/files/inter-greek-400-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-400-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-500-normal.woff b/web/static/fonts/inter/files/inter-greek-500-normal.woff index a450fa7a..04505b5b 100644 Binary files a/web/static/fonts/inter/files/inter-greek-500-normal.woff and b/web/static/fonts/inter/files/inter-greek-500-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-500-normal.woff2 b/web/static/fonts/inter/files/inter-greek-500-normal.woff2 index 5c986382..c0b34c42 100644 Binary files a/web/static/fonts/inter/files/inter-greek-500-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-500-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-600-normal.woff b/web/static/fonts/inter/files/inter-greek-600-normal.woff index 39f5ccbf..586f67c1 100644 Binary files a/web/static/fonts/inter/files/inter-greek-600-normal.woff and b/web/static/fonts/inter/files/inter-greek-600-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-600-normal.woff2 b/web/static/fonts/inter/files/inter-greek-600-normal.woff2 index f4f0a5eb..98f9477a 100644 Binary files a/web/static/fonts/inter/files/inter-greek-600-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-600-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-700-normal.woff b/web/static/fonts/inter/files/inter-greek-700-normal.woff index 5eac98ec..51e9faa2 100644 Binary files a/web/static/fonts/inter/files/inter-greek-700-normal.woff and b/web/static/fonts/inter/files/inter-greek-700-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-700-normal.woff2 b/web/static/fonts/inter/files/inter-greek-700-normal.woff2 index 140147ef..aa20ad19 100644 Binary files a/web/static/fonts/inter/files/inter-greek-700-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-700-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-800-normal.woff b/web/static/fonts/inter/files/inter-greek-800-normal.woff index 69c7296b..75a91801 100644 Binary files a/web/static/fonts/inter/files/inter-greek-800-normal.woff and b/web/static/fonts/inter/files/inter-greek-800-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-800-normal.woff2 b/web/static/fonts/inter/files/inter-greek-800-normal.woff2 index 544d5835..d5c623f3 100644 Binary files a/web/static/fonts/inter/files/inter-greek-800-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-800-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-900-normal.woff b/web/static/fonts/inter/files/inter-greek-900-normal.woff index 747d9ef8..c70a07de 100644 Binary files a/web/static/fonts/inter/files/inter-greek-900-normal.woff and b/web/static/fonts/inter/files/inter-greek-900-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-900-normal.woff2 b/web/static/fonts/inter/files/inter-greek-900-normal.woff2 index ab3f1c08..c9f5a23c 100644 Binary files a/web/static/fonts/inter/files/inter-greek-900-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-900-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-100-normal.woff b/web/static/fonts/inter/files/inter-greek-ext-100-normal.woff index 435f25c1..47280bd9 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-100-normal.woff and b/web/static/fonts/inter/files/inter-greek-ext-100-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-100-normal.woff2 b/web/static/fonts/inter/files/inter-greek-ext-100-normal.woff2 index 4f023ac3..80cc9ae3 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-100-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-ext-100-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-200-normal.woff b/web/static/fonts/inter/files/inter-greek-ext-200-normal.woff index e6c8949d..6e1df6c8 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-200-normal.woff and b/web/static/fonts/inter/files/inter-greek-ext-200-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-200-normal.woff2 b/web/static/fonts/inter/files/inter-greek-ext-200-normal.woff2 index 8fa4e472..76d74797 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-200-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-ext-200-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-300-normal.woff b/web/static/fonts/inter/files/inter-greek-ext-300-normal.woff index 57b76f71..a2f03603 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-300-normal.woff and b/web/static/fonts/inter/files/inter-greek-ext-300-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-300-normal.woff2 b/web/static/fonts/inter/files/inter-greek-ext-300-normal.woff2 index 97e45aae..5a2feeb5 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-300-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-ext-300-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-400-normal.woff b/web/static/fonts/inter/files/inter-greek-ext-400-normal.woff index 1fe94089..48ce7e48 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-400-normal.woff and b/web/static/fonts/inter/files/inter-greek-ext-400-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-400-normal.woff2 b/web/static/fonts/inter/files/inter-greek-ext-400-normal.woff2 index 5f4ae923..e69fe4e3 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-400-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-ext-400-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-500-normal.woff b/web/static/fonts/inter/files/inter-greek-ext-500-normal.woff index e61572c2..1f063aef 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-500-normal.woff and b/web/static/fonts/inter/files/inter-greek-ext-500-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-500-normal.woff2 b/web/static/fonts/inter/files/inter-greek-ext-500-normal.woff2 index aec20f61..8003d379 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-500-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-ext-500-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-600-normal.woff b/web/static/fonts/inter/files/inter-greek-ext-600-normal.woff index b2e6a573..7f720b4c 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-600-normal.woff and b/web/static/fonts/inter/files/inter-greek-ext-600-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-600-normal.woff2 b/web/static/fonts/inter/files/inter-greek-ext-600-normal.woff2 index 0fee707f..8fc91add 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-600-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-ext-600-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-700-normal.woff b/web/static/fonts/inter/files/inter-greek-ext-700-normal.woff index 0410e226..f0090922 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-700-normal.woff and b/web/static/fonts/inter/files/inter-greek-ext-700-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-700-normal.woff2 b/web/static/fonts/inter/files/inter-greek-ext-700-normal.woff2 index 3a44ec36..ff20e094 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-700-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-ext-700-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-800-normal.woff b/web/static/fonts/inter/files/inter-greek-ext-800-normal.woff index 7e5cc6e9..a82e3e30 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-800-normal.woff and b/web/static/fonts/inter/files/inter-greek-ext-800-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-800-normal.woff2 b/web/static/fonts/inter/files/inter-greek-ext-800-normal.woff2 index 3d281d00..1489dfe2 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-800-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-ext-800-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-900-normal.woff b/web/static/fonts/inter/files/inter-greek-ext-900-normal.woff index 7d81a8b3..c0c73f98 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-900-normal.woff and b/web/static/fonts/inter/files/inter-greek-ext-900-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-greek-ext-900-normal.woff2 b/web/static/fonts/inter/files/inter-greek-ext-900-normal.woff2 index c23b86f1..fb52a1d9 100644 Binary files a/web/static/fonts/inter/files/inter-greek-ext-900-normal.woff2 and b/web/static/fonts/inter/files/inter-greek-ext-900-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-100-normal.woff b/web/static/fonts/inter/files/inter-latin-100-normal.woff index f6317807..324d0867 100644 Binary files a/web/static/fonts/inter/files/inter-latin-100-normal.woff and b/web/static/fonts/inter/files/inter-latin-100-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-100-normal.woff2 b/web/static/fonts/inter/files/inter-latin-100-normal.woff2 index 1ef23573..9da91cd8 100644 Binary files a/web/static/fonts/inter/files/inter-latin-100-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-100-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-200-normal.woff b/web/static/fonts/inter/files/inter-latin-200-normal.woff index e7f01535..89a1be46 100644 Binary files a/web/static/fonts/inter/files/inter-latin-200-normal.woff and b/web/static/fonts/inter/files/inter-latin-200-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-200-normal.woff2 b/web/static/fonts/inter/files/inter-latin-200-normal.woff2 index ca591ae7..c59d2397 100644 Binary files a/web/static/fonts/inter/files/inter-latin-200-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-200-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-300-normal.woff b/web/static/fonts/inter/files/inter-latin-300-normal.woff index f9a5dd91..05e344a1 100644 Binary files a/web/static/fonts/inter/files/inter-latin-300-normal.woff and b/web/static/fonts/inter/files/inter-latin-300-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-300-normal.woff2 b/web/static/fonts/inter/files/inter-latin-300-normal.woff2 index e085aa82..2d99c5bc 100644 Binary files a/web/static/fonts/inter/files/inter-latin-300-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-300-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-400-normal.woff b/web/static/fonts/inter/files/inter-latin-400-normal.woff index b3db3063..df43f69e 100644 Binary files a/web/static/fonts/inter/files/inter-latin-400-normal.woff and b/web/static/fonts/inter/files/inter-latin-400-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-400-normal.woff2 b/web/static/fonts/inter/files/inter-latin-400-normal.woff2 index c659f5e4..d228a4af 100644 Binary files a/web/static/fonts/inter/files/inter-latin-400-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-400-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-500-normal.woff b/web/static/fonts/inter/files/inter-latin-500-normal.woff index ee274431..54b41802 100644 Binary files a/web/static/fonts/inter/files/inter-latin-500-normal.woff and b/web/static/fonts/inter/files/inter-latin-500-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-500-normal.woff2 b/web/static/fonts/inter/files/inter-latin-500-normal.woff2 index 6fc94ad0..21db7941 100644 Binary files a/web/static/fonts/inter/files/inter-latin-500-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-500-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-600-normal.woff b/web/static/fonts/inter/files/inter-latin-600-normal.woff index 8ce08d36..61cbff91 100644 Binary files a/web/static/fonts/inter/files/inter-latin-600-normal.woff and b/web/static/fonts/inter/files/inter-latin-600-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-600-normal.woff2 b/web/static/fonts/inter/files/inter-latin-600-normal.woff2 index bc76d107..da1c039b 100644 Binary files a/web/static/fonts/inter/files/inter-latin-600-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-600-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-700-normal.woff b/web/static/fonts/inter/files/inter-latin-700-normal.woff index c2cd54d8..e54621b4 100644 Binary files a/web/static/fonts/inter/files/inter-latin-700-normal.woff and b/web/static/fonts/inter/files/inter-latin-700-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-700-normal.woff2 b/web/static/fonts/inter/files/inter-latin-700-normal.woff2 index 8fcc4321..775f7575 100644 Binary files a/web/static/fonts/inter/files/inter-latin-700-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-700-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-800-normal.woff b/web/static/fonts/inter/files/inter-latin-800-normal.woff index 5a05354c..c56b3a48 100644 Binary files a/web/static/fonts/inter/files/inter-latin-800-normal.woff and b/web/static/fonts/inter/files/inter-latin-800-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-800-normal.woff2 b/web/static/fonts/inter/files/inter-latin-800-normal.woff2 index 27db0546..39b9673d 100644 Binary files a/web/static/fonts/inter/files/inter-latin-800-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-800-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-900-normal.woff b/web/static/fonts/inter/files/inter-latin-900-normal.woff index 2da3cacd..4e46dde4 100644 Binary files a/web/static/fonts/inter/files/inter-latin-900-normal.woff and b/web/static/fonts/inter/files/inter-latin-900-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-900-normal.woff2 b/web/static/fonts/inter/files/inter-latin-900-normal.woff2 index b1c208a1..566eb1bd 100644 Binary files a/web/static/fonts/inter/files/inter-latin-900-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-900-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-100-normal.woff b/web/static/fonts/inter/files/inter-latin-ext-100-normal.woff index cc721fa0..0ba781fc 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-100-normal.woff and b/web/static/fonts/inter/files/inter-latin-ext-100-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-100-normal.woff2 b/web/static/fonts/inter/files/inter-latin-ext-100-normal.woff2 index 9982f5f6..11e77ccf 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-100-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-ext-100-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-200-normal.woff b/web/static/fonts/inter/files/inter-latin-ext-200-normal.woff index cdf55aa0..ababb142 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-200-normal.woff and b/web/static/fonts/inter/files/inter-latin-ext-200-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-200-normal.woff2 b/web/static/fonts/inter/files/inter-latin-ext-200-normal.woff2 index a822063f..d02b2876 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-200-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-ext-200-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-300-normal.woff b/web/static/fonts/inter/files/inter-latin-ext-300-normal.woff index 2ee09656..1e44c90b 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-300-normal.woff and b/web/static/fonts/inter/files/inter-latin-ext-300-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-300-normal.woff2 b/web/static/fonts/inter/files/inter-latin-ext-300-normal.woff2 index 25be677c..90842f3d 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-300-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-ext-300-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-400-normal.woff b/web/static/fonts/inter/files/inter-latin-ext-400-normal.woff index f7197314..c00b96eb 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-400-normal.woff and b/web/static/fonts/inter/files/inter-latin-ext-400-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-400-normal.woff2 b/web/static/fonts/inter/files/inter-latin-ext-400-normal.woff2 index b0d08940..221a05f2 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-400-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-ext-400-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-500-normal.woff b/web/static/fonts/inter/files/inter-latin-ext-500-normal.woff index cfbd116b..4650f5f1 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-500-normal.woff and b/web/static/fonts/inter/files/inter-latin-ext-500-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-500-normal.woff2 b/web/static/fonts/inter/files/inter-latin-ext-500-normal.woff2 index e7872918..829c2570 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-500-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-ext-500-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-600-normal.woff b/web/static/fonts/inter/files/inter-latin-ext-600-normal.woff index cedbd7f9..acdc936e 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-600-normal.woff and b/web/static/fonts/inter/files/inter-latin-ext-600-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-600-normal.woff2 b/web/static/fonts/inter/files/inter-latin-ext-600-normal.woff2 index 8ff1de2f..9f7db292 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-600-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-ext-600-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-700-normal.woff b/web/static/fonts/inter/files/inter-latin-ext-700-normal.woff index de34917d..9c863588 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-700-normal.woff and b/web/static/fonts/inter/files/inter-latin-ext-700-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-700-normal.woff2 b/web/static/fonts/inter/files/inter-latin-ext-700-normal.woff2 index d8c5665e..a2dff4fe 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-700-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-ext-700-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-800-normal.woff b/web/static/fonts/inter/files/inter-latin-ext-800-normal.woff index 0e991970..7268baa2 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-800-normal.woff and b/web/static/fonts/inter/files/inter-latin-ext-800-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-800-normal.woff2 b/web/static/fonts/inter/files/inter-latin-ext-800-normal.woff2 index 1a2cf496..b6ef5a22 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-800-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-ext-800-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-900-normal.woff b/web/static/fonts/inter/files/inter-latin-ext-900-normal.woff index e35faf7f..a7bcd543 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-900-normal.woff and b/web/static/fonts/inter/files/inter-latin-ext-900-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-latin-ext-900-normal.woff2 b/web/static/fonts/inter/files/inter-latin-ext-900-normal.woff2 index 2d12b583..9970244b 100644 Binary files a/web/static/fonts/inter/files/inter-latin-ext-900-normal.woff2 and b/web/static/fonts/inter/files/inter-latin-ext-900-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-100-normal.woff b/web/static/fonts/inter/files/inter-vietnamese-100-normal.woff index 75c85d80..f3ca4dc6 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-100-normal.woff and b/web/static/fonts/inter/files/inter-vietnamese-100-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-100-normal.woff2 b/web/static/fonts/inter/files/inter-vietnamese-100-normal.woff2 index 1e01e432..53f1b0f6 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-100-normal.woff2 and b/web/static/fonts/inter/files/inter-vietnamese-100-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-200-normal.woff b/web/static/fonts/inter/files/inter-vietnamese-200-normal.woff index 259d7a53..fe239a89 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-200-normal.woff and b/web/static/fonts/inter/files/inter-vietnamese-200-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-200-normal.woff2 b/web/static/fonts/inter/files/inter-vietnamese-200-normal.woff2 index 49bf2d61..fd3fc6f6 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-200-normal.woff2 and b/web/static/fonts/inter/files/inter-vietnamese-200-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-300-normal.woff b/web/static/fonts/inter/files/inter-vietnamese-300-normal.woff index 7a070346..8437af02 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-300-normal.woff and b/web/static/fonts/inter/files/inter-vietnamese-300-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-300-normal.woff2 b/web/static/fonts/inter/files/inter-vietnamese-300-normal.woff2 index c75e79a6..b669c2c8 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-300-normal.woff2 and b/web/static/fonts/inter/files/inter-vietnamese-300-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-400-normal.woff b/web/static/fonts/inter/files/inter-vietnamese-400-normal.woff index 4f2b3b5a..e69ee908 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-400-normal.woff and b/web/static/fonts/inter/files/inter-vietnamese-400-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-400-normal.woff2 b/web/static/fonts/inter/files/inter-vietnamese-400-normal.woff2 index b9cb104b..96264ed6 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-400-normal.woff2 and b/web/static/fonts/inter/files/inter-vietnamese-400-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-500-normal.woff b/web/static/fonts/inter/files/inter-vietnamese-500-normal.woff index 6d8f9f2d..a1d94f8f 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-500-normal.woff and b/web/static/fonts/inter/files/inter-vietnamese-500-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-500-normal.woff2 b/web/static/fonts/inter/files/inter-vietnamese-500-normal.woff2 index 73c7d0f3..49de9f30 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-500-normal.woff2 and b/web/static/fonts/inter/files/inter-vietnamese-500-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-600-normal.woff b/web/static/fonts/inter/files/inter-vietnamese-600-normal.woff index b6e89fb4..e9b3adc8 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-600-normal.woff and b/web/static/fonts/inter/files/inter-vietnamese-600-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-600-normal.woff2 b/web/static/fonts/inter/files/inter-vietnamese-600-normal.woff2 index 0f59ce62..d2087d78 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-600-normal.woff2 and b/web/static/fonts/inter/files/inter-vietnamese-600-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-700-normal.woff b/web/static/fonts/inter/files/inter-vietnamese-700-normal.woff index 4906979d..0a28b075 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-700-normal.woff and b/web/static/fonts/inter/files/inter-vietnamese-700-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-700-normal.woff2 b/web/static/fonts/inter/files/inter-vietnamese-700-normal.woff2 index a9a5314a..147dcaf9 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-700-normal.woff2 and b/web/static/fonts/inter/files/inter-vietnamese-700-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-800-normal.woff b/web/static/fonts/inter/files/inter-vietnamese-800-normal.woff index f08df88d..9ae9d5b3 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-800-normal.woff and b/web/static/fonts/inter/files/inter-vietnamese-800-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-800-normal.woff2 b/web/static/fonts/inter/files/inter-vietnamese-800-normal.woff2 index 56b1f464..cd675878 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-800-normal.woff2 and b/web/static/fonts/inter/files/inter-vietnamese-800-normal.woff2 differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-900-normal.woff b/web/static/fonts/inter/files/inter-vietnamese-900-normal.woff index bf4cad4d..ddf1eb22 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-900-normal.woff and b/web/static/fonts/inter/files/inter-vietnamese-900-normal.woff differ diff --git a/web/static/fonts/inter/files/inter-vietnamese-900-normal.woff2 b/web/static/fonts/inter/files/inter-vietnamese-900-normal.woff2 index 27eadde3..629a9d4e 100644 Binary files a/web/static/fonts/inter/files/inter-vietnamese-900-normal.woff2 and b/web/static/fonts/inter/files/inter-vietnamese-900-normal.woff2 differ diff --git a/web/static/fonts/inter/index.css b/web/static/fonts/inter/index.css index 15f91ed0..a5988b68 100644 --- a/web/static/fonts/inter/index.css +++ b/web/static/fonts/inter/index.css @@ -35,7 +35,7 @@ font-display: swap; font-weight: 400; src: url(/static/fonts/inter/files/inter-greek-400-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-greek-400-normal.woff) format('woff'); - unicode-range: U+0370-03FF; + unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; } /* inter-vietnamese-400-normal */ @@ -55,7 +55,7 @@ font-display: swap; font-weight: 400; src: url(/static/fonts/inter/files/inter-latin-ext-400-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-ext-400-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* inter-latin-400-normal */ @@ -65,5 +65,5 @@ font-display: swap; font-weight: 400; src: url(/static/fonts/inter/files/inter-latin-400-normal.woff2) format('woff2'), url(/static/fonts/inter/files/inter-latin-400-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/inter/metadata.json b/web/static/fonts/inter/metadata.json index c3d6d0e6..1da5dcc7 100644 --- a/web/static/fonts/inter/metadata.json +++ b/web/static/fonts/inter/metadata.json @@ -17,8 +17,8 @@ "slnt": {"default": "0", "min": "-10", "max": "0", "step": "1"}, "wght": {"default": "400", "min": "100", "max": "900", "step": "1"} }, - "lastModified": "2022-09-22", - "version": "v12", + "lastModified": "2024-07-01", + "version": "v13", "category": "sans-serif", "license": { "type": "OFL-1.1", diff --git a/web/static/fonts/inter/package.json b/web/static/fonts/inter/package.json index 4ff29193..403d64d8 100644 --- a/web/static/fonts/inter/package.json +++ b/web/static/fonts/inter/package.json @@ -1,6 +1,6 @@ { "name": "@fontsource/inter", - "version": "5.0.3", + "version": "5.0.19", "description": "Self-host the Inter font in a neatly bundled NPM package.", "main": "index.css", "publishConfig": {"access": "public"}, @@ -26,5 +26,5 @@ "url": "https://github.com/fontsource/font-files.git", "directory": "fonts/google/inter" }, - "publishHash": "f30be48934c43ab4" + "publishHash": "a36ff9fd27c9a65a" } \ No newline at end of file diff --git a/web/static/fonts/inter/scss/metadata.scss b/web/static/fonts/inter/scss/metadata.scss index 24fe7b1c..4ecd14a4 100644 --- a/web/static/fonts/inter/scss/metadata.scss +++ b/web/static/fonts/inter/scss/metadata.scss @@ -15,8 +15,8 @@ $unicode: ( cyrillic-ext: (U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F), cyrillic: (U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116), greek-ext: (U+1F00-1FFF), - greek: (U+0370-03FF), + greek: (U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF), vietnamese: (U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB), - latin-ext: (U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF), - latin: (U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD), + latin-ext: (U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF), + latin: (U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD), ) !default; diff --git a/web/static/fonts/inter/scss/mixins.scss b/web/static/fonts/inter/scss/mixins.scss index 4d1c6c3a..0571337f 100644 --- a/web/static/fonts/inter/scss/mixins.scss +++ b/web/static/fonts/inter/scss/mixins.scss @@ -34,6 +34,7 @@ $displayVar: null !default; // Deprecated $displayVar: $displayVar ) { + @if $displayVar != null { @warn "$displayVar is deprecated due to the limitation of using css variables in @font-face (https://github.com/fontsource/fontsource/issues/726)."; } @@ -52,7 +53,7 @@ $displayVar: null !default; $subsets: if( $subsets, if($subsets == all, map.get($metadata, subsets), $subsets), - map.get($metadata, defaults, subset) + map.get($metadata, subsets) ); $weights: if( $weights, @@ -72,13 +73,20 @@ $displayVar: null !default; @each $subset in $subsets { @each $unicodeSubset, $unicodeRange in map.get($metadata, unicode) { + // If condition is true, generate faces for the current subset @if ( - ($subset == $unicodeSubset) or - ( - // Is numeric subset - ($subset == map.get($metadata, defaults, subset)) and not - list.index(map.get($metadata, subsets), $unicodeSubset) - ) + // If there is no unicode information for the font or + ($unicodeSubset == null) or + // If the subset match a unicode subset or + ($subset == $unicodeSubset) or + ( + // If $unicodeSubset is a numeric unicode subset + // and current subset exists in the list of font subsets but does not match any unicode subset + // then generate faces for this numeric unicode subset as it is representing part of the current subset + list.index(map.get($metadata, subsets), $subset) and not + map.has-key($metadata, unicode, $subset) and not + list.index(map.get($metadata, subsets), $unicodeSubset) + ) ) { @each $weight in if($axes, null, $weights) { @each $axis in $axes { diff --git a/web/static/fonts/inter/unicode.json b/web/static/fonts/inter/unicode.json index 0cd6dc4b..05a09615 100644 --- a/web/static/fonts/inter/unicode.json +++ b/web/static/fonts/inter/unicode.json @@ -2,8 +2,8 @@ "cyrillic-ext": "U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F", "cyrillic": "U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116", "greek-ext": "U+1F00-1FFF", - "greek": "U+0370-03FF", + "greek": "U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF", "vietnamese": "U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB", - "latin-ext": "U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF", - "latin": "U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD" + "latin-ext": "U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF", + "latin": "U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD" } \ No newline at end of file diff --git a/web/static/fonts/rasa/300-italic.css b/web/static/fonts/rasa/300-italic.css index 191aeba5..1320fff2 100644 --- a/web/static/fonts/rasa/300-italic.css +++ b/web/static/fonts/rasa/300-italic.css @@ -5,7 +5,7 @@ font-display: swap; font-weight: 300; src: url(/static/fonts/rasa/files/rasa-gujarati-300-italic.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-gujarati-300-italic.woff) format('woff'); - unicode-range: U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; + unicode-range: U+0951-0952,U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; } /* rasa-vietnamese-300-italic */ @@ -25,7 +25,7 @@ font-display: swap; font-weight: 300; src: url(/static/fonts/rasa/files/rasa-latin-ext-300-italic.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-ext-300-italic.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* rasa-latin-300-italic */ @@ -35,5 +35,5 @@ font-display: swap; font-weight: 300; src: url(/static/fonts/rasa/files/rasa-latin-300-italic.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-300-italic.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/rasa/300.css b/web/static/fonts/rasa/300.css index 639ebb93..3aff91b8 100644 --- a/web/static/fonts/rasa/300.css +++ b/web/static/fonts/rasa/300.css @@ -5,7 +5,7 @@ font-display: swap; font-weight: 300; src: url(/static/fonts/rasa/files/rasa-gujarati-300-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-gujarati-300-normal.woff) format('woff'); - unicode-range: U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; + unicode-range: U+0951-0952,U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; } /* rasa-vietnamese-300-normal */ @@ -25,7 +25,7 @@ font-display: swap; font-weight: 300; src: url(/static/fonts/rasa/files/rasa-latin-ext-300-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-ext-300-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* rasa-latin-300-normal */ @@ -35,5 +35,5 @@ font-display: swap; font-weight: 300; src: url(/static/fonts/rasa/files/rasa-latin-300-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-300-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/rasa/400-italic.css b/web/static/fonts/rasa/400-italic.css index b34137bc..dd7cadd3 100644 --- a/web/static/fonts/rasa/400-italic.css +++ b/web/static/fonts/rasa/400-italic.css @@ -5,7 +5,7 @@ font-display: swap; font-weight: 400; src: url(/static/fonts/rasa/files/rasa-gujarati-400-italic.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-gujarati-400-italic.woff) format('woff'); - unicode-range: U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; + unicode-range: U+0951-0952,U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; } /* rasa-vietnamese-400-italic */ @@ -25,7 +25,7 @@ font-display: swap; font-weight: 400; src: url(/static/fonts/rasa/files/rasa-latin-ext-400-italic.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-ext-400-italic.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* rasa-latin-400-italic */ @@ -35,5 +35,5 @@ font-display: swap; font-weight: 400; src: url(/static/fonts/rasa/files/rasa-latin-400-italic.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-400-italic.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/rasa/400.css b/web/static/fonts/rasa/400.css index b0e5b63a..8739084e 100644 --- a/web/static/fonts/rasa/400.css +++ b/web/static/fonts/rasa/400.css @@ -5,7 +5,7 @@ font-display: swap; font-weight: 400; src: url(/static/fonts/rasa/files/rasa-gujarati-400-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-gujarati-400-normal.woff) format('woff'); - unicode-range: U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; + unicode-range: U+0951-0952,U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; } /* rasa-vietnamese-400-normal */ @@ -25,7 +25,7 @@ font-display: swap; font-weight: 400; src: url(/static/fonts/rasa/files/rasa-latin-ext-400-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-ext-400-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* rasa-latin-400-normal */ @@ -35,5 +35,5 @@ font-display: swap; font-weight: 400; src: url(/static/fonts/rasa/files/rasa-latin-400-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-400-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/rasa/500-italic.css b/web/static/fonts/rasa/500-italic.css index 601efbd8..9b0ce61a 100644 --- a/web/static/fonts/rasa/500-italic.css +++ b/web/static/fonts/rasa/500-italic.css @@ -5,7 +5,7 @@ font-display: swap; font-weight: 500; src: url(/static/fonts/rasa/files/rasa-gujarati-500-italic.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-gujarati-500-italic.woff) format('woff'); - unicode-range: U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; + unicode-range: U+0951-0952,U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; } /* rasa-vietnamese-500-italic */ @@ -25,7 +25,7 @@ font-display: swap; font-weight: 500; src: url(/static/fonts/rasa/files/rasa-latin-ext-500-italic.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-ext-500-italic.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* rasa-latin-500-italic */ @@ -35,5 +35,5 @@ font-display: swap; font-weight: 500; src: url(/static/fonts/rasa/files/rasa-latin-500-italic.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-500-italic.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/rasa/500.css b/web/static/fonts/rasa/500.css index b66d30d0..a086f9ee 100644 --- a/web/static/fonts/rasa/500.css +++ b/web/static/fonts/rasa/500.css @@ -5,7 +5,7 @@ font-display: swap; font-weight: 500; src: url(/static/fonts/rasa/files/rasa-gujarati-500-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-gujarati-500-normal.woff) format('woff'); - unicode-range: U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; + unicode-range: U+0951-0952,U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; } /* rasa-vietnamese-500-normal */ @@ -25,7 +25,7 @@ font-display: swap; font-weight: 500; src: url(/static/fonts/rasa/files/rasa-latin-ext-500-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-ext-500-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* rasa-latin-500-normal */ @@ -35,5 +35,5 @@ font-display: swap; font-weight: 500; src: url(/static/fonts/rasa/files/rasa-latin-500-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-500-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/rasa/600-italic.css b/web/static/fonts/rasa/600-italic.css index 864d61c1..d2fd8f60 100644 --- a/web/static/fonts/rasa/600-italic.css +++ b/web/static/fonts/rasa/600-italic.css @@ -5,7 +5,7 @@ font-display: swap; font-weight: 600; src: url(/static/fonts/rasa/files/rasa-gujarati-600-italic.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-gujarati-600-italic.woff) format('woff'); - unicode-range: U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; + unicode-range: U+0951-0952,U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; } /* rasa-vietnamese-600-italic */ @@ -25,7 +25,7 @@ font-display: swap; font-weight: 600; src: url(/static/fonts/rasa/files/rasa-latin-ext-600-italic.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-ext-600-italic.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* rasa-latin-600-italic */ @@ -35,5 +35,5 @@ font-display: swap; font-weight: 600; src: url(/static/fonts/rasa/files/rasa-latin-600-italic.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-600-italic.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/rasa/600.css b/web/static/fonts/rasa/600.css index daa9cfd7..cec34df6 100644 --- a/web/static/fonts/rasa/600.css +++ b/web/static/fonts/rasa/600.css @@ -5,7 +5,7 @@ font-display: swap; font-weight: 600; src: url(/static/fonts/rasa/files/rasa-gujarati-600-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-gujarati-600-normal.woff) format('woff'); - unicode-range: U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; + unicode-range: U+0951-0952,U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; } /* rasa-vietnamese-600-normal */ @@ -25,7 +25,7 @@ font-display: swap; font-weight: 600; src: url(/static/fonts/rasa/files/rasa-latin-ext-600-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-ext-600-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* rasa-latin-600-normal */ @@ -35,5 +35,5 @@ font-display: swap; font-weight: 600; src: url(/static/fonts/rasa/files/rasa-latin-600-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-600-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/rasa/700-italic.css b/web/static/fonts/rasa/700-italic.css index d32e2900..75177aa1 100644 --- a/web/static/fonts/rasa/700-italic.css +++ b/web/static/fonts/rasa/700-italic.css @@ -5,7 +5,7 @@ font-display: swap; font-weight: 700; src: url(/static/fonts/rasa/files/rasa-gujarati-700-italic.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-gujarati-700-italic.woff) format('woff'); - unicode-range: U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; + unicode-range: U+0951-0952,U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; } /* rasa-vietnamese-700-italic */ @@ -25,7 +25,7 @@ font-display: swap; font-weight: 700; src: url(/static/fonts/rasa/files/rasa-latin-ext-700-italic.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-ext-700-italic.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* rasa-latin-700-italic */ @@ -35,5 +35,5 @@ font-display: swap; font-weight: 700; src: url(/static/fonts/rasa/files/rasa-latin-700-italic.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-700-italic.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/rasa/700.css b/web/static/fonts/rasa/700.css index aede24d8..fc6b8339 100644 --- a/web/static/fonts/rasa/700.css +++ b/web/static/fonts/rasa/700.css @@ -5,7 +5,7 @@ font-display: swap; font-weight: 700; src: url(/static/fonts/rasa/files/rasa-gujarati-700-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-gujarati-700-normal.woff) format('woff'); - unicode-range: U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; + unicode-range: U+0951-0952,U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; } /* rasa-vietnamese-700-normal */ @@ -25,7 +25,7 @@ font-display: swap; font-weight: 700; src: url(/static/fonts/rasa/files/rasa-latin-ext-700-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-ext-700-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* rasa-latin-700-normal */ @@ -35,5 +35,5 @@ font-display: swap; font-weight: 700; src: url(/static/fonts/rasa/files/rasa-latin-700-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-700-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/rasa/README.md b/web/static/fonts/rasa/README.md index e76d551e..030a7e77 100644 --- a/web/static/fonts/rasa/README.md +++ b/web/static/fonts/rasa/README.md @@ -42,6 +42,6 @@ Copyright 2015 The Yrsa-Rasa Project Authors (https://github.com/rosettatype/yrs [OFL-1.1](http://scripts.sil.org/OFL) ## Other Notes -Font version (provided by source): `v19`. +Font version (provided by source): `v22`. If you have any suggestions or ideas to improve the performance of font loading or expand the existing library, feel free to star and contribute to this repository. You can share your suggestions or ideas by creating an [issue](https://github.com/fontsource/fontsource/issues). \ No newline at end of file diff --git a/web/static/fonts/rasa/files/rasa-gujarati-300-italic.woff b/web/static/fonts/rasa/files/rasa-gujarati-300-italic.woff index afdba6b5..5d237cf2 100644 Binary files a/web/static/fonts/rasa/files/rasa-gujarati-300-italic.woff and b/web/static/fonts/rasa/files/rasa-gujarati-300-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-gujarati-300-normal.woff b/web/static/fonts/rasa/files/rasa-gujarati-300-normal.woff index 85853b87..f2be8e30 100644 Binary files a/web/static/fonts/rasa/files/rasa-gujarati-300-normal.woff and b/web/static/fonts/rasa/files/rasa-gujarati-300-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-gujarati-300-normal.woff2 b/web/static/fonts/rasa/files/rasa-gujarati-300-normal.woff2 index 3a8fcd9d..ef1a53ee 100644 Binary files a/web/static/fonts/rasa/files/rasa-gujarati-300-normal.woff2 and b/web/static/fonts/rasa/files/rasa-gujarati-300-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-gujarati-400-italic.woff b/web/static/fonts/rasa/files/rasa-gujarati-400-italic.woff index 6e25866b..10f8eb61 100644 Binary files a/web/static/fonts/rasa/files/rasa-gujarati-400-italic.woff and b/web/static/fonts/rasa/files/rasa-gujarati-400-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-gujarati-400-normal.woff b/web/static/fonts/rasa/files/rasa-gujarati-400-normal.woff index f29a56be..111ea356 100644 Binary files a/web/static/fonts/rasa/files/rasa-gujarati-400-normal.woff and b/web/static/fonts/rasa/files/rasa-gujarati-400-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-gujarati-400-normal.woff2 b/web/static/fonts/rasa/files/rasa-gujarati-400-normal.woff2 index f327220d..42d6cac9 100644 Binary files a/web/static/fonts/rasa/files/rasa-gujarati-400-normal.woff2 and b/web/static/fonts/rasa/files/rasa-gujarati-400-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-gujarati-500-italic.woff b/web/static/fonts/rasa/files/rasa-gujarati-500-italic.woff index 66cf9c70..b13deff5 100644 Binary files a/web/static/fonts/rasa/files/rasa-gujarati-500-italic.woff and b/web/static/fonts/rasa/files/rasa-gujarati-500-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-gujarati-500-normal.woff b/web/static/fonts/rasa/files/rasa-gujarati-500-normal.woff index f1f9cc30..739dad95 100644 Binary files a/web/static/fonts/rasa/files/rasa-gujarati-500-normal.woff and b/web/static/fonts/rasa/files/rasa-gujarati-500-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-gujarati-500-normal.woff2 b/web/static/fonts/rasa/files/rasa-gujarati-500-normal.woff2 index 7154ba75..f62b88a3 100644 Binary files a/web/static/fonts/rasa/files/rasa-gujarati-500-normal.woff2 and b/web/static/fonts/rasa/files/rasa-gujarati-500-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-gujarati-600-italic.woff b/web/static/fonts/rasa/files/rasa-gujarati-600-italic.woff index 0ced6470..9d6aaa6a 100644 Binary files a/web/static/fonts/rasa/files/rasa-gujarati-600-italic.woff and b/web/static/fonts/rasa/files/rasa-gujarati-600-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-gujarati-600-normal.woff b/web/static/fonts/rasa/files/rasa-gujarati-600-normal.woff index 98de4bf1..753ea0a6 100644 Binary files a/web/static/fonts/rasa/files/rasa-gujarati-600-normal.woff and b/web/static/fonts/rasa/files/rasa-gujarati-600-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-gujarati-600-normal.woff2 b/web/static/fonts/rasa/files/rasa-gujarati-600-normal.woff2 index 0919b20c..f8b1527e 100644 Binary files a/web/static/fonts/rasa/files/rasa-gujarati-600-normal.woff2 and b/web/static/fonts/rasa/files/rasa-gujarati-600-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-gujarati-700-italic.woff b/web/static/fonts/rasa/files/rasa-gujarati-700-italic.woff index b158aa07..aa808384 100644 Binary files a/web/static/fonts/rasa/files/rasa-gujarati-700-italic.woff and b/web/static/fonts/rasa/files/rasa-gujarati-700-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-gujarati-700-normal.woff b/web/static/fonts/rasa/files/rasa-gujarati-700-normal.woff index aa35a0ed..7d8ee91a 100644 Binary files a/web/static/fonts/rasa/files/rasa-gujarati-700-normal.woff and b/web/static/fonts/rasa/files/rasa-gujarati-700-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-gujarati-700-normal.woff2 b/web/static/fonts/rasa/files/rasa-gujarati-700-normal.woff2 index 45e5a232..ba69c539 100644 Binary files a/web/static/fonts/rasa/files/rasa-gujarati-700-normal.woff2 and b/web/static/fonts/rasa/files/rasa-gujarati-700-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-300-italic.woff b/web/static/fonts/rasa/files/rasa-latin-300-italic.woff index a5166364..c976f059 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-300-italic.woff and b/web/static/fonts/rasa/files/rasa-latin-300-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-300-italic.woff2 b/web/static/fonts/rasa/files/rasa-latin-300-italic.woff2 index ef2dce6e..11608067 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-300-italic.woff2 and b/web/static/fonts/rasa/files/rasa-latin-300-italic.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-300-normal.woff b/web/static/fonts/rasa/files/rasa-latin-300-normal.woff index 84d80025..8fbe2384 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-300-normal.woff and b/web/static/fonts/rasa/files/rasa-latin-300-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-300-normal.woff2 b/web/static/fonts/rasa/files/rasa-latin-300-normal.woff2 index e435acd9..3fe9a4a3 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-300-normal.woff2 and b/web/static/fonts/rasa/files/rasa-latin-300-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-400-italic.woff b/web/static/fonts/rasa/files/rasa-latin-400-italic.woff index 3b3eb846..a4123a51 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-400-italic.woff and b/web/static/fonts/rasa/files/rasa-latin-400-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-400-italic.woff2 b/web/static/fonts/rasa/files/rasa-latin-400-italic.woff2 index c762ac19..3c532c0c 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-400-italic.woff2 and b/web/static/fonts/rasa/files/rasa-latin-400-italic.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-400-normal.woff b/web/static/fonts/rasa/files/rasa-latin-400-normal.woff index 2049a57d..426cecb0 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-400-normal.woff and b/web/static/fonts/rasa/files/rasa-latin-400-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-400-normal.woff2 b/web/static/fonts/rasa/files/rasa-latin-400-normal.woff2 index 1685742e..6c53d91b 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-400-normal.woff2 and b/web/static/fonts/rasa/files/rasa-latin-400-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-500-italic.woff b/web/static/fonts/rasa/files/rasa-latin-500-italic.woff index 6e8ac351..014bec51 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-500-italic.woff and b/web/static/fonts/rasa/files/rasa-latin-500-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-500-italic.woff2 b/web/static/fonts/rasa/files/rasa-latin-500-italic.woff2 index a8cd687d..1c84d204 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-500-italic.woff2 and b/web/static/fonts/rasa/files/rasa-latin-500-italic.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-500-normal.woff b/web/static/fonts/rasa/files/rasa-latin-500-normal.woff index 8afe4d73..932e3a7a 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-500-normal.woff and b/web/static/fonts/rasa/files/rasa-latin-500-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-500-normal.woff2 b/web/static/fonts/rasa/files/rasa-latin-500-normal.woff2 index 717cae5e..fabe2f85 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-500-normal.woff2 and b/web/static/fonts/rasa/files/rasa-latin-500-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-600-italic.woff b/web/static/fonts/rasa/files/rasa-latin-600-italic.woff index 0eb880b6..646371a7 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-600-italic.woff and b/web/static/fonts/rasa/files/rasa-latin-600-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-600-italic.woff2 b/web/static/fonts/rasa/files/rasa-latin-600-italic.woff2 index 148baaf2..b53cc16e 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-600-italic.woff2 and b/web/static/fonts/rasa/files/rasa-latin-600-italic.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-600-normal.woff b/web/static/fonts/rasa/files/rasa-latin-600-normal.woff index dbbf0a24..38a66537 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-600-normal.woff and b/web/static/fonts/rasa/files/rasa-latin-600-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-600-normal.woff2 b/web/static/fonts/rasa/files/rasa-latin-600-normal.woff2 index 16298a38..a0e3eef6 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-600-normal.woff2 and b/web/static/fonts/rasa/files/rasa-latin-600-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-700-italic.woff b/web/static/fonts/rasa/files/rasa-latin-700-italic.woff index a06eb36b..98d01784 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-700-italic.woff and b/web/static/fonts/rasa/files/rasa-latin-700-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-700-italic.woff2 b/web/static/fonts/rasa/files/rasa-latin-700-italic.woff2 index 8501886f..b8569c11 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-700-italic.woff2 and b/web/static/fonts/rasa/files/rasa-latin-700-italic.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-700-normal.woff b/web/static/fonts/rasa/files/rasa-latin-700-normal.woff index 9d5da2c9..f9d99a61 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-700-normal.woff and b/web/static/fonts/rasa/files/rasa-latin-700-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-700-normal.woff2 b/web/static/fonts/rasa/files/rasa-latin-700-normal.woff2 index b8a1018d..5fb5bdaa 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-700-normal.woff2 and b/web/static/fonts/rasa/files/rasa-latin-700-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-300-italic.woff b/web/static/fonts/rasa/files/rasa-latin-ext-300-italic.woff index 4a45ffc0..fdb24d51 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-300-italic.woff and b/web/static/fonts/rasa/files/rasa-latin-ext-300-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-300-italic.woff2 b/web/static/fonts/rasa/files/rasa-latin-ext-300-italic.woff2 index 64a6d0b2..f1b1d39d 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-300-italic.woff2 and b/web/static/fonts/rasa/files/rasa-latin-ext-300-italic.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-300-normal.woff b/web/static/fonts/rasa/files/rasa-latin-ext-300-normal.woff index f9159b9c..f7705003 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-300-normal.woff and b/web/static/fonts/rasa/files/rasa-latin-ext-300-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-300-normal.woff2 b/web/static/fonts/rasa/files/rasa-latin-ext-300-normal.woff2 index ad817dc1..d0267a6f 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-300-normal.woff2 and b/web/static/fonts/rasa/files/rasa-latin-ext-300-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-400-italic.woff b/web/static/fonts/rasa/files/rasa-latin-ext-400-italic.woff index 4396bc5b..30a0c328 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-400-italic.woff and b/web/static/fonts/rasa/files/rasa-latin-ext-400-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-400-italic.woff2 b/web/static/fonts/rasa/files/rasa-latin-ext-400-italic.woff2 index 4788f1dc..0399b713 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-400-italic.woff2 and b/web/static/fonts/rasa/files/rasa-latin-ext-400-italic.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-400-normal.woff b/web/static/fonts/rasa/files/rasa-latin-ext-400-normal.woff index fbebf6a4..d055206b 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-400-normal.woff and b/web/static/fonts/rasa/files/rasa-latin-ext-400-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-400-normal.woff2 b/web/static/fonts/rasa/files/rasa-latin-ext-400-normal.woff2 index 4811e8bd..47effc82 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-400-normal.woff2 and b/web/static/fonts/rasa/files/rasa-latin-ext-400-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-500-italic.woff b/web/static/fonts/rasa/files/rasa-latin-ext-500-italic.woff index 7745d901..f575e827 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-500-italic.woff and b/web/static/fonts/rasa/files/rasa-latin-ext-500-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-500-italic.woff2 b/web/static/fonts/rasa/files/rasa-latin-ext-500-italic.woff2 index e232b0ec..4de6b9fd 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-500-italic.woff2 and b/web/static/fonts/rasa/files/rasa-latin-ext-500-italic.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-500-normal.woff b/web/static/fonts/rasa/files/rasa-latin-ext-500-normal.woff index ada25205..b97975c5 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-500-normal.woff and b/web/static/fonts/rasa/files/rasa-latin-ext-500-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-500-normal.woff2 b/web/static/fonts/rasa/files/rasa-latin-ext-500-normal.woff2 index 9cef214d..f653cec0 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-500-normal.woff2 and b/web/static/fonts/rasa/files/rasa-latin-ext-500-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-600-italic.woff b/web/static/fonts/rasa/files/rasa-latin-ext-600-italic.woff index 9be62af6..9d5c3d78 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-600-italic.woff and b/web/static/fonts/rasa/files/rasa-latin-ext-600-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-600-italic.woff2 b/web/static/fonts/rasa/files/rasa-latin-ext-600-italic.woff2 index ed56c8f1..b3165346 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-600-italic.woff2 and b/web/static/fonts/rasa/files/rasa-latin-ext-600-italic.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-600-normal.woff b/web/static/fonts/rasa/files/rasa-latin-ext-600-normal.woff index fdd35a60..c948f7fa 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-600-normal.woff and b/web/static/fonts/rasa/files/rasa-latin-ext-600-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-600-normal.woff2 b/web/static/fonts/rasa/files/rasa-latin-ext-600-normal.woff2 index 29ffcff2..e2a22ca2 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-600-normal.woff2 and b/web/static/fonts/rasa/files/rasa-latin-ext-600-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-700-italic.woff b/web/static/fonts/rasa/files/rasa-latin-ext-700-italic.woff index 106de17e..e66db4bf 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-700-italic.woff and b/web/static/fonts/rasa/files/rasa-latin-ext-700-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-700-italic.woff2 b/web/static/fonts/rasa/files/rasa-latin-ext-700-italic.woff2 index 1553a454..e8fc9fa5 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-700-italic.woff2 and b/web/static/fonts/rasa/files/rasa-latin-ext-700-italic.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-700-normal.woff b/web/static/fonts/rasa/files/rasa-latin-ext-700-normal.woff index f6b1429b..8df171f7 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-700-normal.woff and b/web/static/fonts/rasa/files/rasa-latin-ext-700-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-latin-ext-700-normal.woff2 b/web/static/fonts/rasa/files/rasa-latin-ext-700-normal.woff2 index c8ef8f9c..08e25074 100644 Binary files a/web/static/fonts/rasa/files/rasa-latin-ext-700-normal.woff2 and b/web/static/fonts/rasa/files/rasa-latin-ext-700-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-300-italic.woff b/web/static/fonts/rasa/files/rasa-vietnamese-300-italic.woff index 18468c23..e8291e0f 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-300-italic.woff and b/web/static/fonts/rasa/files/rasa-vietnamese-300-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-300-italic.woff2 b/web/static/fonts/rasa/files/rasa-vietnamese-300-italic.woff2 index b6a56be9..ea32ac89 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-300-italic.woff2 and b/web/static/fonts/rasa/files/rasa-vietnamese-300-italic.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-300-normal.woff b/web/static/fonts/rasa/files/rasa-vietnamese-300-normal.woff index 13adce02..15205b13 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-300-normal.woff and b/web/static/fonts/rasa/files/rasa-vietnamese-300-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-300-normal.woff2 b/web/static/fonts/rasa/files/rasa-vietnamese-300-normal.woff2 index a5898fed..e7c994c9 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-300-normal.woff2 and b/web/static/fonts/rasa/files/rasa-vietnamese-300-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-400-italic.woff b/web/static/fonts/rasa/files/rasa-vietnamese-400-italic.woff index 4f788084..9e23e034 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-400-italic.woff and b/web/static/fonts/rasa/files/rasa-vietnamese-400-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-400-italic.woff2 b/web/static/fonts/rasa/files/rasa-vietnamese-400-italic.woff2 index 551610f3..3f2fd7af 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-400-italic.woff2 and b/web/static/fonts/rasa/files/rasa-vietnamese-400-italic.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-400-normal.woff b/web/static/fonts/rasa/files/rasa-vietnamese-400-normal.woff index 6621d0c4..46bc7a7a 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-400-normal.woff and b/web/static/fonts/rasa/files/rasa-vietnamese-400-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-400-normal.woff2 b/web/static/fonts/rasa/files/rasa-vietnamese-400-normal.woff2 index b229ef43..e54f2a0d 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-400-normal.woff2 and b/web/static/fonts/rasa/files/rasa-vietnamese-400-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-500-italic.woff b/web/static/fonts/rasa/files/rasa-vietnamese-500-italic.woff index f5646f95..0907df3c 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-500-italic.woff and b/web/static/fonts/rasa/files/rasa-vietnamese-500-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-500-italic.woff2 b/web/static/fonts/rasa/files/rasa-vietnamese-500-italic.woff2 index d9b8042e..3462e2f9 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-500-italic.woff2 and b/web/static/fonts/rasa/files/rasa-vietnamese-500-italic.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-500-normal.woff b/web/static/fonts/rasa/files/rasa-vietnamese-500-normal.woff index 2843439e..8a6768d8 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-500-normal.woff and b/web/static/fonts/rasa/files/rasa-vietnamese-500-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-500-normal.woff2 b/web/static/fonts/rasa/files/rasa-vietnamese-500-normal.woff2 index a73cedd9..dbb7aff4 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-500-normal.woff2 and b/web/static/fonts/rasa/files/rasa-vietnamese-500-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-600-italic.woff b/web/static/fonts/rasa/files/rasa-vietnamese-600-italic.woff index 9d1630e2..b2116550 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-600-italic.woff and b/web/static/fonts/rasa/files/rasa-vietnamese-600-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-600-italic.woff2 b/web/static/fonts/rasa/files/rasa-vietnamese-600-italic.woff2 index f558d42a..5a13ac52 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-600-italic.woff2 and b/web/static/fonts/rasa/files/rasa-vietnamese-600-italic.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-600-normal.woff b/web/static/fonts/rasa/files/rasa-vietnamese-600-normal.woff index cd28b296..6327b945 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-600-normal.woff and b/web/static/fonts/rasa/files/rasa-vietnamese-600-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-600-normal.woff2 b/web/static/fonts/rasa/files/rasa-vietnamese-600-normal.woff2 index 7db47e76..458f2998 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-600-normal.woff2 and b/web/static/fonts/rasa/files/rasa-vietnamese-600-normal.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-700-italic.woff b/web/static/fonts/rasa/files/rasa-vietnamese-700-italic.woff index c7721c0e..28edcedc 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-700-italic.woff and b/web/static/fonts/rasa/files/rasa-vietnamese-700-italic.woff differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-700-italic.woff2 b/web/static/fonts/rasa/files/rasa-vietnamese-700-italic.woff2 index 0d004930..5e4e4f3a 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-700-italic.woff2 and b/web/static/fonts/rasa/files/rasa-vietnamese-700-italic.woff2 differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-700-normal.woff b/web/static/fonts/rasa/files/rasa-vietnamese-700-normal.woff index f956340c..60e4ec1d 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-700-normal.woff and b/web/static/fonts/rasa/files/rasa-vietnamese-700-normal.woff differ diff --git a/web/static/fonts/rasa/files/rasa-vietnamese-700-normal.woff2 b/web/static/fonts/rasa/files/rasa-vietnamese-700-normal.woff2 index db0e194b..610d11ff 100644 Binary files a/web/static/fonts/rasa/files/rasa-vietnamese-700-normal.woff2 and b/web/static/fonts/rasa/files/rasa-vietnamese-700-normal.woff2 differ diff --git a/web/static/fonts/rasa/index.css b/web/static/fonts/rasa/index.css index b0e5b63a..8739084e 100644 --- a/web/static/fonts/rasa/index.css +++ b/web/static/fonts/rasa/index.css @@ -5,7 +5,7 @@ font-display: swap; font-weight: 400; src: url(/static/fonts/rasa/files/rasa-gujarati-400-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-gujarati-400-normal.woff) format('woff'); - unicode-range: U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; + unicode-range: U+0951-0952,U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839; } /* rasa-vietnamese-400-normal */ @@ -25,7 +25,7 @@ font-display: swap; font-weight: 400; src: url(/static/fonts/rasa/files/rasa-latin-ext-400-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-ext-400-normal.woff) format('woff'); - unicode-range: U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF; + unicode-range: U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; } /* rasa-latin-400-normal */ @@ -35,5 +35,5 @@ font-display: swap; font-weight: 400; src: url(/static/fonts/rasa/files/rasa-latin-400-normal.woff2) format('woff2'), url(/static/fonts/rasa/files/rasa-latin-400-normal.woff) format('woff'); - unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; } \ No newline at end of file diff --git a/web/static/fonts/rasa/metadata.json b/web/static/fonts/rasa/metadata.json index a439ee9a..25a69bad 100644 --- a/web/static/fonts/rasa/metadata.json +++ b/web/static/fonts/rasa/metadata.json @@ -9,8 +9,8 @@ "ital": {"default": "0", "min": "0", "max": "1", "step": "1"}, "wght": {"default": "400", "min": "300", "max": "700", "step": "1"} }, - "lastModified": "2023-03-21", - "version": "v19", + "lastModified": "2023-08-25", + "version": "v22", "category": "serif", "license": { "type": "OFL-1.1", diff --git a/web/static/fonts/rasa/package.json b/web/static/fonts/rasa/package.json index 2d0fe9e6..2abbf6c6 100644 --- a/web/static/fonts/rasa/package.json +++ b/web/static/fonts/rasa/package.json @@ -1,6 +1,6 @@ { "name": "@fontsource/rasa", - "version": "5.0.3", + "version": "5.0.20", "description": "Self-host the Rasa font in a neatly bundled NPM package.", "main": "index.css", "publishConfig": {"access": "public"}, @@ -26,5 +26,5 @@ "url": "https://github.com/fontsource/font-files.git", "directory": "fonts/google/rasa" }, - "publishHash": "d06bed800a4e0ec6" + "publishHash": "f8e91f6620a0a24a" } \ No newline at end of file diff --git a/web/static/fonts/rasa/scss/metadata.scss b/web/static/fonts/rasa/scss/metadata.scss index 9254c4f5..40f64159 100644 --- a/web/static/fonts/rasa/scss/metadata.scss +++ b/web/static/fonts/rasa/scss/metadata.scss @@ -12,8 +12,8 @@ $defaults: ( axis: null, ) !default; $unicode: ( - gujarati: (U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839), + gujarati: (U+0951-0952,U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839), vietnamese: (U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB), - latin-ext: (U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF), - latin: (U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD), + latin-ext: (U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF), + latin: (U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD), ) !default; diff --git a/web/static/fonts/rasa/scss/mixins.scss b/web/static/fonts/rasa/scss/mixins.scss index 4d1c6c3a..0571337f 100644 --- a/web/static/fonts/rasa/scss/mixins.scss +++ b/web/static/fonts/rasa/scss/mixins.scss @@ -34,6 +34,7 @@ $displayVar: null !default; // Deprecated $displayVar: $displayVar ) { + @if $displayVar != null { @warn "$displayVar is deprecated due to the limitation of using css variables in @font-face (https://github.com/fontsource/fontsource/issues/726)."; } @@ -52,7 +53,7 @@ $displayVar: null !default; $subsets: if( $subsets, if($subsets == all, map.get($metadata, subsets), $subsets), - map.get($metadata, defaults, subset) + map.get($metadata, subsets) ); $weights: if( $weights, @@ -72,13 +73,20 @@ $displayVar: null !default; @each $subset in $subsets { @each $unicodeSubset, $unicodeRange in map.get($metadata, unicode) { + // If condition is true, generate faces for the current subset @if ( - ($subset == $unicodeSubset) or - ( - // Is numeric subset - ($subset == map.get($metadata, defaults, subset)) and not - list.index(map.get($metadata, subsets), $unicodeSubset) - ) + // If there is no unicode information for the font or + ($unicodeSubset == null) or + // If the subset match a unicode subset or + ($subset == $unicodeSubset) or + ( + // If $unicodeSubset is a numeric unicode subset + // and current subset exists in the list of font subsets but does not match any unicode subset + // then generate faces for this numeric unicode subset as it is representing part of the current subset + list.index(map.get($metadata, subsets), $subset) and not + map.has-key($metadata, unicode, $subset) and not + list.index(map.get($metadata, subsets), $unicodeSubset) + ) ) { @each $weight in if($axes, null, $weights) { @each $axis in $axes { diff --git a/web/static/fonts/rasa/unicode.json b/web/static/fonts/rasa/unicode.json index 6852d6c0..0c58d7db 100644 --- a/web/static/fonts/rasa/unicode.json +++ b/web/static/fonts/rasa/unicode.json @@ -1,6 +1,6 @@ { - "gujarati": "U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839", + "gujarati": "U+0951-0952,U+0964-0965,U+0A80-0AFF,U+200C-200D,U+20B9,U+25CC,U+A830-A839", "vietnamese": "U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB", - "latin-ext": "U+0100-02AF,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF", - "latin": "U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD" + "latin-ext": "U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF", + "latin": "U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD" } \ No newline at end of file diff --git a/web/static/js/project.js b/web/static/js/project.js index 2dd5993b..555b92ba 100644 --- a/web/static/js/project.js +++ b/web/static/js/project.js @@ -725,6 +725,7 @@ weekNumbers: true, time_24hr: true, }); + /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/ } catch (e) { // nothing } diff --git a/web/templates/pages/connection/all.html.j2 b/web/templates/pages/connection/all.html.j2 index 8f21c1da..5c77bf5a 100644 --- a/web/templates/pages/connection/all.html.j2 +++ b/web/templates/pages/connection/all.html.j2 @@ -19,9 +19,9 @@
{% for d in connections %} {% if loop.index0 > 0 and loop.index0 % 4 == 0 or loop.index0==connections|length %}
{% endif %} - {% if loop.index0 % 4 == 0 or loop.index0 ==0 %}
{% endif %} -
-
+ {% if loop.index0 % 4 == 0 or loop.index0 ==0 %}
- +
- +
- +
- +
- +
- +
- +
- +
diff --git a/web/templates/pages/project/new.html.j2 b/web/templates/pages/project/new.html.j2 index 1e80c77f..60ec2e6b 100644 --- a/web/templates/pages/project/new.html.j2 +++ b/web/templates/pages/project/new.html.j2 @@ -25,6 +25,7 @@ New Project {% endif %} + {% if error %}
Error: {{ error }}
{% endif %}
@@ -49,8 +50,7 @@
+ type="checkbox" />
diff --git a/web/templates/pages/project/one.html.j2 b/web/templates/pages/project/one.html.j2 index dfc7927d..bb7c084b 100644 --- a/web/templates/pages/project/one.html.j2 +++ b/web/templates/pages/project/one.html.j2 @@ -71,43 +71,9 @@

Cron Schedule - Run on specific dates/times

Run - + - {% if p.cron_month != None or p.cron_year != None %}every{% endif %} - {% if p.cron_month != None %}{{ p.cron_month|cron_month }},{% endif %} - {% if p.cron_year != None %}{{ p.cron_year }}{% endif %} - - - - {% if p.cron_week != None %} - on the - {{ p.cron_week|num_st }} - week of the year, - {% endif %} - - - - {% if p.cron_week_day != None %} - on - {{ p.cron_week_day|cron_week_day }} - , - {% endif %} - - - - {% if p.cron_day != None %} - on the - {{ p.cron_day|num_st }} - day of the month, - {% endif %} - - - - {% if p.cron_hour or p.cron_min or p.cron_sec %} - at - {{ p.cron_hour|time }}:{{ p.cron_min|time }}:{{ p.cron_sec|time }} - (hh:mm:ss), - {% endif %} + {{ cron_desc }} diff --git a/web/tests/__init__.py b/web/tests/__init__.py index f8616900..50a87b88 100644 --- a/web/tests/__init__.py +++ b/web/tests/__init__.py @@ -5,6 +5,7 @@ poetry run pytest tests/ \ --cov --cov-append --cov-branch --cov-report=term-missing --disable-warnings """ + import sys from pathlib import Path diff --git a/web/tests/test_auth.py b/web/tests/test_auth.py index 6348cfee..8939c23d 100644 --- a/web/tests/test_auth.py +++ b/web/tests/test_auth.py @@ -11,7 +11,6 @@ """ - from flask import url_for from flask.wrappers import Response from flask_login import current_user diff --git a/web/tests/test_dashboard.py b/web/tests/test_dashboard.py index aaa35bb3..a8afafce 100644 --- a/web/tests/test_dashboard.py +++ b/web/tests/test_dashboard.py @@ -12,7 +12,6 @@ """ - from pytest import fixture from web.extensions import db @@ -144,9 +143,7 @@ def test_orphaned_delete(client_fixture: fixture) -> None: response = client_fixture.get("/dash/orphans/delete", follow_redirects=True) assert response.status_code == 200 - assert "Failed to delete orphans. Scheduler offline." in response.get_data( - as_text=True - ) + assert "Failed to delete orphans. Scheduler offline." in response.get_data(as_text=True) def test_errored_run(client_fixture: fixture) -> None: diff --git a/web/tests/test_filters.py b/web/tests/test_filters.py index 7c9ad2ef..a9fa7bfd 100644 --- a/web/tests/test_filters.py +++ b/web/tests/test_filters.py @@ -11,6 +11,7 @@ """ + import datetime diff --git a/web/tests/test_projects.py b/web/tests/test_projects.py index 97690484..efbe2734 100644 --- a/web/tests/test_projects.py +++ b/web/tests/test_projects.py @@ -11,6 +11,7 @@ """ + import time from datetime import datetime @@ -37,9 +38,7 @@ def test_projects_home(client_fixture: fixture) -> None: # if we have a project, we should go to the project list page p_id, t_id = create_demo_task(db.session) - page = client_fixture.get( - url_for("project_bp.all_projects"), follow_redirects=False - ) + page = client_fixture.get(url_for("project_bp.all_projects"), follow_redirects=False) assert page.status_code == 200 assert page.request.path == url_for("project_bp.all_projects") assert "Projects" in page.get_data(as_text=True) @@ -147,7 +146,7 @@ def test_create_cron_project(client_fixture: fixture) -> None: "project_name": "test cron project", "project_desc": "my cron project description", "project_cron": "1", - "project_cron_year": "1", + "project_cron_year": "1970", "project_cron_mnth": "1", "project_cron_week": "1", "project_cron_day": "1", @@ -199,7 +198,7 @@ def test_edit_project(client_fixture: fixture) -> None: "project_name": "test cron project", "project_desc": "my cron project description", "project_cron": "1", - "project_cron_year": "1", + "project_cron_year": "2024", "project_cron_mnth": "1", "project_cron_week": "1", "project_cron_day": "1", diff --git a/web/tests/test_tables.py b/web/tests/test_tables.py index 180d9b52..adc4770b 100644 --- a/web/tests/test_tables.py +++ b/web/tests/test_tables.py @@ -11,6 +11,7 @@ """ + import json from pytest import fixture @@ -127,7 +128,4 @@ def test_table_tasks_files(client_fixture: fixture) -> None: task = Task.query.first() if task: - assert ( - client_fixture.get("/table/task/" + str(task.id) + "/files").status_code - == 200 - ) + assert client_fixture.get("/table/task/" + str(task.id) + "/files").status_code == 200 diff --git a/web/tests/test_task_controls.py b/web/tests/test_task_controls.py index 9f3517de..ce92d129 100644 --- a/web/tests/test_task_controls.py +++ b/web/tests/test_task_controls.py @@ -11,6 +11,7 @@ """ + import json import time diff --git a/web/tests/test_task_edit.py b/web/tests/test_task_edit.py index 067ca8d7..8db9311d 100644 --- a/web/tests/test_task_edit.py +++ b/web/tests/test_task_edit.py @@ -11,6 +11,7 @@ """ + from flask import request, url_for from pytest import fixture diff --git a/web/tests/test_tasks.py b/web/tests/test_tasks.py index 9fbd9f8c..7baaf472 100644 --- a/web/tests/test_tasks.py +++ b/web/tests/test_tasks.py @@ -91,9 +91,7 @@ def test_one_task(client_fixture: fixture) -> None: # check valid task _, t_id = create_demo_task(db.session) - page = client_fixture.get( - url_for("task_bp.one_task", task_id=t_id), follow_redirects=False - ) + page = client_fixture.get(url_for("task_bp.one_task", task_id=t_id), follow_redirects=False) assert page.status_code == 200 diff --git a/web/web/admin.py b/web/web/admin.py index 54cc38ea..3a85f1d6 100644 --- a/web/web/admin.py +++ b/web/web/admin.py @@ -1,6 +1,5 @@ """Admin web views.""" - import json import platform from pathlib import Path @@ -100,9 +99,7 @@ def reset_tasks() -> Response: def pause_scheduler() -> Response: """Stop all jobs from future runs.""" try: - output = json.loads( - requests.get(app.config["SCHEDULER_HOST"] + "/pause", timeout=60).text - ) + output = json.loads(requests.get(app.config["SCHEDULER_HOST"] + "/pause", timeout=60).text) if output.get("error"): msg = output["error"] @@ -152,9 +149,7 @@ def resume_scheduler() -> Response: def kill_scheduler() -> Response: """Kill the scheduler.""" try: - output = json.loads( - requests.get(app.config["SCHEDULER_HOST"] + "/kill", timeout=60).text - ) + output = json.loads(requests.get(app.config["SCHEDULER_HOST"] + "/kill", timeout=60).text) msg = output["message"] add_user_log(msg, 0) diff --git a/web/web/assets.py b/web/web/assets.py index f98f3927..e21ac62e 100644 --- a/web/web/assets.py +++ b/web/web/assets.py @@ -3,7 +3,6 @@ CSS assets are compiles from scss to css with gulp. Webassets combines the output css and versions them nicely. """ - from flask_assets import Bundle from webassets.filter import register_filter from webassets_rollup import Rollup diff --git a/web/web/auth.py b/web/web/auth.py index 08835bf4..d777dc28 100644 --- a/web/web/auth.py +++ b/web/web/auth.py @@ -105,16 +105,14 @@ def login() -> Union[str, Response]: .lower() ) user.email = ( - ldap_details.get(app.config["LDAP_ATTR_MAP"]["email"])[0] - .decode("utf-8") - .lower() + ldap_details.get(app.config["LDAP_ATTR_MAP"]["email"])[0].decode("utf-8").lower() + ) + user.full_name = ldap_details.get(app.config["LDAP_ATTR_MAP"]["full_name"])[0].decode( + "utf-8" ) - user.full_name = ldap_details.get(app.config["LDAP_ATTR_MAP"]["full_name"])[ + user.first_name = ldap_details.get(app.config["LDAP_ATTR_MAP"]["first_name"])[ 0 ].decode("utf-8") - user.first_name = ldap_details.get( - app.config["LDAP_ATTR_MAP"]["first_name"] - )[0].decode("utf-8") db.session.add(user) db.session.commit() diff --git a/web/web/connection.py b/web/web/connection.py index 4fdd6fdf..3f647142 100644 --- a/web/web/connection.py +++ b/web/web/connection.py @@ -92,9 +92,7 @@ def edit_connection(connection_id: int) -> Union[str, Response]: db.session.add(log) db.session.commit() flash("Connection edited.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) @connection_bp.route("/connection/new", methods=["POST", "GET"]) @@ -155,9 +153,7 @@ def delete_connection(connection_id: int) -> Response: return redirect(url_for("connection_bp.all_connections")) -@connection_bp.route( - "/connection//sftp//delete", methods=["GET"] -) +@connection_bp.route("/connection//sftp//delete", methods=["GET"]) @login_required def delete_connection_sftp(connection_id: int, sftp_id: int) -> Response: """Delete a SFTP connection.""" @@ -172,20 +168,14 @@ def delete_connection_sftp(connection_id: int, sftp_id: int) -> Response: db.session.commit() flash("Connection deleted.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) -@connection_bp.route( - "/connection//sftp//edit", methods=["GET", "POST"] -) +@connection_bp.route("/connection//sftp//edit", methods=["GET", "POST"]) @login_required def edit_connection_sftp(connection_id: int, sftp_id: int) -> Union[Response, str]: """Edit a SFTP connection.""" - sftp = ConnectionSftp.query.filter_by( - id=sftp_id, connection_id=connection_id - ).first_or_404() + sftp = ConnectionSftp.query.filter_by(id=sftp_id, connection_id=connection_id).first_or_404() if request.method == "GET": return render_template( "pages/connection/sftp_edit.html.j2", @@ -204,16 +194,12 @@ def edit_connection_sftp(connection_id: int, sftp_id: int) -> Union[Response, st "path": form.get("path", "", type=str).strip(), "username": form.get("username", "", type=str).strip(), "key": ( - em_encrypt( - form.get("ssh_key", "", type=str).strip(), app.config["PASS_KEY"] - ) + em_encrypt(form.get("ssh_key", "", type=str).strip(), app.config["PASS_KEY"]) if form.get("ssh_key", type=str) else None ), "password": ( - em_encrypt( - form.get("password", "", type=str).strip(), app.config["PASS_KEY"] - ) + em_encrypt(form.get("password", "", type=str).strip(), app.config["PASS_KEY"]) if form.get("password", type=str) else None ), @@ -238,9 +224,7 @@ def edit_connection_sftp(connection_id: int, sftp_id: int) -> Union[Response, st db.session.commit() flash("Connection updated.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) @connection_bp.route("/connection//sftp/new", methods=["GET", "POST"]) @@ -264,23 +248,17 @@ def new_connection_sftp(connection_id: int) -> Union[str, Response]: path=form.get("path", "", type=str).strip(), username=form.get("username", "", type=str).strip(), key=( - em_encrypt( - form.get("ssh_key", "", type=str).strip(), app.config["PASS_KEY"] - ) + em_encrypt(form.get("ssh_key", "", type=str).strip(), app.config["PASS_KEY"]) if form.get("ssh_key", type=str) else None ), password=( - em_encrypt( - form.get("password", "", type=str).strip(), app.config["PASS_KEY"] - ) + em_encrypt(form.get("password", "", type=str).strip(), app.config["PASS_KEY"]) if form.get("password", type=str) else None ), key_password=( - em_encrypt( - form.get("key_password", "", type=str).strip(), app.config["PASS_KEY"] - ) + em_encrypt(form.get("key_password", "", type=str).strip(), app.config["PASS_KEY"]) if form.get("key_password", type=str) else None ), @@ -297,9 +275,7 @@ def new_connection_sftp(connection_id: int) -> Union[str, Response]: db.session.commit() flash("Connection added.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) @connection_bp.route("/connection//ssh//delete", methods=["GET"]) @@ -315,9 +291,7 @@ def delete_connection_ssh(connection_id: int, ssh_id: int) -> Response: db.session.add(log) db.session.commit() flash("Connection deleted.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) @connection_bp.route("/connection//ssh/new", methods=["GET", "POST"]) @@ -340,9 +314,7 @@ def new_connection_ssh(connection_id: int) -> Union[str, Response]: port=form.get("port", 22, type=int), username=form.get("username", "", type=str).strip(), password=( - em_encrypt( - form.get("password", "", type=str).strip(), app.config["PASS_KEY"] - ) + em_encrypt(form.get("password", "", type=str).strip(), app.config["PASS_KEY"]) if form.get("password", type=str) else None ), @@ -359,20 +331,14 @@ def new_connection_ssh(connection_id: int) -> Union[str, Response]: db.session.commit() flash("Connection added.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) -@connection_bp.route( - "/connection//ssh//edit", methods=["GET", "POST"] -) +@connection_bp.route("/connection//ssh//edit", methods=["GET", "POST"]) @login_required def edit_connection_ssh(connection_id: int, ssh_id: int) -> Union[Response, str]: """Edit a SSH connection.""" - ssh = ConnectionSsh.query.filter_by( - id=ssh_id, connection_id=connection_id - ).first_or_404() + ssh = ConnectionSsh.query.filter_by(id=ssh_id, connection_id=connection_id).first_or_404() if request.method == "GET": return render_template( "pages/connection/ssh_edit.html.j2", @@ -390,9 +356,7 @@ def edit_connection_ssh(connection_id: int, ssh_id: int) -> Union[Response, str] "port": form.get("port", 22, type=int), "username": form.get("username", "", type=str).strip(), "password": ( - em_encrypt( - form.get("password", "", type=str).strip(), app.config["PASS_KEY"] - ) + em_encrypt(form.get("password", "", type=str).strip(), app.config["PASS_KEY"]) if form.get("password", type=str) else None ), @@ -407,9 +371,7 @@ def edit_connection_ssh(connection_id: int, ssh_id: int) -> Union[Response, str] db.session.add(log) db.session.commit() flash("Connection updated.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) @connection_bp.route("/connection//smb//delete", methods=["GET"]) @@ -426,9 +388,7 @@ def delete_connection_smb(connection_id: int, smb_id: int) -> Response: db.session.commit() flash("Connection deleted.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) @connection_bp.route("/connection//smb/new", methods=["GET", "POST"]) @@ -453,9 +413,7 @@ def new_connection_smb(connection_id: int) -> Union[Response, str]: path=form.get("path", "", type=str).strip(), username=form.get("username", "", type=str).strip(), password=( - em_encrypt( - form.get("password", "", type=str).strip(), app.config["PASS_KEY"] - ) + em_encrypt(form.get("password", "", type=str).strip(), app.config["PASS_KEY"]) if form.get("password", type=str) else None ), @@ -472,20 +430,14 @@ def new_connection_smb(connection_id: int) -> Union[Response, str]: db.session.commit() flash("Connection added.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) -@connection_bp.route( - "/connection//smb//edit", methods=["GET", "POST"] -) +@connection_bp.route("/connection//smb//edit", methods=["GET", "POST"]) @login_required def edit_connection_smb(connection_id: int, smb_id: int) -> Union[Response, str]: """Edit a SMB connection.""" - smb = ConnectionSmb.query.filter_by( - id=smb_id, connection_id=connection_id - ).first_or_404() + smb = ConnectionSmb.query.filter_by(id=smb_id, connection_id=connection_id).first_or_404() if request.method == "GET": return render_template( "pages/connection/smb_edit.html.j2", @@ -505,9 +457,7 @@ def edit_connection_smb(connection_id: int, smb_id: int) -> Union[Response, str] "path": form.get("path", "", type=str).strip(), "username": form.get("username", "", type=str).strip(), "password": ( - em_encrypt( - form.get("password", "", type=str).strip(), app.config["PASS_KEY"] - ) + em_encrypt(form.get("password", "", type=str).strip(), app.config["PASS_KEY"]) if form.get("password", type=str) else None ), @@ -523,9 +473,7 @@ def edit_connection_smb(connection_id: int, smb_id: int) -> Union[Response, str] db.session.add(log) db.session.commit() flash("Connection updated.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) @connection_bp.route("/connection//ftp//delete", methods=["GET"]) @@ -542,9 +490,7 @@ def delete_connection_ftp(connection_id: int, ftp_id: int) -> Response: db.session.commit() flash("Connection deleted.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) @connection_bp.route("/connection//ftp/new", methods=["GET", "POST"]) @@ -567,9 +513,7 @@ def new_connection_ftp(connection_id: int) -> Union[Response, str]: path=form.get("path", "", type=str).strip(), username=form.get("username", "", type=str).strip(), password=( - em_encrypt( - form.get("password", "", type=str).strip(), app.config["PASS_KEY"] - ) + em_encrypt(form.get("password", "", type=str).strip(), app.config["PASS_KEY"]) if form.get("password", type=str) else None ), @@ -586,20 +530,14 @@ def new_connection_ftp(connection_id: int) -> Union[Response, str]: db.session.commit() flash("Connection added.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) -@connection_bp.route( - "/connection//ftp//edit", methods=["GET", "POST"] -) +@connection_bp.route("/connection//ftp//edit", methods=["GET", "POST"]) @login_required def edit_connection_ftp(connection_id: int, ftp_id: int) -> Union[Response, str]: """Edit a FTP connection.""" - ftp = ConnectionFtp.query.filter_by( - id=ftp_id, connection_id=connection_id - ).first_or_404() + ftp = ConnectionFtp.query.filter_by(id=ftp_id, connection_id=connection_id).first_or_404() if request.method == "GET": return render_template( "pages/connection/ftp_edit.html.j2", @@ -617,9 +555,7 @@ def edit_connection_ftp(connection_id: int, ftp_id: int) -> Union[Response, str] "path": form.get("path", "", type=str).strip(), "username": form.get("username", "", type=str).strip(), "password": ( - em_encrypt( - form.get("password", "", type=str).strip(), app.config["PASS_KEY"] - ) + em_encrypt(form.get("password", "", type=str).strip(), app.config["PASS_KEY"]) if form.get("password", type=str) else None ), @@ -636,9 +572,7 @@ def edit_connection_ftp(connection_id: int, ftp_id: int) -> Union[Response, str] db.session.commit() flash("Connection updated.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) @connection_bp.route("/connection//gpg//delete", methods=["GET"]) @@ -654,9 +588,7 @@ def delete_connection_gpg(connection_id: int, gpg_id: int) -> Response: db.session.add(log) db.session.commit() flash("Connection deleted.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) @connection_bp.route("/connection/gpg/new", methods=["GET", "POST"]) @@ -693,20 +625,14 @@ def new_connection_gpg(connection_id: int) -> Union[Response, str]: db.session.commit() flash("Connection added.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) -@connection_bp.route( - "/connection//gpg//edit", methods=["GET", "POST"] -) +@connection_bp.route("/connection//gpg//edit", methods=["GET", "POST"]) @login_required def edit_connection_gpg(connection_id: int, gpg_id: int) -> Union[str, Response]: """Edit a GPG connection.""" - gpg = ConnectionGpg.query.filter_by( - id=gpg_id, connection_id=connection_id - ).first_or_404() + gpg = ConnectionGpg.query.filter_by(id=gpg_id, connection_id=connection_id).first_or_404() if request.method == "GET": return render_template( "pages/connection/gpg_edit.html.j2", @@ -721,9 +647,7 @@ def edit_connection_gpg(connection_id: int, gpg_id: int) -> Union[str, Response] { "name": form.get("name", "undefined", type=str).strip(), "key": ( - em_encrypt( - form.get("key", "", type=str).strip(), app.config["PASS_KEY"] - ) + em_encrypt(form.get("key", "", type=str).strip(), app.config["PASS_KEY"]) if form.get("key", type=str) else None ), @@ -739,20 +663,14 @@ def edit_connection_gpg(connection_id: int, gpg_id: int) -> Union[str, Response] db.session.add(log) db.session.commit() flash("Connection updated.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) -@connection_bp.route( - "/connection//database//delete", methods=["GET"] -) +@connection_bp.route("/connection//database//delete", methods=["GET"]) @login_required def delete_connection_database(connection_id: int, database_id: int) -> Response: """Delete a database connection.""" - ConnectionDatabase.query.filter_by( - connection_id=connection_id, id=database_id - ).delete() + ConnectionDatabase.query.filter_by(connection_id=connection_id, id=database_id).delete() db.session.commit() log = TaskLog( status_id=7, @@ -760,18 +678,14 @@ def delete_connection_database(connection_id: int, database_id: int) -> Response ) db.session.add(log) db.session.commit() - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) @connection_bp.route( "/connection//database//edit", methods=["GET", "POST"] ) @login_required -def edit_connection_database( - connection_id: int, database_id: int -) -> Union[Response, str]: +def edit_connection_database(connection_id: int, database_id: int) -> Union[Response, str]: """Edit a database connection.""" database = ConnectionDatabase.query.filter_by( id=database_id, connection_id=connection_id @@ -810,14 +724,10 @@ def edit_connection_database( db.session.commit() flash("Changes saved.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) -@connection_bp.route( - "/connection//database/new", methods=["GET", "POST"] -) +@connection_bp.route("/connection//database/new", methods=["GET", "POST"]) @login_required def new_connection_database(connection_id: int) -> Union[Response, str]: """Create a database connection.""" @@ -852,9 +762,7 @@ def new_connection_database(connection_id: int) -> Union[Response, str]: db.session.add(log) db.session.commit() flash("Connection added.") - return redirect( - url_for("connection_bp.one_connection", connection_id=connection_id) - ) + return redirect(url_for("connection_bp.one_connection", connection_id=connection_id)) @connection_bp.route("/connection/ssh//status") @@ -862,9 +770,7 @@ def new_connection_database(connection_id: int) -> Union[Response, str]: def ssh_online(ssh_id: int) -> str: """Check if connection is online.""" try: - return requests.get( - f"{app.config['RUNNER_HOST']}/ssh/{ssh_id}/status", timeout=60 - ).text + return requests.get(f"{app.config['RUNNER_HOST']}/ssh/{ssh_id}/status", timeout=60).text except BaseException as e: return f'Offline' @@ -886,9 +792,7 @@ def database_online(database_id: int) -> str: def sftp_online(sftp_id: int) -> str: """Check if connection is online.""" try: - return requests.get( - f"{app.config['RUNNER_HOST']}/sftp/{sftp_id}/status", timeout=60 - ).text + return requests.get(f"{app.config['RUNNER_HOST']}/sftp/{sftp_id}/status", timeout=60).text except BaseException as e: return f'Offline' @@ -898,9 +802,7 @@ def sftp_online(sftp_id: int) -> str: def ftp_online(ftp_id: int) -> str: """Check if connection is online.""" try: - return requests.get( - f"{app.config['RUNNER_HOST']}/ftp/{ftp_id}/status", timeout=60 - ).text + return requests.get(f"{app.config['RUNNER_HOST']}/ftp/{ftp_id}/status", timeout=60).text except BaseException as e: return f'Offline' @@ -910,8 +812,6 @@ def ftp_online(ftp_id: int) -> str: def smb_online(smb_id: int) -> str: """Check if connection is online.""" try: - return requests.get( - f"{app.config['RUNNER_HOST']}/smb/{smb_id}/status", timeout=60 - ).text + return requests.get(f"{app.config['RUNNER_HOST']}/smb/{smb_id}/status", timeout=60).text except BaseException as e: return f'Offline' diff --git a/web/web/dashboard.py b/web/web/dashboard.py index 9cc31d3a..32002337 100644 --- a/web/web/dashboard.py +++ b/web/web/dashboard.py @@ -32,111 +32,121 @@ @dashboard_bp.route("/search") @login_required -def search() -> dict: +def search() -> Response: """Search data.""" my_json = {} - tasks = db.session.query(Task.id, Task.name).order_by(Task.name).all() + tasks = ( + db.session.query(Task.__table__.c.id, Task.__table__.c.name) + .order_by(Task.__table__.c.name) + .all() + ) task_json = {} for t_id, t_name in tasks: task_json[url_for("task_bp.one_task", task_id=t_id)] = t_name project_json = {} - projects = db.session.query(Project.id, Project.name).order_by(Project.name).all() + projects = ( + db.session.query(Project.__table__.c.id, Project.__table__.c.name) + .order_by(Project.__table__.c.name) + .all() + ) for t_id, t_name in projects: project_json[url_for("project_bp.one_project", project_id=t_id)] = t_name user_json = {} - users = db.session.query(User.id, User.full_name).order_by(User.full_name).all() + users = ( + db.session.query(User.__table__.c.id, User.__table__.c.full_name) + .order_by(User.__table__.c.full_name) + .all() + ) for t_id, t_name in users: user_json[url_for("project_bp.user_projects", user_id=t_id)] = t_name connection_json = {} connections = ( db.session.query( - Connection.id, - Connection.name, - Connection.description, - Connection.address, - Connection.primary_contact, - Connection.primary_contact_email, - Connection.primary_contact_phone, + Connection.__table__.c.id, + Connection.__table__.c.name, + Connection.__table__.c.description, + Connection.__table__.c.address, + Connection.__table__.c.primary_contact, + Connection.__table__.c.primary_contact_email, + Connection.__table__.c.primary_contact_phone, ) - .order_by(Connection.name) + .order_by(Connection.__table__.c.name) .all() ) for row in connections: - connection_json[ - url_for("connection_bp.one_connection", connection_id=row[0]) - ] = " / ".join([x for x in row[1:] if x.strip()]) + connection_json[url_for("connection_bp.one_connection", connection_id=row[0])] = ( + " / ".join([x for x in row[1:] if x.strip()]) + ) connection_sftp = {} sftp_connections = db.session.query( - ConnectionSftp.connection_id, - ConnectionSftp.id, - ConnectionSftp.name, - ConnectionSftp.address, + ConnectionSftp.__table__.c.connection_id, + ConnectionSftp.__table__.c.id, + ConnectionSftp.__table__.c.name, + ConnectionSftp.__table__.c.address, ) for row in sftp_connections.all(): connection_sftp[ - url_for("connection_bp.one_connection", connection_id=row[0]) - + f"?s={row[1]}" + url_for("connection_bp.one_connection", connection_id=row[0]) + f"?s={row[1]}" ] = " / ".join([x for x in row[2:] if x.strip()]) connection_ftp = {} ftp_connections = db.session.query( - ConnectionFtp.connection_id, - ConnectionFtp.id, - ConnectionFtp.name, - ConnectionFtp.address, + ConnectionFtp.__table__.c.connection_id, + ConnectionFtp.__table__.c.id, + ConnectionFtp.__table__.c.name, + ConnectionFtp.__table__.c.address, ) for row in ftp_connections.all(): connection_ftp[ - url_for("connection_bp.one_connection", connection_id=row[0]) - + f"?s={row[1]}" + url_for("connection_bp.one_connection", connection_id=row[0]) + f"?s={row[1]}" ] = " / ".join([x for x in row[2:] if x.strip()]) connection_database = {} database_connections = db.session.query( - ConnectionDatabase.connection_id, ConnectionDatabase.id, ConnectionDatabase.name + ConnectionDatabase.__table__.c.connection_id, + ConnectionDatabase.__table__.c.id, + ConnectionDatabase.__table__.c.name, ) for row in database_connections.all(): connection_database[ - url_for("connection_bp.one_connection", connection_id=row[0]) - + f"?s={row[1]}" + url_for("connection_bp.one_connection", connection_id=row[0]) + f"?s={row[1]}" ] = " / ".join([x for x in row[2:] if x.strip()]) connection_smb = {} smb_connections = db.session.query( - ConnectionSmb.connection_id, - ConnectionSmb.id, - ConnectionSmb.name, - ConnectionSmb.server_name, - ConnectionSmb.server_ip, - ConnectionSmb.share_name, + ConnectionSmb.__table__.c.connection_id, + ConnectionSmb.__table__.c.id, + ConnectionSmb.__table__.c.name, + ConnectionSmb.__table__.c.server_name, + ConnectionSmb.__table__.c.server_ip, + ConnectionSmb.__table__.c.share_name, ) for row in smb_connections.all(): connection_smb[ - url_for("connection_bp.one_connection", connection_id=row[0]) - + f"?s={row[1]}" + url_for("connection_bp.one_connection", connection_id=row[0]) + f"?s={row[1]}" ] = " / ".join([x for x in row[2:] if x.strip()]) connection_ssh = {} ssh_connections = db.session.query( - ConnectionSsh.connection_id, - ConnectionSsh.id, - ConnectionSsh.name, - ConnectionSsh.address, + ConnectionSsh.__table__.c.connection_id, + ConnectionSsh.__table__.c.id, + ConnectionSsh.__table__.c.name, + ConnectionSsh.__table__.c.address, ) for row in ssh_connections.all(): connection_ssh[ - url_for("connection_bp.one_connection", connection_id=row[0]) - + f"?s={row[1]}" + url_for("connection_bp.one_connection", connection_id=row[0]) + f"?s={row[1]}" ] = " / ".join([x for x in row[2:] if x.strip()]) connection_gpg = {} gpg_connections = db.session.query( - ConnectionGpg.connection_id, ConnectionGpg.id, ConnectionGpg.name + ConnectionGpg.__table__.c.connection_id, + ConnectionGpg.__table__.c.id, + ConnectionGpg.__table__.c.name, ) for row in gpg_connections.all(): connection_gpg[ - url_for("connection_bp.one_connection", connection_id=row[0]) - + f"?s={row[1]}" + url_for("connection_bp.one_connection", connection_id=row[0]) + f"?s={row[1]}" ] = " / ".join([x for x in row[2:] if x.strip()]) my_json["connection"] = connection_json @@ -160,13 +170,7 @@ def home() -> Union[Response, str]: If user has projects, they will direct to that screen. """ - if ( - db.session.query() - .select_from(Project) - .add_columns(Project.id) - .filter(Project.owner_id == current_user.id) - .first() - ): + if Project.query.filter(Project.owner_id == current_user.id).first(): return render_template( "pages/project/all.html.j2", title=current_user.full_name + "'s Projects", @@ -226,9 +230,7 @@ def dash_orphans_delete() -> Response: """Button to delete any jobs without a linked tasks.""" try: output = json.loads( - requests.get( - app.config["SCHEDULER_HOST"] + "/delete-orphans", timeout=60 - ).text, + requests.get(app.config["SCHEDULER_HOST"] + "/delete-orphans", timeout=60).text, ) msg = output["message"] add_user_log(msg, 0) diff --git a/web/web/executors.py b/web/web/executors.py index 4ee8cb99..ebf4ec98 100644 --- a/web/web/executors.py +++ b/web/web/executors.py @@ -15,6 +15,7 @@ from flask import jsonify from flask_login import current_user, login_required from sqlalchemy import and_, or_ +from werkzeug import Response from web import db, executor, redis_client from web.model import Project, Task, TaskLog @@ -27,7 +28,7 @@ @executors_bp.route("/executor/status") @login_required -def executor_status() -> dict: +def executor_status() -> Response: """Get list of active executor jobs.""" active_executors = json.loads( redis_client.get(f"atlas_hub_executors-{current_user.id}") or json.dumps({}) @@ -67,9 +68,7 @@ def submit_executor(name: str, *args: Any) -> None: future.add_done_callback(func) # update active executor list - redis_client.set( - f"atlas_hub_executors-{current_user.id}", json.dumps(active_executors) - ) + redis_client.set(f"atlas_hub_executors-{current_user.id}", json.dumps(active_executors)) def executor_finished(name: str, future: Future) -> None: @@ -78,9 +77,7 @@ def executor_finished(name: str, future: Future) -> None: redis_client.get(f"atlas_hub_executors-{current_user.id}") or json.dumps({}) ) active_executors[name + "-done"] = future.result() - redis_client.set( - f"atlas_hub_executors-{current_user.id}", json.dumps(active_executors) - ) + redis_client.set(f"atlas_hub_executors-{current_user.id}", json.dumps(active_executors)) def send_task_to_scheduler(task_id: int) -> None: @@ -132,15 +129,12 @@ def send_task_to_runner(task_id: int) -> None: .order_by(Task.order.asc(), Task.name.asc()) # type: ignore[union-attr] .first() ).id == int(task_id): - requests.get( - app.config["SCHEDULER_HOST"] + "/run/" + str(task.id), timeout=60 - ) + requests.get(app.config["SCHEDULER_HOST"] + "/run/" + str(task.id), timeout=60) log = TaskLog( task_id=task_id, status_id=7, - message=(current_user.full_name or "none") - + ": Task sent to runner.", + message=(current_user.full_name or "none") + ": Task sent to runner.", ) db.session.add(log) db.session.commit() @@ -154,13 +148,9 @@ def send_task_to_runner(task_id: int) -> None: ) db.session.add(log) db.session.commit() - raise ValueError( - "Task was not scheduled. It is not the first sequence task." - ) + raise ValueError("Task was not scheduled. It is not the first sequence task.") else: - requests.get( - app.config["SCHEDULER_HOST"] + "/run/" + str(task.id), timeout=60 - ) + requests.get(app.config["SCHEDULER_HOST"] + "/run/" + str(task.id), timeout=60) except (requests.exceptions.ConnectionError, urllib3.exceptions.NewConnectionError): logging.error({"empty_msg": "Error - Scheduler offline."}) @@ -168,8 +158,7 @@ def send_task_to_runner(task_id: int) -> None: task_id=task_id, status_id=7, error=1, - message=(current_user.full_name or "none") - + ": Failed to send task to runner.", + message=(current_user.full_name or "none") + ": Failed to send task to runner.", ) db.session.add(log) db.session.commit() @@ -187,16 +176,21 @@ def sub_enable_task(task_id: int) -> None: # only add job if its first in sequence if Task.query.filter( or_( # type: ignore[type-var] - and_(Task.project_id == task.project_id, Task.enabled == 1), - Task.id == task_id, + and_( + Task.__table__.c.project_id == task.project_id, Task.__table__.c.enabled == 1 + ), + Task.__table__.c.id == task_id, ) ).order_by( Task.order.asc(), Task.name.asc() # type: ignore[union-attr] ).first() is not None and ( Task.query.filter( or_( # type: ignore[type-var] - and_(Task.project_id == task.project_id, Task.enabled == 1), - Task.id == task_id, + and_( + Task.__table__.c.project_id == task.project_id, + Task.__table__.c.enabled == 1, + ), + Task.__table__.c.id == task_id, ) ) .order_by(Task.order.asc(), Task.name.asc()) # type: ignore[union-attr] @@ -207,9 +201,7 @@ def sub_enable_task(task_id: int) -> None: send_task_to_scheduler(task_id) else: # make sure it is not in the scheduler. - requests.get( - app.config["SCHEDULER_HOST"] + "/delete/" + str(task_id), timeout=60 - ) + requests.get(app.config["SCHEDULER_HOST"] + "/delete/" + str(task_id), timeout=60) else: send_task_to_scheduler(task_id) @@ -239,8 +231,10 @@ def enable_task(task_list: List[int]) -> str: # reschedule all tasks in project tasks = Task.query.filter( or_( # type: ignore[type-var] - and_(Task.project_id == task.project_id, Task.enabled == 1), - Task.id == task_id, + and_( + Task.__table__.c.project_id == task.project_id, Task.__table__.c.enabled == 1 + ), + Task.__table__.c.id == task_id, ) ) try: @@ -354,11 +348,7 @@ def schedule_project(project_list: List[int]) -> str: log = TaskLog( status_id=7, error=1, - message=( - (current_user.full_name or "none") - + ": Failed to schedule task.\n" - + str(e) - ), + message=((current_user.full_name or "none") + ": Failed to schedule task.\n" + str(e)), ) db.session.add(log) db.session.commit() @@ -389,9 +379,7 @@ def enable_project(project_list: List[int]) -> str: status_id=7, error=1, message=( - (current_user.full_name or "none") - + ": Failed to enable project.\n" - + str(e) + (current_user.full_name or "none") + ": Failed to enable project.\n" + str(e) ), ) db.session.add(log) @@ -404,9 +392,7 @@ def enable_project(project_list: List[int]) -> str: def sub_disable_task(task_id: int) -> None: """Shared function for disabling a task.""" try: - requests.get( - app.config["SCHEDULER_HOST"] + "/delete/" + str(task_id), timeout=60 - ) + requests.get(app.config["SCHEDULER_HOST"] + "/delete/" + str(task_id), timeout=60) # also clear retry counter redis_client.delete(f"runner_{task_id}_attempt") @@ -437,9 +423,7 @@ def disable_task(task_list: List[int]) -> str: if task.project and task.project.sequence_tasks == 1: # update sequence - for task in Task.query.filter_by( - project_id=task.project_id, enabled=1 - ).all(): + for task in Task.query.filter_by(project_id=task.project_id, enabled=1).all(): sub_enable_task(task.id) return "Task disabled, sequence updated." diff --git a/web/web/ldap_auth.py b/web/web/ldap_auth.py index acd59874..68ff35e4 100644 --- a/web/web/ldap_auth.py +++ b/web/web/ldap_auth.py @@ -2,6 +2,7 @@ Modification of Flask-SimpleLDAP script by https://github.com/alexferl/flask-simpleldap. """ + # mypy: ignore-errors import re @@ -116,9 +117,7 @@ def bind(self): """ conn = self.initialize try: - conn.simple_bind_s( - self.app.config["LDAP_USERNAME"], self.app.config["LDAP_PASSWORD"] - ) + conn.simple_bind_s(self.app.config["LDAP_USERNAME"], self.app.config["LDAP_PASSWORD"]) return conn except ldap.LDAPError as e: raise LDAPException(self.error(e.args)) from e @@ -144,17 +143,13 @@ def bind_user(self, username, password): return try: conn = self.initialize - _user_dn = ( - user_dn.decode("utf-8") if isinstance(user_dn, bytes) else user_dn - ) + _user_dn = user_dn.decode("utf-8") if isinstance(user_dn, bytes) else user_dn conn.simple_bind_s(_user_dn, password) return self.get_object_details(user=username) # True except ldap.LDAPError: return - def get_object_details( - self, user=None, group=None, query_filter=None, dn_only=False - ): + def get_object_details(self, user=None, group=None, query_filter=None, dn_only=False): """Return a ``dict`` with the object's (user or group) details. :param str user: Username of the user object you want details for. @@ -242,20 +237,15 @@ def get_user_groups(self, user): conn.unbind_s() if records: if self.app.config["LDAP_OPENLDAP"]: - group_member_filter = self.app.config[ - "LDAP_GROUP_MEMBER_FILTER_FIELD" - ] + group_member_filter = self.app.config["LDAP_GROUP_MEMBER_FILTER_FIELD"] groups = [ - (record[1][group_member_filter][0]).decode("utf-8") - for record in records + (record[1][group_member_filter][0]).decode("utf-8") for record in records ] return groups if self.app.config["LDAP_USER_GROUPS_FIELD"] in records[0][1]: groups = records[0][1][self.app.config["LDAP_USER_GROUPS_FIELD"]] - result = [ - re.findall(b"(?:cn=|CN=)(.*?),", group)[0] for group in groups - ] + result = [re.findall(b"(?:cn=|CN=)(.*?),", group)[0] for group in groups] return [x.decode("utf-8") for x in result] except ldap.LDAPError as e: raise LDAPException(self.error(e.args)) from e diff --git a/web/web/project.py b/web/web/project.py index c706643f..6aecfecf 100644 --- a/web/web/project.py +++ b/web/web/project.py @@ -3,6 +3,8 @@ import datetime from typing import Optional, Union +from cron_descriptor import ExpressionDescriptor +from cron_validator import CronValidator from crypto import em_encrypt from flask import Blueprint from flask import current_app as app @@ -33,18 +35,18 @@ def form_to_date(date_string: Optional[str]) -> Optional[datetime.datetime]: @login_required def all_projects() -> Union[Response, str]: """List all projects.""" - if db.session.query().select_from(Project).add_columns(Project.id).first(): + if db.session.query().select_from(Project).add_columns(Project.__table__.c.id).first(): owners = ( db.session.query() .select_from(User) - .join(Project, Project.owner_id == User.id) - .add_columns(User.full_name, User.id, func.count(Project.id)) - .group_by(User.full_name, User.id) + .join(Project, Project.owner_id == User.__table__.c.id) + .add_columns( + User.__table__.c.full_name, User.__table__.c.id, func.count(Project.__table__.c.id) + ) + .group_by(User.__table__.c.full_name, User.__table__.c.id) .all() ) - return render_template( - "pages/project/all.html.j2", title="Projects", owners=owners - ) + return render_template("pages/project/all.html.j2", title="Projects", owners=owners) return redirect(url_for("project_bp.new_project_form")) @@ -59,13 +61,7 @@ def user_projects(user_id: int) -> Union[Response, str]: flash("That user doesn't exist.") return redirect(url_for("project_bp.all_projects")) - if ( - db.session.query() - .select_from(Project) - .add_columns(Project.id) - .filter(Project.owner_id == user_id) - .first() - ): + if Project.query.filter(Project.owner_id == user_id).first(): return render_template( "pages/project/all.html.j2", title=my_user.full_name + "'s Projects", @@ -96,6 +92,19 @@ def one_project(project_id: int) -> Union[str, Response]: .order_by(Task.order.asc(), Task.name.asc()) # type: ignore[attr-defined, union-attr] .first() ) + try: + desc = ExpressionDescriptor( + cron_year=me.cron_year, + cron_month=me.cron_month, + cron_week=me.cron_week, + cron_day=me.cron_day, + cron_week_day=me.cron_week_day, + cron_hour=me.cron_hour, + cron_min=me.cron_min, + cron_sec=me.cron_sec, + ).get_full_description() + except ValueError as e: + desc = e return render_template( "pages/project/one.html.j2", @@ -103,6 +112,7 @@ def one_project(project_id: int) -> Union[str, Response]: has_secrets=any(p.sensitive == 1 for p in me.params), title=me.name, task=first_task, + cron_desc=desc, ) flash("The project does not exist.") @@ -116,9 +126,7 @@ def edit_project_form(project_id: int) -> Union[str, Response]: me = Project.query.filter_by(id=project_id).first() if me: - return render_template( - "pages/project/new.html.j2", p=me, title="Editing " + me.name - ) + return render_template("pages/project/new.html.j2", p=me, title="Editing " + me.name) flash("The project does not exist.") return redirect(url_for("project_bp.all_projects")) @@ -126,17 +134,43 @@ def edit_project_form(project_id: int) -> Union[str, Response]: @project_bp.route("/project//edit", methods=["POST"]) @login_required -def edit_project(project_id: int) -> Response: +def edit_project(project_id: int) -> Response | str: """Save project edits.""" cache.clear() - + error = None project = get_or_create(db.session, Project, id=project_id) # get filter query for update me = Project.query.filter_by(id=project.id) - + me2 = Project.query.filter_by(id=project_id).first() form = request.form - + cron = form.get("project_cron", 0, type=int) + cron_year = form.get("project_cron_year", None, type=str) + cron_month = form.get("project_cron_mnth", None, type=str) + cron_week = form.get("project_cron_week", None, type=str) + cron_day = form.get("project_cron_day", None, type=str) + cron_week_day = form.get("project_cron_wday", None, type=str) + cron_hour = form.get("project_cron_hour", None, type=str) + cron_min = form.get("project_cron_min", None, type=str) + cron_sec = form.get("project_cron_sec", None, type=str) + try: + CronValidator( + cron=cron, + cron_year=cron_year, + cron_month=cron_month, + cron_week=cron_week, + cron_day=cron_day, + cron_week_day=cron_week_day, + cron_hour=cron_hour, + cron_min=cron_min, + cron_sec=cron_sec, + ).validate() + + except ValueError as e: + error = str(e) + return render_template( + "pages/project/new.html.j2", p=me2, title="Editing " + me2.name, error=error + ) # pylint: disable=R1735 me.update( dict( # noqa: C408 @@ -149,25 +183,21 @@ def edit_project(project_id: int) -> Response: ), updater_id=current_user.id, sequence_tasks=form.get("run_tasks_in_sequence", 0, type=int), - cron=form.get("project_cron", 0, type=int), - cron_year=form.get("project_cron_year", None, type=int), - cron_month=form.get("project_cron_mnth", None, type=int), - cron_week=form.get("project_cron_week", None, type=int), - cron_day=form.get("project_cron_day", None, type=int), - cron_week_day=form.get("project_cron_wday", None, type=int), - cron_hour=form.get("project_cron_hour", None, type=int), - cron_min=form.get("project_cron_min", None, type=int), - cron_sec=form.get("project_cron_sec", None, type=int), - cron_start_date=form_to_date( - form.get("project_cron_sdate", None, type=str) - ), + cron=cron, + cron_year=cron_year, + cron_month=cron_month, + cron_week=cron_week, + cron_day=cron_day, + cron_week_day=cron_week_day, + cron_hour=cron_hour, + cron_min=cron_min, + cron_sec=cron_sec, + cron_start_date=form_to_date(form.get("project_cron_sdate", None, type=str)), cron_end_date=form_to_date(form.get("project_cron_edate", None, type=str)), intv=form.get("project_intv", 0, type=int), intv_value=form.get("project_intv_value", None, type=int), intv_type=form.get("project_intv_intv", None, type=str), - intv_start_date=form_to_date( - form.get("project_intv_sdate", None, type=str) - ), + intv_start_date=form_to_date(form.get("project_intv_sdate", None, type=str)), intv_end_date=form_to_date(form.get("project_intv_edate", None, type=str)), ooff=form.get("project_ooff", 0, type=int), ooff_date=form_to_date(form.get("project_ooff_date", None, type=str)), @@ -220,10 +250,42 @@ def new_project_form() -> str: @project_bp.route("/project/new", methods=["POST"]) @login_required -def new_project() -> Response: +def new_project() -> Response | str: """Save a new project.""" cache.clear() + error = None form = request.form + cron = form.get("project_cron", 0, type=int) + cron_year = form.get("project_cron_year", None, type=str) + cron_month = form.get("project_cron_mnth", None, type=str) + cron_week = form.get("project_cron_week", None, type=str) + cron_day = form.get("project_cron_day", None, type=str) + cron_week_day = form.get("project_cron_wday", None, type=str) + cron_hour = form.get("project_cron_hour", None, type=str) + cron_min = form.get("project_cron_min", None, type=str) + cron_sec = form.get("project_cron_sec", None, type=str) + + try: + CronValidator( + cron=cron, + cron_year=cron_year, + cron_month=cron_month, + cron_week=cron_week, + cron_day=cron_day, + cron_week_day=cron_week_day, + cron_hour=cron_hour, + cron_min=cron_min, + cron_sec=cron_sec, + ).validate() + + except ValueError as e: + error = str(e) + return render_template( + "pages/project/new.html.j2", + p=Project.query.filter_by(id=0).first(), + title="New Project", + error=error, + ) # create project me = Project( @@ -233,15 +295,15 @@ def new_project() -> Response: creator_id=current_user.id, updater_id=current_user.id, sequence_tasks=form.get("run_tasks_in_sequence", 0, type=int), - cron=form.get("project_cron", 0, type=int), - cron_year=form.get("project_cron_year", None, type=int), - cron_month=form.get("project_cron_mnth", None, type=int), - cron_week=form.get("project_cron_week", None, type=int), - cron_day=form.get("project_cron_day", None, type=int), - cron_week_day=form.get("project_cron_wday", None, type=int), - cron_hour=form.get("project_cron_hour", None, type=int), - cron_min=form.get("project_cron_min", None, type=int), - cron_sec=form.get("project_cron_sec", None, type=int), + cron=cron, + cron_year=cron_year, + cron_month=cron_month, + cron_week=cron_week, + cron_day=cron_day, + cron_week_day=cron_week_day, + cron_hour=cron_hour, + cron_min=cron_min, + cron_sec=cron_sec, cron_start_date=form_to_date(form.get("project_cron_sdate", None, type=str)), cron_end_date=form_to_date(form.get("project_cron_edate", None, type=str)), intv=form.get("project_intv", 0, type=int), @@ -291,7 +353,7 @@ def delete_project(project_id: int) -> Response: for x in ( db.session.query() .select_from(Task) - .filter(Task.project_id == project_id) + .filter(Task.__table__.c.project_id == project_id) .add_columns(text("task.id")) .all() ) @@ -319,15 +381,13 @@ def delete_project(project_id: int) -> Response: db.session.commit() # delete tasks - db.session.query(Task).filter(Task.project_id == project_id).delete( + db.session.query(Task).filter(Task.__table__.c.project_id == project_id).delete( synchronize_session=False ) db.session.commit() # delete params - ProjectParam.query.filter_by(project_id=project_id).delete( - synchronize_session=False - ) + ProjectParam.query.filter_by(project_id=project_id).delete(synchronize_session=False) db.session.commit() # delete project @@ -419,9 +479,7 @@ def duplicate_project(project_id: int) -> Response: db.session.add(new_param) db.session.commit() - return redirect( - url_for("project_bp.one_project", project_id=my_project_copy.id) - ) + return redirect(url_for("project_bp.one_project", project_id=my_project_copy.id)) flash("Project does not exist.") return redirect(url_for("project_bp.all_projects")) diff --git a/web/web/saml_auth.py b/web/web/saml_auth.py index 8236617d..5881964d 100644 --- a/web/web/saml_auth.py +++ b/web/web/saml_auth.py @@ -1,6 +1,5 @@ """SAML Login/Logout web views.""" - from flask import Blueprint, Flask, abort from flask import current_app as app from flask import flash, make_response, redirect, request, session, url_for @@ -66,9 +65,7 @@ def idp_initiated() -> Response: logging.warning(identity) if identity: - account_name = identity.get(app.config["SAML_ATTR_MAP"]["account_name"])[ - 0 - ].lower() + account_name = identity.get(app.config["SAML_ATTR_MAP"]["account_name"])[0].lower() email = identity.get(app.config["SAML_ATTR_MAP"]["email"])[0].lower() diff --git a/web/web/table.py b/web/web/table.py index e18eee61..88b6daa5 100644 --- a/web/web/table.py +++ b/web/web/table.py @@ -77,18 +77,18 @@ def project_list(my_type: str = "all") -> Response: projects = ( db.session.query() .select_from(Project) - .outerjoin(Task, Task.project_id == Project.id) - .outerjoin(User, User.id == Project.owner_id) + .outerjoin(Task, Task.project_id == Project.__table__.c.id) + .outerjoin(User, User.id == Project.__table__.c.owner_id) .add_columns(*cols.values()) .order_by(text(str(cols[split_sort[0]]) + " " + split_sort[1])) .group_by(*groups.values()) ) if my_type.isdigit(): - projects = projects.filter(User.id == int(my_type)) + projects = projects.filter(User.__table__.c.id == int(my_type)) elif my_type != "all": - projects = projects.filter(User.id == current_user.id) + projects = projects.filter(User.__table__.c.id == current_user.id) me = [{"head": '["Name","Last Run","Next Run","Tasks"]'}] @@ -116,14 +116,12 @@ def project_list(my_type: str = "all") -> Response: me.append( { "Name": f'{status_icon}{proj["Name"]}', - "Last Run": relative_to_now(proj["Last Run"]) - if proj["Last Run"] - else "", - "Next Run": datetime.datetime.strftime( - proj["Next Run"], " %m/%-d/%y %H:%M" - ) - if proj["Next Run"] and isinstance(proj["Next Run"], datetime.datetime) - else (proj["Next Run"] if proj["Next Run"] else "None"), + "Last Run": (relative_to_now(proj["Last Run"]) if proj["Last Run"] else ""), + "Next Run": ( + datetime.datetime.strftime(proj["Next Run"], " %m/%-d/%y %H:%M") + if proj["Next Run"] and isinstance(proj["Next Run"], datetime.datetime) + else (proj["Next Run"] if proj["Next Run"] else "None") + ), "Tasks": str((proj["Tasks"] or 0)), } ) @@ -156,9 +154,9 @@ def tasklog_userevents() -> Response: logs = ( db.session.query() .select_from(TaskLog) - .outerjoin(Task, Task.id == TaskLog.task_id) - .outerjoin(TaskStatus, TaskStatus.id == TaskLog.status_id) - .filter(TaskLog.status_id == 7) + .outerjoin(Task, Task.id == TaskLog.__table__.c.task_id) + .outerjoin(TaskStatus, TaskStatus.id == TaskLog.__table__.c.status_id) + .filter(TaskLog.__table__.c.status_id == 7) .add_columns(*cols.values()) .order_by(text(str(cols[split_sort[0]]) + " " + split_sort[1])) ) @@ -176,13 +174,11 @@ def tasklog_userevents() -> Response: me.append( { - "Task Name": '' - + log["Task Name"] - + "" - if log["Task Name"] - else "N/A", + "Task Name": ( + '' + log["Task Name"] + "" + if log["Task Name"] + else "N/A" + ), "Run Id": ( "' + task["Task Name"] + "", - "Project Name": '' - + task["Project Name"] - + "" - if task["Project Id"] - else "Orphan :'(", + "Project Name": ( + '' + + task["Project Name"] + + "" + if task["Project Id"] + else "Orphan :'(" + ), "Connection": task["Connection"], - "Enabled": "Disable" - if task["Enabled"] == 1 - else "Enable", - "Last Run": datetime.datetime.strftime( - task["Last Run"], "%a, %b %-d, %Y %H:%M:%S" - ) - if task["Last Run"] and isinstance(task["Last Run"], datetime.datetime) - else (task["Last Run"] if task["Last Run"] else "Never"), - "Run Now": "Run Now", + "Enabled": ( + "Disable" + if task["Enabled"] == 1 + else "Enable" + ), + "Last Run": ( + datetime.datetime.strftime(task["Last Run"], "%a, %b %-d, %Y %H:%M:%S") + if task["Last Run"] and isinstance(task["Last Run"], datetime.datetime) + else (task["Last Run"] if task["Last Run"] else "Never") + ), + "Run Now": "Run Now", "Status": task["Status"] if task["Status"] else "None", - "Next Run": datetime.datetime.strftime( - task["Next Run"], "%a, %b %-d, %Y %H:%M:%S" - ) - if task["Next Run"] and isinstance(task["Next Run"], datetime.datetime) - else (task["Next Run"] if task["Next Run"] else "None"), - "class": "error" - if task["Status Id"] == 2 - or (not task["Next Run"] and task["Enabled"] == 1) - else "", + "Next Run": ( + datetime.datetime.strftime(task["Next Run"], "%a, %b %-d, %Y %H:%M:%S") + if task["Next Run"] and isinstance(task["Next Run"], datetime.datetime) + else (task["Next Run"] if task["Next Run"] else "None") + ), + "class": ( + "error" + if task["Status Id"] == 2 or (not task["Next Run"] and task["Enabled"] == 1) + else "" + ), } ) @@ -458,8 +457,7 @@ def connection_tasks(connection_id: int) -> Response: def table_jobs_orphans() -> Response: """Get a table of any jobs without a linked task.""" active_tasks = [ - x[0] - for x in db.session.query().select_from(Task).add_columns(text("task.id")).all() + x[0] for x in db.session.query().select_from(Task).add_columns(text("task.id")).all() ] page = request.args.get("p", default=1, type=int) @@ -479,9 +477,7 @@ def table_jobs_orphans() -> Response: if int(job["id"]) not in active_tasks: table.append( { - "Action": "Delete", + "Action": "Delete", "Name": job["name"], "Id": job["id"], "Next Run": job["next_run_time"], @@ -539,9 +535,9 @@ def dash_tasks(task_type: str) -> Response: tasks = ( db.session.query() .select_from(Task) - .outerjoin(TaskStatus, TaskStatus.id == Task.status_id) - .outerjoin(Project, Project.id == Task.project_id) - .outerjoin(User, User.id == Project.owner_id) + .outerjoin(TaskStatus, TaskStatus.id == Task.__table__.c.status_id) + .outerjoin(Project, Project.id == Task.__table__.c.project_id) + .outerjoin(User, User.id == Project.__table__.c.owner_id) .add_columns(*cols.values()) .order_by(text(str(cols[split_sort[0]]) + " " + split_sort[1])) ) @@ -549,27 +545,25 @@ def dash_tasks(task_type: str) -> Response: me = [{"head": '["Name", "Owner", "Last Run", "Next Run", "Actions"]'}] if task_type == "errored": - tasks = tasks.filter(Task.status_id == 2, Task.enabled == 1) + tasks = tasks.filter(Task.__table__.c.status_id == 2, Task.__table__.c.enabled == 1) elif task_type == "scheduled": try: ids = json.loads( - requests.get( - app.config["SCHEDULER_HOST"] + "/scheduled", timeout=60 - ).text + requests.get(app.config["SCHEDULER_HOST"] + "/scheduled", timeout=60).text ) - tasks = tasks.filter(and_(Task.id.in_(ids), Task.enabled == 1)) # type: ignore[attr-defined, union-attr] + tasks = tasks.filter(and_(Task.__table__.c.id.in_(ids), Task.__table__.c.enabled == 1)) # type: ignore[attr-defined, union-attr] except ( requests.exceptions.ConnectionError, urllib3.exceptions.NewConnectionError, ): - tasks = tasks.filter(Task.id == -1) + tasks = tasks.filter(Task.__table__.c.id == -1) me.append({"empty_msg": "Error - Scheduler is offline."}) elif task_type == "active": try: - tasks = tasks.filter(Task.status_id == 1).filter( - Task.enabled == 1 + tasks = tasks.filter(Task.__table__.c.status_id == 1).filter( + Task.__table__.c.enabled == 1 ) # running and enabled except ( requests.exceptions.ConnectionError, @@ -620,17 +614,13 @@ def dash_tasks(task_type: str) -> Response: if task["Owner Id"] else "" ), - "Last Run": relative_to_now(task["Last Run"]) - if task["Last Run"] - else "Never", - "Started": relative_to_now(task["Last Run"]) - if task["Last Run"] - else "Never", - "Next Run": datetime.datetime.strftime( - task["Next Run"], "%m/%-d/%y %H:%M" - ) - if task["Next Run"] and isinstance(task["Next Run"], datetime.datetime) - else (task["Next Run"] if task["Next Run"] else "None"), + "Last Run": (relative_to_now(task["Last Run"]) if task["Last Run"] else "Never"), + "Started": (relative_to_now(task["Last Run"]) if task["Last Run"] else "Never"), + "Next Run": ( + datetime.datetime.strftime(task["Next Run"], "%m/%-d/%y %H:%M") + if task["Next Run"] and isinstance(task["Next Run"], datetime.datetime) + else (task["Next Run"] if task["Next Run"] else "None") + ), "Actions": ( ( "{enabled}{status_icon}{task["Name"]}
', "Last Run": relative_to_now(task["Last Run"]) if task["Last Run"] else "", - "Next Run": datetime.datetime.strftime(task["Next Run"], "%m/%-d/%y %H:%M") - if task["Next Run"] and isinstance(task["Next Run"], datetime.datetime) - else (task["Next Run"] if task["Next Run"] else ""), + "Next Run": ( + datetime.datetime.strftime(task["Next Run"], "%m/%-d/%y %H:%M") + if task["Next Run"] and isinstance(task["Next Run"], datetime.datetime) + else (task["Next Run"] if task["Next Run"] else "") + ), } if my_type == "all": data["Owner"] = ( - "" - + task["Owner"] - + "" + "" + task["Owner"] + "" if task["Owner"] else "" ) @@ -795,8 +783,8 @@ def project_all_tasks(project_id: int) -> Response: tasks = ( db.session.query() .select_from(Task) - .outerjoin(TaskStatus, TaskStatus.id == Task.status_id) - .filter(Task.project_id == project_id) + .outerjoin(TaskStatus, TaskStatus.id == Task.__table__.c.status_id) + .filter(Task.__table__.c.project_id == project_id) .add_columns(*cols.values()) .order_by(text(str(cols[split_sort[0]]) + " " + split_sort[1])) ) @@ -829,18 +817,14 @@ def project_all_tasks(project_id: int) -> Response: me.append( { "Name": f'
{enabled}{status_icon}{task["Name"]}
', - "Last Run": relative_to_now(task["Last Run"]) - if task["Last Run"] - else "", - "Run Now": "Run Now", - "Next Run": datetime.datetime.strftime( - task["Next Run"], "%m/%-d/%y %H:%M" - ) - if task["Next Run"] and isinstance(task["Next Run"], datetime.datetime) - else (task["Next Run"] if task["Next Run"] else ""), - "Run Rank": (task["Run Rank"] if "Run Rank" in task else None), + "Last Run": (relative_to_now(task["Last Run"]) if task["Last Run"] else ""), + "Run Now": "Run Now", + "Next Run": ( + datetime.datetime.strftime(task["Next Run"], "%m/%-d/%y %H:%M") + if task["Next Run"] and isinstance(task["Next Run"], datetime.datetime) + else (task["Next Run"] if task["Next Run"] else "") + ), + "Run Rank": task.get("Run Rank", None), } ) @@ -865,9 +849,9 @@ def task_log(task_id: int) -> Response: logs = ( db.session.query() .select_from(TaskLog) - .join(Task, Task.id == TaskLog.task_id) - .outerjoin(TaskStatus, TaskStatus.id == TaskLog.status_id) - .filter(Task.id == task_id) + .join(Task, Task.id == TaskLog.__table__.c.task_id) + .outerjoin(TaskStatus, TaskStatus.id == TaskLog.__table__.c.status_id) + .filter(Task.__table__.c.id == task_id) .add_columns(*cols.values()) .order_by(text(str("task_log.id desc"))) ) @@ -878,10 +862,10 @@ def task_log(task_id: int) -> Response: me.append({"empty_msg": "No log messages."}) if request.args.get("gte"): - logs = logs.filter(TaskLog.id >= request.args["gte"]) + logs = logs.filter(TaskLog.__table__.c.id >= request.args["gte"]) elif request.args.get("lt"): - logs = logs.filter(TaskLog.id < request.args["lt"]).limit(40) + logs = logs.filter(TaskLog.__table__.c.id < request.args["lt"]).limit(40) else: logs = logs.limit(40).offset(0) @@ -893,12 +877,14 @@ def task_log(task_id: int) -> Response: { "log_id": log["log_id"], "job_id": ("(" + str(log["job_id"]) + ")" if log["job_id"] else ""), - "date": datetime.datetime.strftime( - log["date"], - "%m/%-d/%y %H:%M:%S", - ) - if log["date"] and isinstance(log["date"], datetime.datetime) - else (log["date"] if log["date"] else "None"), + "date": ( + datetime.datetime.strftime( + log["date"], + "%m/%-d/%y %H:%M:%S", + ) + if log["date"] and isinstance(log["date"], datetime.datetime) + else (log["date"] if log["date"] else "None") + ), "status": log["status"] if log["status"] else "None", "message": html.escape(log["message"]), "class": "error" if log["status_id"] == 2 or log["error"] == 1 else "", @@ -937,19 +923,15 @@ def dash_log() -> Response: logs = ( db.session.query() .select_from(TaskLog) - .join(Task, Task.id == TaskLog.task_id) - .outerjoin(Project, Project.id == Task.project_id) - .outerjoin(User, User.id == Project.owner_id) - .outerjoin(TaskStatus, TaskStatus.id == TaskLog.status_id) + .join(Task, Task.id == TaskLog.__table__.c.task_id) + .outerjoin(Project, Project.id == Task.__table__.c.project_id) + .outerjoin(User, User.id == Project.__table__.c.owner_id) + .outerjoin(TaskStatus, TaskStatus.id == TaskLog.__table__.c.status_id) .add_columns(*cols.values()) .order_by(text(str(cols[split_sort[0]]) + " " + split_sort[1])) ) - me = [ - { - "head": '["Task Name", "Project Name", "Owner", "Status", "Status Date", "Message"]' - } - ] + me = [{"head": '["Task Name", "Project Name", "Owner", "Status", "Status Date", "Message"]'}] me.append({"total": str(logs.count() or 0)}) # runs.total me.append({"page": str(page)}) # page me.append({"page_size": str(10)}) @@ -961,38 +943,35 @@ def dash_log() -> Response: me.append( { - "Task Name": '' - + log["Task Name"] - + "" - if log["Task Name"] - else "N/A", + "Task Name": ( + '' + log["Task Name"] + "" + if log["Task Name"] + else "N/A" + ), "Project Name": ( - '' - + log["Project Name"] - + "" - ) - if log["Project Id"] - else "N/A", + ( + '' + + log["Project Name"] + + "" + ) + if log["Project Id"] + else "N/A" + ), "Owner": ( - "" - + log["Owner"] - + "" + "" + log["Owner"] + "" if log["Owner"] else "N/A" ), - "Status Date": datetime.datetime.strftime( - log["Status Date"], - "%a, %b %-d, %Y %H:%M:%S.%f", - ) - if log["Status Date"] - and isinstance(log["Status Date"], datetime.datetime) - else (log["Status Date"] if log["Status Date"] else "None"), + "Status Date": ( + datetime.datetime.strftime( + log["Status Date"], + "%a, %b %-d, %Y %H:%M:%S.%f", + ) + if log["Status Date"] and isinstance(log["Status Date"], datetime.datetime) + else (log["Status Date"] if log["Status Date"] else "None") + ), "my_date_sort": log["Status Date"], "Status": log["Status"] if log["Status"] else "None", "Message": ( @@ -1043,20 +1022,16 @@ def dash_error_log() -> Response: logs = ( db.session.query() .select_from(TaskLog) - .join(Task, Task.id == TaskLog.task_id) - .join(Project, Project.id == Task.project_id) - .join(User, User.id == Project.owner_id) - .join(TaskStatus, TaskStatus.id == TaskLog.status_id) - .filter(TaskLog.error == 1) + .join(Task, Task.id == TaskLog.__table__.c.task_id) + .join(Project, Project.id == Task.__table__.c.project_id) + .join(User, User.id == Project.__table__.c.owner_id) + .join(TaskStatus, TaskStatus.id == TaskLog.__table__.c.status_id) + .filter(TaskLog.__table__.c.error == 1) .add_columns(*cols.values()) .order_by(text(str(cols[split_sort[0]]) + " " + split_sort[1])) ) - me = [ - { - "head": '["Task Name", "Project Name", "Owner", "Status", "Status Date", "Message"]' - } - ] + me = [{"head": '["Task Name", "Project Name", "Owner", "Status", "Status Date", "Message"]'}] me.append({"total": str(logs.count() or 0)}) # runs.total me.append({"page": str(page)}) # page me.append({"page_size": str(10)}) @@ -1068,38 +1043,35 @@ def dash_error_log() -> Response: me.append( { - "Task Name": '' - + log["Task Name"] - + "" - if log["Task Name"] - else "N/A", + "Task Name": ( + '' + log["Task Name"] + "" + if log["Task Name"] + else "N/A" + ), "Project Name": ( - '' - + log["Project Name"] - + "" - ) - if log["Project Id"] - else "N/A", + ( + '' + + log["Project Name"] + + "" + ) + if log["Project Id"] + else "N/A" + ), "Owner": ( - "" - + log["Owner"] - + "" + "" + log["Owner"] + "" if log["Owner"] else "N/A" ), - "Status Date": datetime.datetime.strftime( - log["Status Date"], - "%a, %b %-d, %Y %H:%M:%S.%f", - ) - if log["Status Date"] - and isinstance(log["Status Date"], datetime.datetime) - else (log["Status Date"] if log["Status Date"] else "None"), + "Status Date": ( + datetime.datetime.strftime( + log["Status Date"], + "%a, %b %-d, %Y %H:%M:%S.%f", + ) + if log["Status Date"] and isinstance(log["Status Date"], datetime.datetime) + else (log["Status Date"] if log["Status Date"] else "None") + ), "my_date_sort": log["Status Date"], "Status": log["Status"] if log["Status"] else "None", "Message": ( @@ -1143,16 +1115,12 @@ def one_task_files(task_id: int) -> Response: my_files = ( db.session.query() .select_from(TaskFile) - .filter(TaskFile.task_id == task_id) + .filter(TaskFile.__table__.c.task_id == task_id) .add_columns(*cols.values()) .order_by(text(str(cols[split_sort[0]]) + " " + split_sort[1])) ) - me = [ - { - "head": '["File Name", "Run Id", "Created", "md5 Hash", "File Size", "Action"]' - } - ] + me = [{"head": '["File Name", "Run Id", "Created", "md5 Hash", "File Size", "Action"]'}] me.append({"total": str(my_files.count() or 0)}) # runs.total me.append({"page": str(page)}) # page me.append({"page_size": str(10)}) @@ -1180,8 +1148,7 @@ def one_task_files(task_id: int) -> Response: my_file["Created"], "%a, %b %-d, %Y %H:%M:%S.%f", ) - if my_file["Created"] - and isinstance(my_file["Created"], datetime.datetime) + if my_file["Created"] and isinstance(my_file["Created"], datetime.datetime) else (my_file["Created"] if my_file["Created"] else "N/A") ), "File Size": my_file["File Size"], @@ -1220,8 +1187,7 @@ def one_task_files(task_id: int) -> Response: + "/file/" + str(my_file["File Id"]) + "/sendEmail' >Send to Email
" - if task.email_completion == 1 - and task.email_completion_file == 1 + if task.email_completion == 1 and task.email_completion_file == 1 else "" ) + ( diff --git a/web/web/task.py b/web/web/task.py index 7aee40db..b1a178a9 100644 --- a/web/web/task.py +++ b/web/web/task.py @@ -41,19 +41,19 @@ def all_tasks() -> Union[str, Response]: owners = ( db.session.query() .select_from(User) - .join(Project, Project.owner_id == User.id) - .join(Task, Task.project_id == Project.id) - .add_columns(User.full_name, User.id, func.count(Task.id)) - .group_by(User.full_name, User.id) + .join(Project, Project.owner_id == User.c.id) + .join(Task, Task.project_id == Project.c.id) + .add_columns(User.c.full_name, User.c.id, func.count(Task.c.id)) + .group_by(User.c.full_name, User.c.id) .all() ) projects = ( db.session.query() .select_from(Project) - .join(Task, Task.project_id == Project.id) - .add_columns(Project.name, Project.id, func.count(Task.id)) - .group_by(Project.name, Project.id) + .join(Task, Task.project_id == Project.c.id) + .add_columns(Project.c.name, Project.c.id, func.count(Task.c.id)) + .group_by(Project.c.name, Project.c.id) .all() ) return render_template( @@ -67,7 +67,7 @@ def my_tasks() -> Union[str, Response]: """Page for my tasks.""" me = ( Task.query.join(Project) - .join(User, User.id == Project.owner_id) + .join(User, User.id == Project.c.owner_id) .filter(User.id == current_user.id) .count() ) @@ -78,11 +78,11 @@ def my_tasks() -> Union[str, Response]: projects = ( db.session.query() .select_from(Project) - .join(User, User.id == Project.owner_id) - .join(Task, Task.project_id == Project.id) + .join(User, User.id == Project.c.owner_id) + .join(Task, Task.project_id == Project.c.id) .filter(User.id == current_user.id) - .add_columns(Project.name, Project.id, func.count(Task.id)) - .group_by(Project.name, Project.id) + .add_columns(Project.c.name, Project.c.id, func.count(Task.c.id)) + .group_by(Project.c.name, Project.c.id) .all() ) @@ -243,11 +243,7 @@ def task_get_processing_code(task_id: int) -> str: def task_sftp_dest() -> str: """Template to add sftp destination to a task.""" org = request.args.get("org", default=1, type=int) - dest = ( - ConnectionSftp.query.filter_by(connection_id=org) - .order_by(ConnectionSftp.name) - .all() - ) + dest = ConnectionSftp.query.filter_by(connection_id=org).order_by(ConnectionSftp.name).all() org = Connection.query.filter_by(id=org).first() return render_template( @@ -263,11 +259,7 @@ def task_sftp_dest() -> str: def task_gpg_file() -> str: """Template to add gpg encryption to a task.""" org = request.args.get("org", default=1, type=int) - dest = ( - ConnectionGpg.query.filter_by(connection_id=org) - .order_by(ConnectionGpg.name) - .all() - ) + dest = ConnectionGpg.query.filter_by(connection_id=org).order_by(ConnectionGpg.name).all() org = Connection.query.filter_by(id=org).first() return render_template( @@ -283,11 +275,7 @@ def task_gpg_file() -> str: def task_sftp_source() -> str: """Template to add sftp source to a task.""" org = request.args.get("org", default=1, type=int) - dest = ( - ConnectionSftp.query.filter_by(connection_id=org) - .order_by(ConnectionSftp.name) - .all() - ) + dest = ConnectionSftp.query.filter_by(connection_id=org).order_by(ConnectionSftp.name).all() org = Connection.query.filter_by(id=org).first() return render_template( @@ -303,11 +291,7 @@ def task_sftp_source() -> str: def task_ssh_source() -> str: """Template to add ssh source to a task.""" org = request.args.get("org", default=1, type=int) - dest = ( - ConnectionSsh.query.filter_by(connection_id=org) - .order_by(ConnectionSsh.name) - .all() - ) + dest = ConnectionSsh.query.filter_by(connection_id=org).order_by(ConnectionSsh.name).all() org = Connection.query.filter_by(id=org).first() return render_template( @@ -323,11 +307,7 @@ def task_ssh_source() -> str: def task_sftp_query() -> str: """Template to add sftp query source to a task.""" org = request.args.get("org", default=1, type=int) - dest = ( - ConnectionSftp.query.filter_by(connection_id=org) - .order_by(ConnectionSftp.name) - .all() - ) + dest = ConnectionSftp.query.filter_by(connection_id=org).order_by(ConnectionSftp.name).all() org = Connection.query.filter_by(id=org).first() return render_template( @@ -343,11 +323,7 @@ def task_sftp_query() -> str: def task_sftp_processing() -> str: """Template to add sftp processing source to a task.""" org = request.args.get("org", default=1, type=int) - dest = ( - ConnectionSftp.query.filter_by(connection_id=org) - .order_by(ConnectionSftp.name) - .all() - ) + dest = ConnectionSftp.query.filter_by(connection_id=org).order_by(ConnectionSftp.name).all() org = Connection.query.filter_by(id=org).first() @@ -364,11 +340,7 @@ def task_sftp_processing() -> str: def task_ftp_dest() -> str: """Template to add ftp destination to a task.""" org = request.args.get("org", default=1, type=int) - dest = ( - ConnectionFtp.query.filter_by(connection_id=org) - .order_by(ConnectionFtp.name) - .all() - ) + dest = ConnectionFtp.query.filter_by(connection_id=org).order_by(ConnectionFtp.name).all() org = Connection.query.filter_by(id=org).first() return render_template( @@ -381,11 +353,7 @@ def task_ftp_dest() -> str: def task_ftp_source() -> str: """Template to add ftp source to a task.""" org = request.args.get("org", default=1, type=int) - dest = ( - ConnectionFtp.query.filter_by(connection_id=org) - .order_by(ConnectionFtp.name) - .all() - ) + dest = ConnectionFtp.query.filter_by(connection_id=org).order_by(ConnectionFtp.name).all() org = Connection.query.filter_by(id=org).first() return render_template( @@ -401,11 +369,7 @@ def task_ftp_source() -> str: def task_ftp_processing() -> str: """Template to add ftp processing source to a task.""" org = request.args.get("org", default=1, type=int) - dest = ( - ConnectionFtp.query.filter_by(connection_id=org) - .order_by(ConnectionFtp.name) - .all() - ) + dest = ConnectionFtp.query.filter_by(connection_id=org).order_by(ConnectionFtp.name).all() org = Connection.query.filter_by(id=org).first() return render_template( "pages/task/processing/ftp_processing.html.j2", @@ -420,11 +384,7 @@ def task_ftp_processing() -> str: def task_ftp_query() -> str: """Template to add ftp query source to a task.""" org = request.args.get("org", default=1, type=int) - dest = ( - ConnectionFtp.query.filter_by(connection_id=org) - .order_by(ConnectionFtp.name) - .all() - ) + dest = ConnectionFtp.query.filter_by(connection_id=org).order_by(ConnectionFtp.name).all() org = Connection.query.filter_by(id=org).first() return render_template( @@ -440,11 +400,7 @@ def task_ftp_query() -> str: def task_smb_source() -> str: """Template to add smb source to a task.""" org = request.args.get("org", default=1, type=int) - dest = ( - ConnectionSmb.query.filter_by(connection_id=org) - .order_by(ConnectionSmb.name) - .all() - ) + dest = ConnectionSmb.query.filter_by(connection_id=org).order_by(ConnectionSmb.name).all() org = Connection.query.filter_by(id=org).first() return render_template( @@ -460,11 +416,7 @@ def task_smb_source() -> str: def task_smb_dest() -> str: """Template to add smb destination to a task.""" org = request.args.get("org", default=1, type=int) - dest = ( - ConnectionSmb.query.filter_by(connection_id=org) - .order_by(ConnectionSmb.name) - .all() - ) + dest = ConnectionSmb.query.filter_by(connection_id=org).order_by(ConnectionSmb.name).all() org = Connection.query.filter_by(id=org).first() return render_template( @@ -477,11 +429,7 @@ def task_smb_dest() -> str: def task_smb_query() -> str: """Template to add smb query source to a task.""" org = request.args.get("org", default=1, type=int) - query = ( - ConnectionSmb.query.filter_by(connection_id=org) - .order_by(ConnectionSmb.name) - .all() - ) + query = ConnectionSmb.query.filter_by(connection_id=org).order_by(ConnectionSmb.name).all() org = Connection.query.filter_by(id=org).first() return render_template( @@ -498,9 +446,7 @@ def task_smb_processing() -> str: """Template to add smb processing source to a task.""" org = request.args.get("org", default=1, type=int) processing = ( - ConnectionSmb.query.filter_by(connection_id=org) - .order_by(ConnectionSmb.name) - .all() + ConnectionSmb.query.filter_by(connection_id=org).order_by(ConnectionSmb.name).all() ) org = Connection.query.filter_by(id=org).first() diff --git a/web/web/task_controls.py b/web/web/task_controls.py index 729f6e0d..c4cc09df 100644 --- a/web/web/task_controls.py +++ b/web/web/task_controls.py @@ -23,9 +23,7 @@ def run_task(task_id: int) -> Response: redis_client.delete("runner_" + str(task_id) + "_attempt") if task: try: - requests.get( - app.config["SCHEDULER_HOST"] + "/run/" + str(task_id), timeout=60 - ) + requests.get(app.config["SCHEDULER_HOST"] + "/run/" + str(task_id), timeout=60) log = TaskLog( # type: ignore[call-arg] task_id=task.id, status_id=7, @@ -135,9 +133,7 @@ def task_status(task_id: int) -> Response: task = Task.query.filter_by(id=task_id).first() if task: - attempt = ( - redis_client.zincrby("runner_" + str(task_id) + "_attempt", 0, "inc") or 0 - ) + attempt = redis_client.zincrby("runner_" + str(task_id) + "_attempt", 0, "inc") or 0 return jsonify( { @@ -157,17 +153,13 @@ def task_status(task_id: int) -> Response: else "N/A" ), "next_run_abs": ( - " (%s)" - % task.next_run.astimezone().strftime("%a, %b %-d, %Y %H:%M:%S") + " (%s)" % task.next_run.astimezone().strftime("%a, %b %-d, %Y %H:%M:%S") if task.next_run # and task.next_run > datetime.datetime.now() else "" ), - "last_run": ( - relative_to_now(task.last_run.astimezone()) if task.last_run else "" - ), + "last_run": (relative_to_now(task.last_run.astimezone()) if task.last_run else ""), "last_run_abs": ( - " (%s)" - % task.last_run.astimezone().strftime("%a, %b %-d, %Y %H:%M:%S") + " (%s)" % task.last_run.astimezone().strftime("%a, %b %-d, %Y %H:%M:%S") if task.last_run else "" ), @@ -199,10 +191,7 @@ def delete_task(task_id: int) -> Response: log = TaskLog( # type: ignore[call-arg] status_id=7, - message=(current_user.full_name or "none") - + ": Task deleted. (" - + str(task_id) - + ")", + message=(current_user.full_name or "none") + ": Task deleted. (" + str(task_id) + ")", ) db.session.add(log) db.session.commit() @@ -258,8 +247,7 @@ def reset_task(task_id: int) -> Response: log = TaskLog( # type: ignore[call-arg] task_id=task.id, status_id=7, - message=(current_user.full_name or "none") - + ": Reset task status to completed.", + message=(current_user.full_name or "none") + ": Reset task status to completed.", ) db.session.add(log) db.session.commit() diff --git a/web/web/task_edit.py b/web/web/task_edit.py index d370036c..104aef04 100644 --- a/web/web/task_edit.py +++ b/web/web/task_edit.py @@ -42,17 +42,11 @@ def task_new_get(project_id: int) -> Union[str, Response]: me = Project.query.filter_by(id=project_id).first() if me: source_type = TaskSourceType.query.order_by(TaskSourceType.name).all() - source_query_type = TaskSourceQueryType.query.order_by( - TaskSourceQueryType.name - ).all() + source_query_type = TaskSourceQueryType.query.order_by(TaskSourceQueryType.name).all() source = ConnectionDatabase.query.order_by(ConnectionDatabase.name).all() conn = Connection.query.order_by(Connection.name).all() - file_type = TaskDestinationFileType.query.order_by( - TaskDestinationFileType.id - ).all() - processing_type = TaskProcessingType.query.order_by( - TaskProcessingType.name - ).all() + file_type = TaskDestinationFileType.query.order_by(TaskDestinationFileType.id).all() + processing_type = TaskProcessingType.query.order_by(TaskProcessingType.name).all() quote_level = QuoteLevel.query.order_by(QuoteLevel.id).all() return render_template( @@ -90,26 +84,20 @@ def task_new(project_id: int) -> Union[str, Response]: order=form.get("task-rank", 0, type=int), source_type_id=form.get("sourceType", None, type=int), source_database_id=form.get("task-source-database", None, type=int), - source_query_include_header=form.get( - "task_include_query_headers", None, type=int - ), + source_query_include_header=form.get("task_include_query_headers", None, type=int), source_smb_id=form.get("task-source-smb", None, type=int), source_smb_file=form.get("sourceSmbFile", None, type=str), source_smb_ignore_delimiter=form.get("task_smb_ignore_delimiter", 0, type=int), source_smb_delimiter=form.get("sourceSmbDelimiter", None, type=str), source_sftp_id=form.get("task-source-sftp", None, type=int), source_sftp_file=form.get("sourceSftpFile", None, type=str), - source_sftp_ignore_delimiter=form.get( - "task_sftp_ignore_delimiter", None, type=int - ), + source_sftp_ignore_delimiter=form.get("task_sftp_ignore_delimiter", None, type=int), enable_source_cache=form.get("task_enable_source_cache", None, type=int), source_require_sql_output=form.get("task_require_sql_output", None, type=int), source_sftp_delimiter=form.get("sourceSftpDelimiter", None, type=str), source_ftp_id=form.get("task-source-ftp", None, type=int), source_ftp_file=form.get("sourceFtpFile", None, type=str), - source_ftp_ignore_delimiter=form.get( - "task_ftp_ignore_delimiter", None, type=int - ), + source_ftp_ignore_delimiter=form.get("task_ftp_ignore_delimiter", None, type=int), source_ftp_delimiter=form.get("sourceFtpDelimiter", None, type=str), source_ssh_id=form.get("task-source-ssh", None, type=int), source_query_type_id=form.get("sourceQueryType", None, type=int), @@ -146,38 +134,28 @@ def task_new(project_id: int) -> Union[str, Response]: ), destination_file_delimiter=form.get("fileDelimiter", None, type=str), destination_file_line_terminator=form.get("fileTerminator", None, type=str), - destination_ignore_delimiter=form.get( - "task_ignore_file_delimiter", None, type=int - ), + destination_ignore_delimiter=form.get("task_ignore_file_delimiter", None, type=int), file_gpg=form.get("task_file_gpg", 0, type=int), file_gpg_id=form.get("task-file-gpg", None, type=int), destination_sftp=form.get("task_save_sftp", 0, type=int), destination_sftp_id=form.get("task-destination-sftp", None, type=int), destination_sftp_overwrite=form.get("task_overwrite_sftp", None, type=int), - destination_sftp_dont_send_empty_file=form.get( - "task_sftp_dont_send_empty", 0, type=int - ), + destination_sftp_dont_send_empty_file=form.get("task_sftp_dont_send_empty", 0, type=int), destination_ftp=form.get("task_save_ftp", 0, type=int), destination_ftp_id=form.get("task-destination-ftp", None, type=int), destination_ftp_overwrite=form.get("task_overwrite_ftp", None, type=int), - destination_ftp_dont_send_empty_file=form.get( - "task_ftp_dont_send_empty", 0, type=int - ), + destination_ftp_dont_send_empty_file=form.get("task_ftp_dont_send_empty", 0, type=int), destination_smb=form.get("task_save_smb", 0, type=int), destination_smb_id=form.get("task-destination-smb", None, type=int), destination_smb_overwrite=form.get("task_overwrite_smb", None, type=int), - destination_smb_dont_send_empty_file=form.get( - "task_smb_dont_send_empty", 0, type=int - ), + destination_smb_dont_send_empty_file=form.get("task_smb_dont_send_empty", 0, type=int), email_completion=form.get("task_send_completion_email", 0, type=int), email_completion_recipients=form.get("completionEmailRecip", "", type=str), email_completion_message=form.get("completion_email_msg", "", type=str), email_completion_subject=form.get("completionEmailSubject", "", type=str), email_completion_log=form.get("task_send_completion_email_log", 0, type=int), email_completion_file=form.get("task_send_output", 0, type=int), - email_completion_dont_send_empty_file=form.get( - "task_dont_send_empty", 0, type=int - ), + email_completion_dont_send_empty_file=form.get("task_dont_send_empty", 0, type=int), email_completion_file_embed=form.get("task_embed_output", 0, type=int), email_error=form.get("task_send_error_email", 0, type=int), email_error_recipients=form.get("errorEmailRecip", "", type=str), @@ -232,20 +210,14 @@ def task_edit_get(task_id: int) -> Union[Response, str]: if me: source_type = TaskSourceType.query.order_by(TaskSourceType.name).all() - processing_type = TaskProcessingType.query.order_by( - TaskProcessingType.name - ).all() - source_query_type = TaskSourceQueryType.query.order_by( - TaskSourceQueryType.name - ).all() + processing_type = TaskProcessingType.query.order_by(TaskProcessingType.name).all() + source_query_type = TaskSourceQueryType.query.order_by(TaskSourceQueryType.name).all() source = ConnectionDatabase.query.order_by(ConnectionDatabase.name).all() conn = Connection.query.order_by(Connection.name).all() - file_type = TaskDestinationFileType.query.order_by( - TaskDestinationFileType.id - ).all() + file_type = TaskDestinationFileType.query.order_by(TaskDestinationFileType.id).all() sftp_dest = ( ConnectionSftp.query.filter_by( connection_id=me.destination_sftp_conn.connection_id @@ -268,60 +240,42 @@ def task_edit_get(task_id: int) -> Union[Response, str]: else "" ) gpg_file = ( - ( - ConnectionGpg.query.filter_by( - connection_id=me.file_gpg_conn.connection_id - ).all() - ) + (ConnectionGpg.query.filter_by(connection_id=me.file_gpg_conn.connection_id).all()) if me.file_gpg_conn else "" ) sftp_source = ( - ConnectionSftp.query.filter_by( - connection_id=me.source_sftp_conn.connection_id - ).all() + ConnectionSftp.query.filter_by(connection_id=me.source_sftp_conn.connection_id).all() if me.source_sftp_id else "" ) sftp_query = ( - ConnectionSftp.query.filter_by( - connection_id=me.query_sftp_conn.connection_id - ).all() + ConnectionSftp.query.filter_by(connection_id=me.query_sftp_conn.connection_id).all() if me.query_sftp_id else "" ) ssh_source = ( - ConnectionSsh.query.filter_by( - connection_id=me.source_ssh_conn.connection_id - ).all() + ConnectionSsh.query.filter_by(connection_id=me.source_ssh_conn.connection_id).all() if me.source_ssh_id else "" ) ftp_source = ( - ConnectionFtp.query.filter_by( - connection_id=me.source_ftp_conn.connection_id - ).all() + ConnectionFtp.query.filter_by(connection_id=me.source_ftp_conn.connection_id).all() if me.source_ftp_id else "" ) ftp_query = ( - ConnectionFtp.query.filter_by( - connection_id=me.query_ftp_conn.connection_id - ).all() + ConnectionFtp.query.filter_by(connection_id=me.query_ftp_conn.connection_id).all() if me.query_ftp_id else "" ) smb_source = ( - ConnectionSmb.query.filter_by( - connection_id=me.source_smb_conn.connection_id - ).all() + ConnectionSmb.query.filter_by(connection_id=me.source_smb_conn.connection_id).all() if me.source_smb_id else "" ) smb_query = ( - ConnectionSmb.query.filter_by( - connection_id=me.query_smb_conn.connection_id - ).all() + ConnectionSmb.query.filter_by(connection_id=me.query_smb_conn.connection_id).all() if me.query_smb_id else "" ) @@ -341,16 +295,12 @@ def task_edit_get(task_id: int) -> Union[Response, str]: else "" ) ftp_processing = ( - ConnectionFtp.query.filter_by( - connection_id=me.processing_ftp_conn.connection_id - ).all() + ConnectionFtp.query.filter_by(connection_id=me.processing_ftp_conn.connection_id).all() if me.processing_ftp_id else "" ) smb_processing = ( - ConnectionSmb.query.filter_by( - connection_id=me.processing_smb_conn.connection_id - ).all() + ConnectionSmb.query.filter_by(connection_id=me.processing_smb_conn.connection_id).all() if me.processing_smb_id else "" ) @@ -411,30 +361,20 @@ def task_edit_post(task_id: int) -> Response: order=form.get("task-rank", 0, type=int), source_type_id=form.get("sourceType", None, type=int), source_database_id=form.get("task-source-database", None, type=int), - source_query_include_header=form.get( - "task_include_query_headers", None, type=int - ), + source_query_include_header=form.get("task_include_query_headers", None, type=int), source_smb_id=form.get("task-source-smb", None, type=int), source_smb_file=form.get("sourceSmbFile", None, type=str), - source_smb_ignore_delimiter=form.get( - "task_smb_ignore_delimiter", 0, type=int - ), + source_smb_ignore_delimiter=form.get("task_smb_ignore_delimiter", 0, type=int), source_smb_delimiter=form.get("sourceSmbDelimiter", None, type=str), source_sftp_id=form.get("task-source-sftp", None, type=int), source_sftp_file=form.get("sourceSftpFile", None, type=str), - source_sftp_ignore_delimiter=form.get( - "task_sftp_ignore_delimiter", None, type=int - ), + source_sftp_ignore_delimiter=form.get("task_sftp_ignore_delimiter", None, type=int), source_sftp_delimiter=form.get("sourceSftpDelimiter", None, type=str), source_ftp_id=form.get("task-source-ftp", None, type=int), source_ftp_file=form.get("sourceFtpFile", None, type=str), - source_ftp_ignore_delimiter=form.get( - "task_ftp_ignore_delimiter", None, type=int - ), + source_ftp_ignore_delimiter=form.get("task_ftp_ignore_delimiter", None, type=int), enable_source_cache=form.get("task_enable_source_cache", None, type=int), - source_require_sql_output=form.get( - "task_require_sql_output", None, type=int - ), + source_require_sql_output=form.get("task_require_sql_output", None, type=int), source_ftp_delimiter=form.get("sourceFtpDelimiter", None, type=str), source_ssh_id=form.get("task-source-ssh", None, type=int), source_query_type_id=form.get("sourceQueryType", None, type=int), @@ -471,9 +411,7 @@ def task_edit_post(task_id: int) -> Response: ), destination_file_delimiter=form.get("fileDelimiter", None, type=str), destination_file_line_terminator=form.get("fileTerminator", None, type=str), - destination_ignore_delimiter=form.get( - "task_ignore_file_delimiter", None, type=int - ), + destination_ignore_delimiter=form.get("task_ignore_file_delimiter", None, type=int), file_gpg=form.get("task_file_gpg", 0, type=int), file_gpg_id=form.get("task-file-gpg", None, type=int), destination_sftp=form.get("task_save_sftp", 0, type=int), @@ -485,26 +423,18 @@ def task_edit_post(task_id: int) -> Response: destination_ftp=form.get("task_save_ftp", 0, type=int), destination_ftp_id=form.get("task-destination-ftp", None, type=int), destination_ftp_overwrite=form.get("task_overwrite_ftp", None, type=int), - destination_ftp_dont_send_empty_file=form.get( - "task_ftp_dont_send_empty", 0, type=int - ), + destination_ftp_dont_send_empty_file=form.get("task_ftp_dont_send_empty", 0, type=int), destination_smb=form.get("task_save_smb", 0, type=int), destination_smb_id=form.get("task-destination-smb", None, type=int), destination_smb_overwrite=form.get("task_overwrite_smb", None, type=int), - destination_smb_dont_send_empty_file=form.get( - "task_smb_dont_send_empty", 0, type=int - ), + destination_smb_dont_send_empty_file=form.get("task_smb_dont_send_empty", 0, type=int), email_completion=form.get("task_send_completion_email", 0, type=int), email_completion_recipients=form.get("completionEmailRecip", "", type=str), email_completion_message=form.get("completion_email_msg", "", type=str), email_completion_subject=form.get("completionEmailSubject", "", type=str), - email_completion_log=form.get( - "task_send_completion_email_log", 0, type=int - ), + email_completion_log=form.get("task_send_completion_email_log", 0, type=int), email_completion_file=form.get("task_send_output", 0, type=int), - email_completion_dont_send_empty_file=form.get( - "task_dont_send_empty", 0, type=int - ), + email_completion_dont_send_empty_file=form.get("task_dont_send_empty", 0, type=int), email_completion_file_embed=form.get("task_embed_output", 0, type=int), email_error=form.get("task_send_error_email", 0, type=int), email_error_recipients=form.get("errorEmailRecip", "", type=str), diff --git a/web/web/task_files.py b/web/web/task_files.py index 6b8ade9f..0436996e 100644 --- a/web/web/task_files.py +++ b/web/web/task_files.py @@ -158,7 +158,7 @@ def one_task_file_send_email(task_id: int, file_id: int) -> Response: try: my_file = TaskFile.query.filter_by(id=file_id).first() output = requests.get( - f"{app.config['RUNNER_HOST']}/send_email/{task_id}/{my_file.job_id}/{file_id}", + f"{app.config['RUNNER_HOST']}/send_email/{my_file.job_id}/{file_id}", timeout=60, ).json() if output.get("error"): @@ -198,9 +198,7 @@ def one_task_file_download(file_id: int) -> Response: ) source_file = json.loads( - requests.get( - "%s/file/%s" % (app.config["RUNNER_HOST"], file_id), timeout=60 - ).text, + requests.get("%s/file/%s" % (app.config["RUNNER_HOST"], file_id), timeout=60).text, ).get("message") def stream_and_remove_file() -> Generator: @@ -210,9 +208,7 @@ def stream_and_remove_file() -> Generator: # check if it is a zip if zipfile.is_zipfile(source_file): - return send_file( - source_file, as_attachment=True, attachment_filename=my_file.name - ) + return send_file(source_file, as_attachment=True, download_name=my_file.name) # otherwise, stream it. # pylint: disable=R1732