From d1100a30e232e15263cd694b10f3c607d1dfcd53 Mon Sep 17 00:00:00 2001 From: Gzx1999 Date: Wed, 14 Dec 2022 19:53:32 +0800 Subject: [PATCH] add nginxconfig.io master source code --- nginx/nginxconfig.io/.babelrc | 13 + nginx/nginxconfig.io/.editorconfig | 16 + nginx/nginxconfig.io/.eslintrc.cjs | 41 + nginx/nginxconfig.io/.gitignore | 11 + nginx/nginxconfig.io/.nvmrc | 1 + nginx/nginxconfig.io/LICENSE | 9 + nginx/nginxconfig.io/README.md | 134 + nginx/nginxconfig.io/package-lock.json | 33123 ++++++++++++++++ nginx/nginxconfig.io/package.json | 111 + .../src/nginxconfig/build/prism.js | 45 + .../src/nginxconfig/build/template.js | 44 + .../build/webpack-dynamic-import.js | 33 + .../generators/conf/drupal.conf.js | 66 + .../generators/conf/general.conf.js | 131 + .../generators/conf/joomla.conf.js | 49 + .../generators/conf/letsencrypt.conf.js | 37 + .../generators/conf/magento.conf.js | 115 + .../nginxconfig/generators/conf/nginx.conf.js | 238 + .../generators/conf/php_fastcgi.conf.js | 56 + .../nginxconfig/generators/conf/proxy.conf.js | 61 + .../generators/conf/python_uwsgi.conf.js | 43 + .../generators/conf/security.conf.js | 70 + .../generators/conf/website.conf.js | 472 + .../generators/conf/wordpress.conf.js | 75 + .../src/nginxconfig/generators/ext/docker.js | 30 + .../src/nginxconfig/generators/index.js | 114 + .../src/nginxconfig/generators/to_conf.js | 135 + .../src/nginxconfig/generators/to_yaml.js | 31 + .../generators/yaml/dockerCompose.yaml.js | 39 + .../src/nginxconfig/i18n/de/common.js | 48 + .../src/nginxconfig/i18n/de/index.js | 31 + .../src/nginxconfig/i18n/de/languages.js | 38 + .../src/nginxconfig/i18n/de/templates/app.js | 40 + .../i18n/de/templates/callouts/contribute.js | 30 + .../i18n/de/templates/callouts/droplet.js | 30 + .../i18n/de/templates/callouts/index.js | 30 + .../de/templates/domain_sections/https.js | 48 + .../de/templates/domain_sections/index.js | 38 + .../de/templates/domain_sections/logging.js | 33 + .../de/templates/domain_sections/onion.js | 36 + .../i18n/de/templates/domain_sections/php.js | 57 + .../de/templates/domain_sections/presets.js | 33 + .../de/templates/domain_sections/python.js | 36 + .../de/templates/domain_sections/restrict.js | 30 + .../domain_sections/reverse_proxy.js | 35 + .../de/templates/domain_sections/routing.js | 35 + .../de/templates/domain_sections/server.js | 37 + .../nginxconfig/i18n/de/templates/footer.js | 39 + .../de/templates/global_sections/docker.js | 41 + .../de/templates/global_sections/https.js | 52 + .../de/templates/global_sections/index.js | 37 + .../de/templates/global_sections/logging.js | 42 + .../de/templates/global_sections/nginx.js | 32 + .../templates/global_sections/performance.js | 44 + .../de/templates/global_sections/python.js | 32 + .../global_sections/reverse_proxy.js | 36 + .../de/templates/global_sections/security.js | 32 + .../de/templates/global_sections/tools.js | 53 + .../nginxconfig/i18n/de/templates/index.js | 35 + .../nginxconfig/i18n/de/templates/setup.js | 30 + .../de/templates/setup_sections/certbot.js | 39 + .../de/templates/setup_sections/download.js | 40 + .../de/templates/setup_sections/go_live.js | 33 + .../i18n/de/templates/setup_sections/index.js | 32 + .../i18n/de/templates/setup_sections/ssl.js | 34 + .../src/nginxconfig/i18n/en/common.js | 48 + .../src/nginxconfig/i18n/en/index.js | 31 + .../src/nginxconfig/i18n/en/languages.js | 38 + .../src/nginxconfig/i18n/en/templates/app.js | 40 + .../i18n/en/templates/callouts/contribute.js | 30 + .../i18n/en/templates/callouts/droplet.js | 30 + .../i18n/en/templates/callouts/index.js | 30 + .../en/templates/domain_sections/https.js | 48 + .../en/templates/domain_sections/index.js | 38 + .../en/templates/domain_sections/logging.js | 35 + .../en/templates/domain_sections/onion.js | 36 + .../i18n/en/templates/domain_sections/php.js | 57 + .../en/templates/domain_sections/presets.js | 33 + .../en/templates/domain_sections/python.js | 36 + .../en/templates/domain_sections/restrict.js | 30 + .../domain_sections/reverse_proxy.js | 35 + .../en/templates/domain_sections/routing.js | 35 + .../en/templates/domain_sections/server.js | 37 + .../nginxconfig/i18n/en/templates/footer.js | 39 + .../en/templates/global_sections/docker.js | 41 + .../en/templates/global_sections/https.js | 52 + .../en/templates/global_sections/index.js | 37 + .../en/templates/global_sections/logging.js | 42 + .../en/templates/global_sections/nginx.js | 32 + .../templates/global_sections/performance.js | 44 + .../en/templates/global_sections/python.js | 32 + .../global_sections/reverse_proxy.js | 36 + .../en/templates/global_sections/security.js | 32 + .../en/templates/global_sections/tools.js | 53 + .../nginxconfig/i18n/en/templates/index.js | 35 + .../nginxconfig/i18n/en/templates/setup.js | 30 + .../en/templates/setup_sections/certbot.js | 39 + .../en/templates/setup_sections/download.js | 40 + .../en/templates/setup_sections/go_live.js | 33 + .../i18n/en/templates/setup_sections/index.js | 32 + .../i18n/en/templates/setup_sections/ssl.js | 34 + .../src/nginxconfig/i18n/es/common.js | 48 + .../src/nginxconfig/i18n/es/index.js | 31 + .../src/nginxconfig/i18n/es/languages.js | 38 + .../src/nginxconfig/i18n/es/templates/app.js | 40 + .../i18n/es/templates/callouts/contribute.js | 30 + .../i18n/es/templates/callouts/droplet.js | 30 + .../i18n/es/templates/callouts/index.js | 30 + .../es/templates/domain_sections/https.js | 48 + .../es/templates/domain_sections/index.js | 38 + .../es/templates/domain_sections/logging.js | 35 + .../es/templates/domain_sections/onion.js | 36 + .../i18n/es/templates/domain_sections/php.js | 57 + .../es/templates/domain_sections/presets.js | 35 + .../es/templates/domain_sections/python.js | 36 + .../es/templates/domain_sections/restrict.js | 30 + .../domain_sections/reverse_proxy.js | 35 + .../es/templates/domain_sections/routing.js | 35 + .../es/templates/domain_sections/server.js | 39 + .../nginxconfig/i18n/es/templates/footer.js | 39 + .../es/templates/global_sections/docker.js | 41 + .../es/templates/global_sections/https.js | 55 + .../es/templates/global_sections/index.js | 37 + .../es/templates/global_sections/logging.js | 42 + .../es/templates/global_sections/nginx.js | 32 + .../templates/global_sections/performance.js | 44 + .../es/templates/global_sections/python.js | 32 + .../global_sections/reverse_proxy.js | 36 + .../es/templates/global_sections/security.js | 32 + .../es/templates/global_sections/tools.js | 53 + .../nginxconfig/i18n/es/templates/index.js | 35 + .../nginxconfig/i18n/es/templates/setup.js | 30 + .../es/templates/setup_sections/certbot.js | 39 + .../es/templates/setup_sections/download.js | 43 + .../es/templates/setup_sections/go_live.js | 33 + .../i18n/es/templates/setup_sections/index.js | 32 + .../i18n/es/templates/setup_sections/ssl.js | 34 + .../src/nginxconfig/i18n/fr/common.js | 48 + .../src/nginxconfig/i18n/fr/index.js | 31 + .../src/nginxconfig/i18n/fr/languages.js | 38 + .../src/nginxconfig/i18n/fr/templates/app.js | 40 + .../i18n/fr/templates/callouts/contribute.js | 30 + .../i18n/fr/templates/callouts/droplet.js | 30 + .../i18n/fr/templates/callouts/index.js | 30 + .../fr/templates/domain_sections/https.js | 48 + .../fr/templates/domain_sections/index.js | 38 + .../fr/templates/domain_sections/logging.js | 35 + .../fr/templates/domain_sections/onion.js | 36 + .../i18n/fr/templates/domain_sections/php.js | 57 + .../fr/templates/domain_sections/presets.js | 33 + .../fr/templates/domain_sections/python.js | 36 + .../fr/templates/domain_sections/restrict.js | 30 + .../domain_sections/reverse_proxy.js | 35 + .../fr/templates/domain_sections/routing.js | 35 + .../fr/templates/domain_sections/server.js | 37 + .../nginxconfig/i18n/fr/templates/footer.js | 39 + .../fr/templates/global_sections/docker.js | 41 + .../fr/templates/global_sections/https.js | 52 + .../fr/templates/global_sections/index.js | 37 + .../fr/templates/global_sections/logging.js | 42 + .../fr/templates/global_sections/nginx.js | 32 + .../templates/global_sections/performance.js | 44 + .../fr/templates/global_sections/python.js | 32 + .../global_sections/reverse_proxy.js | 36 + .../fr/templates/global_sections/security.js | 32 + .../fr/templates/global_sections/tools.js | 53 + .../nginxconfig/i18n/fr/templates/index.js | 35 + .../nginxconfig/i18n/fr/templates/setup.js | 30 + .../fr/templates/setup_sections/certbot.js | 39 + .../fr/templates/setup_sections/download.js | 40 + .../fr/templates/setup_sections/go_live.js | 33 + .../i18n/fr/templates/setup_sections/index.js | 32 + .../i18n/fr/templates/setup_sections/ssl.js | 34 + .../src/nginxconfig/i18n/ja/common.js | 48 + .../src/nginxconfig/i18n/ja/index.js | 31 + .../src/nginxconfig/i18n/ja/languages.js | 38 + .../src/nginxconfig/i18n/ja/templates/app.js | 40 + .../i18n/ja/templates/callouts/contribute.js | 30 + .../i18n/ja/templates/callouts/droplet.js | 30 + .../i18n/ja/templates/callouts/index.js | 30 + .../ja/templates/domain_sections/https.js | 48 + .../ja/templates/domain_sections/index.js | 38 + .../ja/templates/domain_sections/logging.js | 35 + .../ja/templates/domain_sections/onion.js | 36 + .../i18n/ja/templates/domain_sections/php.js | 57 + .../ja/templates/domain_sections/presets.js | 33 + .../ja/templates/domain_sections/python.js | 36 + .../ja/templates/domain_sections/restrict.js | 30 + .../domain_sections/reverse_proxy.js | 35 + .../ja/templates/domain_sections/routing.js | 35 + .../ja/templates/domain_sections/server.js | 37 + .../nginxconfig/i18n/ja/templates/footer.js | 39 + .../ja/templates/global_sections/docker.js | 41 + .../ja/templates/global_sections/https.js | 52 + .../ja/templates/global_sections/index.js | 37 + .../ja/templates/global_sections/logging.js | 42 + .../ja/templates/global_sections/nginx.js | 32 + .../templates/global_sections/performance.js | 44 + .../ja/templates/global_sections/python.js | 32 + .../global_sections/reverse_proxy.js | 36 + .../ja/templates/global_sections/security.js | 32 + .../ja/templates/global_sections/tools.js | 53 + .../nginxconfig/i18n/ja/templates/index.js | 35 + .../nginxconfig/i18n/ja/templates/setup.js | 30 + .../ja/templates/setup_sections/certbot.js | 39 + .../ja/templates/setup_sections/download.js | 40 + .../ja/templates/setup_sections/go_live.js | 33 + .../i18n/ja/templates/setup_sections/index.js | 32 + .../i18n/ja/templates/setup_sections/ssl.js | 34 + .../src/nginxconfig/i18n/pl/common.js | 48 + .../src/nginxconfig/i18n/pl/index.js | 31 + .../src/nginxconfig/i18n/pl/languages.js | 38 + .../src/nginxconfig/i18n/pl/templates/app.js | 40 + .../i18n/pl/templates/callouts/contribute.js | 30 + .../i18n/pl/templates/callouts/droplet.js | 30 + .../i18n/pl/templates/callouts/index.js | 30 + .../pl/templates/domain_sections/https.js | 48 + .../pl/templates/domain_sections/index.js | 38 + .../pl/templates/domain_sections/logging.js | 35 + .../pl/templates/domain_sections/onion.js | 36 + .../i18n/pl/templates/domain_sections/php.js | 57 + .../pl/templates/domain_sections/presets.js | 33 + .../pl/templates/domain_sections/python.js | 36 + .../pl/templates/domain_sections/restrict.js | 30 + .../domain_sections/reverse_proxy.js | 35 + .../pl/templates/domain_sections/routing.js | 35 + .../pl/templates/domain_sections/server.js | 37 + .../nginxconfig/i18n/pl/templates/footer.js | 39 + .../pl/templates/global_sections/docker.js | 41 + .../pl/templates/global_sections/https.js | 52 + .../pl/templates/global_sections/index.js | 37 + .../pl/templates/global_sections/logging.js | 42 + .../pl/templates/global_sections/nginx.js | 32 + .../templates/global_sections/performance.js | 44 + .../pl/templates/global_sections/python.js | 32 + .../global_sections/reverse_proxy.js | 36 + .../pl/templates/global_sections/security.js | 32 + .../pl/templates/global_sections/tools.js | 53 + .../nginxconfig/i18n/pl/templates/index.js | 35 + .../nginxconfig/i18n/pl/templates/setup.js | 30 + .../pl/templates/setup_sections/certbot.js | 39 + .../pl/templates/setup_sections/download.js | 40 + .../pl/templates/setup_sections/go_live.js | 33 + .../i18n/pl/templates/setup_sections/index.js | 32 + .../i18n/pl/templates/setup_sections/ssl.js | 34 + .../src/nginxconfig/i18n/pt-br/common.js | 48 + .../src/nginxconfig/i18n/pt-br/index.js | 31 + .../src/nginxconfig/i18n/pt-br/languages.js | 38 + .../nginxconfig/i18n/pt-br/templates/app.js | 40 + .../pt-br/templates/callouts/contribute.js | 30 + .../i18n/pt-br/templates/callouts/droplet.js | 30 + .../i18n/pt-br/templates/callouts/index.js | 30 + .../pt-br/templates/domain_sections/https.js | 48 + .../pt-br/templates/domain_sections/index.js | 38 + .../templates/domain_sections/logging.js | 35 + .../pt-br/templates/domain_sections/onion.js | 36 + .../pt-br/templates/domain_sections/php.js | 57 + .../templates/domain_sections/presets.js | 33 + .../pt-br/templates/domain_sections/python.js | 36 + .../templates/domain_sections/restrict.js | 30 + .../domain_sections/reverse_proxy.js | 35 + .../templates/domain_sections/routing.js | 35 + .../pt-br/templates/domain_sections/server.js | 37 + .../i18n/pt-br/templates/footer.js | 39 + .../pt-br/templates/global_sections/docker.js | 41 + .../pt-br/templates/global_sections/https.js | 52 + .../pt-br/templates/global_sections/index.js | 37 + .../templates/global_sections/logging.js | 42 + .../pt-br/templates/global_sections/nginx.js | 32 + .../templates/global_sections/performance.js | 44 + .../pt-br/templates/global_sections/python.js | 32 + .../global_sections/reverse_proxy.js | 36 + .../templates/global_sections/security.js | 32 + .../pt-br/templates/global_sections/tools.js | 53 + .../nginxconfig/i18n/pt-br/templates/index.js | 35 + .../nginxconfig/i18n/pt-br/templates/setup.js | 30 + .../pt-br/templates/setup_sections/certbot.js | 39 + .../templates/setup_sections/download.js | 40 + .../pt-br/templates/setup_sections/go_live.js | 33 + .../pt-br/templates/setup_sections/index.js | 32 + .../pt-br/templates/setup_sections/ssl.js | 34 + .../src/nginxconfig/i18n/ru/common.js | 48 + .../src/nginxconfig/i18n/ru/index.js | 31 + .../src/nginxconfig/i18n/ru/languages.js | 38 + .../src/nginxconfig/i18n/ru/templates/app.js | 40 + .../i18n/ru/templates/callouts/contribute.js | 30 + .../i18n/ru/templates/callouts/droplet.js | 30 + .../i18n/ru/templates/callouts/index.js | 30 + .../ru/templates/domain_sections/https.js | 48 + .../ru/templates/domain_sections/index.js | 38 + .../ru/templates/domain_sections/logging.js | 35 + .../ru/templates/domain_sections/onion.js | 36 + .../i18n/ru/templates/domain_sections/php.js | 57 + .../ru/templates/domain_sections/presets.js | 33 + .../ru/templates/domain_sections/python.js | 36 + .../ru/templates/domain_sections/restrict.js | 30 + .../domain_sections/reverse_proxy.js | 35 + .../ru/templates/domain_sections/routing.js | 35 + .../ru/templates/domain_sections/server.js | 37 + .../nginxconfig/i18n/ru/templates/footer.js | 39 + .../ru/templates/global_sections/docker.js | 41 + .../ru/templates/global_sections/https.js | 52 + .../ru/templates/global_sections/index.js | 37 + .../ru/templates/global_sections/logging.js | 42 + .../ru/templates/global_sections/nginx.js | 32 + .../templates/global_sections/performance.js | 44 + .../ru/templates/global_sections/python.js | 32 + .../global_sections/reverse_proxy.js | 36 + .../ru/templates/global_sections/security.js | 32 + .../ru/templates/global_sections/tools.js | 53 + .../nginxconfig/i18n/ru/templates/index.js | 35 + .../nginxconfig/i18n/ru/templates/setup.js | 30 + .../ru/templates/setup_sections/certbot.js | 39 + .../ru/templates/setup_sections/download.js | 40 + .../ru/templates/setup_sections/go_live.js | 33 + .../i18n/ru/templates/setup_sections/index.js | 32 + .../i18n/ru/templates/setup_sections/ssl.js | 34 + .../src/nginxconfig/i18n/setup.js | 89 + .../src/nginxconfig/i18n/verify.js | 184 + .../src/nginxconfig/i18n/zh-cn/common.js | 48 + .../src/nginxconfig/i18n/zh-cn/index.js | 31 + .../src/nginxconfig/i18n/zh-cn/languages.js | 38 + .../nginxconfig/i18n/zh-cn/templates/app.js | 40 + .../zh-cn/templates/callouts/contribute.js | 30 + .../i18n/zh-cn/templates/callouts/droplet.js | 30 + .../i18n/zh-cn/templates/callouts/index.js | 30 + .../zh-cn/templates/domain_sections/https.js | 48 + .../zh-cn/templates/domain_sections/index.js | 38 + .../templates/domain_sections/logging.js | 35 + .../zh-cn/templates/domain_sections/onion.js | 36 + .../zh-cn/templates/domain_sections/php.js | 57 + .../templates/domain_sections/presets.js | 33 + .../zh-cn/templates/domain_sections/python.js | 36 + .../templates/domain_sections/restrict.js | 30 + .../domain_sections/reverse_proxy.js | 35 + .../templates/domain_sections/routing.js | 35 + .../zh-cn/templates/domain_sections/server.js | 37 + .../i18n/zh-cn/templates/footer.js | 39 + .../zh-cn/templates/global_sections/docker.js | 41 + .../zh-cn/templates/global_sections/https.js | 52 + .../zh-cn/templates/global_sections/index.js | 37 + .../templates/global_sections/logging.js | 42 + .../zh-cn/templates/global_sections/nginx.js | 32 + .../templates/global_sections/performance.js | 44 + .../zh-cn/templates/global_sections/python.js | 32 + .../global_sections/reverse_proxy.js | 36 + .../templates/global_sections/security.js | 32 + .../zh-cn/templates/global_sections/tools.js | 53 + .../nginxconfig/i18n/zh-cn/templates/index.js | 35 + .../nginxconfig/i18n/zh-cn/templates/setup.js | 30 + .../zh-cn/templates/setup_sections/certbot.js | 39 + .../templates/setup_sections/download.js | 40 + .../zh-cn/templates/setup_sections/go_live.js | 33 + .../zh-cn/templates/setup_sections/index.js | 32 + .../zh-cn/templates/setup_sections/ssl.js | 34 + .../src/nginxconfig/i18n/zh-tw/common.js | 48 + .../src/nginxconfig/i18n/zh-tw/index.js | 31 + .../src/nginxconfig/i18n/zh-tw/languages.js | 38 + .../nginxconfig/i18n/zh-tw/templates/app.js | 40 + .../zh-tw/templates/callouts/contribute.js | 30 + .../i18n/zh-tw/templates/callouts/droplet.js | 30 + .../i18n/zh-tw/templates/callouts/index.js | 30 + .../zh-tw/templates/domain_sections/https.js | 48 + .../zh-tw/templates/domain_sections/index.js | 38 + .../templates/domain_sections/logging.js | 35 + .../zh-tw/templates/domain_sections/onion.js | 36 + .../zh-tw/templates/domain_sections/php.js | 57 + .../templates/domain_sections/presets.js | 33 + .../zh-tw/templates/domain_sections/python.js | 36 + .../templates/domain_sections/restrict.js | 30 + .../domain_sections/reverse_proxy.js | 35 + .../templates/domain_sections/routing.js | 35 + .../zh-tw/templates/domain_sections/server.js | 37 + .../i18n/zh-tw/templates/footer.js | 39 + .../zh-tw/templates/global_sections/docker.js | 41 + .../zh-tw/templates/global_sections/https.js | 52 + .../zh-tw/templates/global_sections/index.js | 37 + .../templates/global_sections/logging.js | 42 + .../zh-tw/templates/global_sections/nginx.js | 32 + .../templates/global_sections/performance.js | 44 + .../zh-tw/templates/global_sections/python.js | 32 + .../global_sections/reverse_proxy.js | 36 + .../templates/global_sections/security.js | 32 + .../zh-tw/templates/global_sections/tools.js | 53 + .../nginxconfig/i18n/zh-tw/templates/index.js | 35 + .../nginxconfig/i18n/zh-tw/templates/setup.js | 30 + .../zh-tw/templates/setup_sections/certbot.js | 39 + .../templates/setup_sections/download.js | 40 + .../zh-tw/templates/setup_sections/go_live.js | 33 + .../zh-tw/templates/setup_sections/index.js | 32 + .../zh-tw/templates/setup_sections/ssl.js | 34 + nginx/nginxconfig.io/src/nginxconfig/mount.js | 40 + .../src/nginxconfig/scss/_callout.scss | 100 + .../src/nginxconfig/scss/_code.scss | 73 + .../src/nginxconfig/scss/_fields.scss | 229 + .../src/nginxconfig/scss/_files.scss | 31 + .../src/nginxconfig/scss/_footer.scss | 43 + .../src/nginxconfig/scss/_header.scss | 51 + .../src/nginxconfig/scss/_modals.scss | 37 + .../src/nginxconfig/scss/_panel.scss | 96 + .../src/nginxconfig/scss/_setup.scss | 50 + .../src/nginxconfig/scss/_tabs.scss | 121 + .../src/nginxconfig/scss/_vue-select.scss | 112 + .../src/nginxconfig/scss/style.scss | 53 + .../src/nginxconfig/templates/app.vue | 433 + .../templates/callouts/contribute.vue | 104 + .../templates/callouts/droplet.vue | 115 + .../src/nginxconfig/templates/domain.vue | 177 + .../templates/domain_sections/https.vue | 419 + .../templates/domain_sections/index.js | 37 + .../templates/domain_sections/logging.vue | 226 + .../templates/domain_sections/onion.vue | 116 + .../templates/domain_sections/php.vue | 383 + .../templates/domain_sections/presets.vue | 288 + .../templates/domain_sections/python.vue | 144 + .../templates/domain_sections/restrict.vue | 284 + .../domain_sections/reverse_proxy.vue | 197 + .../templates/domain_sections/routing.vue | 212 + .../templates/domain_sections/server.vue | 256 + .../src/nginxconfig/templates/footer.vue | 72 + .../src/nginxconfig/templates/global.vue | 160 + .../templates/global_sections/docker.vue | 134 + .../templates/global_sections/https.vue | 395 + .../templates/global_sections/index.js | 37 + .../templates/global_sections/logging.vue | 286 + .../templates/global_sections/nginx.vue | 269 + .../templates/global_sections/performance.vue | 226 + .../templates/global_sections/python.vue | 102 + .../global_sections/reverse_proxy.vue | 252 + .../templates/global_sections/security.vue | 246 + .../templates/global_sections/tools.vue | 380 + .../nginxconfig/templates/inputs/checkbox.vue | 45 + .../nginxconfig/templates/inputs/radio.vue | 45 + .../src/nginxconfig/templates/prism/bash.vue | 51 + .../nginxconfig/templates/prism/docker.vue | 55 + .../src/nginxconfig/templates/prism/nginx.vue | 54 + .../src/nginxconfig/templates/prism/yaml.vue | 55 + .../src/nginxconfig/templates/setup.vue | 211 + .../templates/setup_sections/certbot.vue | 180 + .../templates/setup_sections/download.vue | 114 + .../templates/setup_sections/go_live.vue | 67 + .../templates/setup_sections/index.js | 32 + .../templates/setup_sections/ssl.vue | 125 + .../src/nginxconfig/util/analytics.js | 308 + .../util/angular_backwards_compatibility.js | 174 + .../src/nginxconfig/util/browser_language.js | 59 + .../src/nginxconfig/util/camel_to_snake.js | 27 + .../src/nginxconfig/util/common_hsts.js | 37 + .../util/computed_from_defaults.js | 66 + .../src/nginxconfig/util/deep_merge.js | 38 + .../src/nginxconfig/util/defaults.js | 27 + .../util/delegated_from_defaults.js | 36 + .../src/nginxconfig/util/export_data.js | 73 + .../nginxconfig/util/get_ssl_certificate.js | 45 + .../src/nginxconfig/util/import_data.js | 127 + .../src/nginxconfig/util/is_changed.js | 32 + .../src/nginxconfig/util/is_object.js | 27 + .../src/nginxconfig/util/language_packs.js | 52 + .../src/nginxconfig/util/log.js | 31 + .../src/nginxconfig/util/logging.js | 55 + .../src/nginxconfig/util/php_path.js | 31 + .../src/nginxconfig/util/php_upstream.js | 27 + .../src/nginxconfig/util/prism_bundle.js | 82 + .../src/nginxconfig/util/share_query.js | 34 + .../src/nginxconfig/util/snake_to_camel.js | 27 + .../src/nginxconfig/util/ssl_profiles.js | 109 + .../src/nginxconfig/util/types_extensions.js | 41 + .../util/vue_backwards_compatibility.js | 138 + nginx/nginxconfig.io/src/static/banner.png | Bin 0 -> 230532 bytes nginx/nginxconfig.io/src/static/banner.svg | 18 + nginx/nginxconfig.io/src/static/nginx.png | Bin 0 -> 328581 bytes nginx/nginxconfig.io/src/static/nginx.svg | 25 + nginx/nginxconfig.io/src/static/robots.txt | 2 + .../test/testBrowserLanguage.js | 171 + nginx/nginxconfig.io/vue.config.js | 78 + 475 files changed, 59141 insertions(+) create mode 100644 nginx/nginxconfig.io/.babelrc create mode 100644 nginx/nginxconfig.io/.editorconfig create mode 100644 nginx/nginxconfig.io/.eslintrc.cjs create mode 100644 nginx/nginxconfig.io/.gitignore create mode 100644 nginx/nginxconfig.io/.nvmrc create mode 100644 nginx/nginxconfig.io/LICENSE create mode 100644 nginx/nginxconfig.io/README.md create mode 100644 nginx/nginxconfig.io/package-lock.json create mode 100644 nginx/nginxconfig.io/package.json create mode 100644 nginx/nginxconfig.io/src/nginxconfig/build/prism.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/build/template.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/build/webpack-dynamic-import.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/conf/drupal.conf.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/conf/general.conf.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/conf/joomla.conf.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/conf/letsencrypt.conf.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/conf/magento.conf.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/conf/nginx.conf.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/conf/php_fastcgi.conf.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/conf/proxy.conf.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/conf/python_uwsgi.conf.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/conf/security.conf.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/conf/website.conf.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/conf/wordpress.conf.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/ext/docker.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/to_conf.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/to_yaml.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/generators/yaml/dockerCompose.yaml.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/common.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/languages.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/app.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/callouts/contribute.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/callouts/droplet.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/callouts/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/onion.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/php.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/presets.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/restrict.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/routing.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/server.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/footer.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/docker.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/nginx.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/performance.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/security.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/tools.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/certbot.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/download.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/go_live.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/ssl.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/common.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/languages.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/app.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/callouts/contribute.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/callouts/droplet.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/callouts/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/onion.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/php.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/presets.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/restrict.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/routing.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/server.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/footer.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/docker.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/nginx.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/performance.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/security.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/tools.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/certbot.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/download.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/go_live.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/ssl.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/common.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/languages.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/app.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/callouts/contribute.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/callouts/droplet.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/callouts/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/onion.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/php.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/presets.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/restrict.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/routing.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/server.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/footer.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/docker.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/nginx.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/performance.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/security.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/tools.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/certbot.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/download.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/go_live.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/ssl.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/common.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/languages.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/app.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/callouts/contribute.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/callouts/droplet.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/callouts/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/onion.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/php.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/presets.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/restrict.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/routing.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/server.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/footer.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/docker.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/nginx.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/performance.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/security.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/tools.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/certbot.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/download.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/go_live.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/ssl.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/common.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/languages.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/app.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/callouts/contribute.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/callouts/droplet.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/callouts/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/onion.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/php.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/presets.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/restrict.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/routing.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/server.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/footer.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/docker.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/nginx.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/performance.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/security.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/tools.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/certbot.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/download.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/go_live.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/ssl.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/common.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/languages.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/app.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/callouts/contribute.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/callouts/droplet.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/callouts/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/onion.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/php.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/presets.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/restrict.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/routing.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/server.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/footer.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/docker.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/nginx.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/performance.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/security.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/tools.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/certbot.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/download.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/go_live.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/ssl.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/common.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/languages.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/app.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/callouts/contribute.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/callouts/droplet.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/callouts/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/onion.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/php.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/presets.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/restrict.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/routing.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/server.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/footer.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/docker.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/nginx.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/performance.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/security.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/tools.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/certbot.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/download.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/go_live.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/ssl.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/common.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/languages.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/app.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/callouts/contribute.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/callouts/droplet.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/callouts/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/onion.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/php.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/presets.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/restrict.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/routing.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/server.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/footer.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/docker.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/nginx.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/performance.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/security.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/tools.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/certbot.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/download.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/go_live.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/ssl.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/setup.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/verify.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/common.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/languages.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/app.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/callouts/contribute.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/callouts/droplet.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/callouts/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/onion.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/php.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/presets.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/restrict.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/routing.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/server.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/footer.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/docker.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/nginx.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/performance.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/security.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/tools.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/certbot.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/download.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/go_live.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/ssl.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/common.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/languages.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/app.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/callouts/contribute.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/callouts/droplet.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/callouts/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/onion.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/php.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/presets.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/restrict.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/routing.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/server.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/footer.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/docker.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/https.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/nginx.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/performance.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/python.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/reverse_proxy.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/security.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/tools.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/certbot.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/download.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/go_live.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/ssl.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/mount.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/scss/_callout.scss create mode 100644 nginx/nginxconfig.io/src/nginxconfig/scss/_code.scss create mode 100644 nginx/nginxconfig.io/src/nginxconfig/scss/_fields.scss create mode 100644 nginx/nginxconfig.io/src/nginxconfig/scss/_files.scss create mode 100644 nginx/nginxconfig.io/src/nginxconfig/scss/_footer.scss create mode 100644 nginx/nginxconfig.io/src/nginxconfig/scss/_header.scss create mode 100644 nginx/nginxconfig.io/src/nginxconfig/scss/_modals.scss create mode 100644 nginx/nginxconfig.io/src/nginxconfig/scss/_panel.scss create mode 100644 nginx/nginxconfig.io/src/nginxconfig/scss/_setup.scss create mode 100644 nginx/nginxconfig.io/src/nginxconfig/scss/_tabs.scss create mode 100644 nginx/nginxconfig.io/src/nginxconfig/scss/_vue-select.scss create mode 100644 nginx/nginxconfig.io/src/nginxconfig/scss/style.scss create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/app.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/callouts/contribute.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/callouts/droplet.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/domain.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/https.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/logging.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/onion.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/php.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/presets.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/python.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/restrict.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/reverse_proxy.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/routing.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/server.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/footer.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/global.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/docker.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/https.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/logging.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/nginx.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/performance.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/python.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/reverse_proxy.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/security.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/tools.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/inputs/checkbox.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/inputs/radio.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/prism/bash.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/prism/docker.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/prism/nginx.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/prism/yaml.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/setup.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/certbot.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/download.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/go_live.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/index.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/ssl.vue create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/analytics.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/angular_backwards_compatibility.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/browser_language.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/camel_to_snake.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/common_hsts.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/computed_from_defaults.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/deep_merge.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/defaults.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/delegated_from_defaults.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/export_data.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/get_ssl_certificate.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/import_data.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/is_changed.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/is_object.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/language_packs.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/log.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/logging.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/php_path.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/php_upstream.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/prism_bundle.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/share_query.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/snake_to_camel.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/ssl_profiles.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/types_extensions.js create mode 100644 nginx/nginxconfig.io/src/nginxconfig/util/vue_backwards_compatibility.js create mode 100644 nginx/nginxconfig.io/src/static/banner.png create mode 100644 nginx/nginxconfig.io/src/static/banner.svg create mode 100644 nginx/nginxconfig.io/src/static/nginx.png create mode 100644 nginx/nginxconfig.io/src/static/nginx.svg create mode 100644 nginx/nginxconfig.io/src/static/robots.txt create mode 100644 nginx/nginxconfig.io/test/testBrowserLanguage.js create mode 100644 nginx/nginxconfig.io/vue.config.js diff --git a/nginx/nginxconfig.io/.babelrc b/nginx/nginxconfig.io/.babelrc new file mode 100644 index 00000000..ce72c57f --- /dev/null +++ b/nginx/nginxconfig.io/.babelrc @@ -0,0 +1,13 @@ +{ + "presets": [[ + "@babel/preset-env", + { + "corejs": "3", + "useBuiltIns": "usage" + } + ]], + "plugins": [ + "@babel/plugin-transform-runtime", + "@babel/plugin-proposal-class-properties" + ] +} diff --git a/nginx/nginxconfig.io/.editorconfig b/nginx/nginxconfig.io/.editorconfig new file mode 100644 index 00000000..e24cf8ef --- /dev/null +++ b/nginx/nginxconfig.io/.editorconfig @@ -0,0 +1,16 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true +indent_style = space +indent_size = 4 + +[*.scss] +indent_size = 2 + +[*.json] +indent_size = 2 + +[*.yml] +indent_size = 2 diff --git a/nginx/nginxconfig.io/.eslintrc.cjs b/nginx/nginxconfig.io/.eslintrc.cjs new file mode 100644 index 00000000..583e3558 --- /dev/null +++ b/nginx/nginxconfig.io/.eslintrc.cjs @@ -0,0 +1,41 @@ +module.exports = { + env: { + 'browser': true, + 'node': true, + }, + extends: [ + 'eslint:recommended', + 'plugin:vue/recommended', + ], + parserOptions: { + parser: '@babel/eslint-parser', + ecmaVersion: 2018, + sourceType: 'module', + requireConfigFile: false, + }, + rules: { + 'linebreak-style': ['error', 'unix'], + semi: ['error', 'always'], + quotes: ['error', 'single'], + 'comma-dangle': ['error', 'always-multiline'], + 'vue/require-v-for-key': 0, + 'vue/require-default-prop': 0, + 'vue/no-v-html': 0, + 'vue/max-attributes-per-line': 0, + 'vue/html-indent': ['error', 4], + 'vue/script-indent': ['error', 4, { + baseIndent: 1, + }], + 'vue/no-unused-vars': 0, + 'vue/html-self-closing': 0, + 'vue/multi-word-component-names': 0, + 'vue/no-reserved-component-names': 0, + 'eol-last': ['error', 'always'], + }, + globals: { + 'describe': true, + 'expect': true, + 'it': true, + 'test': true, + }, +}; diff --git a/nginx/nginxconfig.io/.gitignore b/nginx/nginxconfig.io/.gitignore new file mode 100644 index 00000000..c27dea9a --- /dev/null +++ b/nginx/nginxconfig.io/.gitignore @@ -0,0 +1,11 @@ +node_modules +.cache +.idea +.vscode +.DS_Store + +/build/ +/dist/ +/dev/ + +.eslintcache diff --git a/nginx/nginxconfig.io/.nvmrc b/nginx/nginxconfig.io/.nvmrc new file mode 100644 index 00000000..0c19c7b4 --- /dev/null +++ b/nginx/nginxconfig.io/.nvmrc @@ -0,0 +1 @@ +v16.18.1 diff --git a/nginx/nginxconfig.io/LICENSE b/nginx/nginxconfig.io/LICENSE new file mode 100644 index 00000000..4a74ff97 --- /dev/null +++ b/nginx/nginxconfig.io/LICENSE @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2020 DigitalOcean + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/nginx/nginxconfig.io/README.md b/nginx/nginxconfig.io/README.md new file mode 100644 index 00000000..786a3a45 --- /dev/null +++ b/nginx/nginxconfig.io/README.md @@ -0,0 +1,134 @@ +[![GitHub stars](https://img.shields.io/github/stars/digitalocean/nginxconfig.io.svg)](https://github.com/digitalocean/nginxconfig.io/stargazers) +[![GitHub contributors](https://img.shields.io/github/contributors/digitalocean/nginxconfig.io.svg?color=blue)](https://github.com/digitalocean/nginxconfig.io/graphs/contributors) +[![MIT License](https://img.shields.io/github/license/digitalocean/nginxconfig.io.svg?color=blue)](https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE) +
+[![Closed issues](https://img.shields.io/github/issues-closed-raw/digitalocean/nginxconfig.io.svg?color=brightgreen)](https://github.com/digitalocean/nginxconfig.io/issues?q=is%3Aissue+is%3Aclosed) +[![Closed PR](https://img.shields.io/github/issues-pr-closed-raw/digitalocean/nginxconfig.io.svg?color=brightgreen)](https://github.com/digitalocean/nginxconfig.io/pulls?q=is%3Apr+is%3Aclosed) +[![Open issues](https://img.shields.io/github/issues-raw/digitalocean/nginxconfig.io.svg)](https://github.com/digitalocean/nginxconfig.io/issues) +[![Open PR](https://img.shields.io/github/issues-pr-raw/digitalocean/nginxconfig.io.svg)](https://github.com/digitalocean/nginxconfig.io/pulls) + +[![nginxconfig](src/static/banner.png)](https://do.co/nginxconfig) + +

⚙️ NGINX configuration generator on steroids 💉

+

+ The only tool you'll ever need to configure your NGINX server. +
+ do.co/nginxconfig » +
+
+ Report a bug + · + Request a feature +

+ +
+ +# ✨ [NGINX Config](https://do.co/nginxconfig) + +NGINX is so much more than just a webserver. You already knew that, probably. + +We love NGINX, because: +* Low memory usage +* High concurrency +* Asynchronous event-driven architecture +* Load balancing +* Reverse proxying +* FastCGI support with caching (PHP) +* Amazing fast handling of static files +* TLS/SSL with SNI + +A lot of features with corresponding configuration directives. +You can deep dive into the [NGINX documentation](http://nginx.org/en/docs/) right now OR you can [use this tool](https://do.co/nginxconfig) to check +how NGINX works, observe how your inputs are affecting the output, and **generate the best config for your specific +use-case** (in parallel you can also still use the docs). + +## 🚀 Usage + +`GOTO` **[`do.co/nginxconfig`](https://do.co/nginxconfig)** + +**Features:** +HTTPS, HTTP/2, IPv6, certbot, HSTS, security headers, SSL profiles, OCSP resolvers, caching, gzip, brotli, fallback +routing, reverse proxy, www/non-www redirect, CDN, PHP (TCP/socket, WordPress, Drupal, Magento, Joomla), Node.js support, Python +(Django) server, etc. + +## 👨‍💻 Author + +### Rewrite & Maintenance + +**Matt (IPv4) Cowley <me@mattcowley.co.uk> (https://mattcowley.co.uk)** +* GitHub: [@MattIPv4](https://github.com/MattIPv4) + +### Original version + +**Bálint Szekeres <balint@szekeres.me> (https://balint.szekeres.me)** +* GitHub: [@0xB4LINT](https://github.com/0xB4LINT) +* LinkedIn: [@0xB4LINT](https://www.linkedin.com/in/0xB4LINT/) + +## ▶️ Development + +1. Clone the repository + ```sh + git clone https://github.com/digitalocean/nginxconfig.io.git + ``` + +2. Install NPM packages + ```sh + npm ci + ``` + +3. Run the development server *(with file watchers)* + ```sh + npm run dev + ``` + +4. Open the development site **[localhost:8080](http://localhost:8080)** + +5. Lint your code *(eslint & stylelint)* + ```sh + npm test + ``` + +6. Build for production *(to the `dist` directory)* + ```sh + npm run build + ``` + +## 🤝 Contributing + +Contributions are what make the open source community such an amazing place to be learn, inspire, and create. +Any contributions you make are **greatly appreciated**. + +1. Fork the Project +2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`) +3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`) +4. Push to the Branch (`git push origin feature/AmazingFeature`) +5. Open a Pull Request + +## ⚒️ Built With + +* [Vue.js](https://vuejs.org/) - Template handling & app generation +* [Bulma](https://bulma.io/) - Base styling, customised by [do-bulma](https://github.com/do-community/do-bulma) +* [Prism](https://prismjs.com/) - Bash & NGINX syntax highlighting + +## 📚 Resources + +* [Mozilla SSL Configuration Generator v5](https://ssl-config.mozilla.org) +* [Mozilla SSL Configuration Generator](https://mozilla.github.io/server-side-tls/ssl-config-generator/) +* [OWASP TLS Cipher String Cheat Sheet](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/TLS_Cipher_String_Cheat_Sheet.md) +* [Nginx Optimization: understanding sendfile, tcp_nodelay and tcp_nopush](https://thoughts.t37.net/nginx-optimization-understanding-sendfile-tcp-nodelay-and-tcp-nopush-c55cdd276765) +* [NGINX Tuning For Best Performance](https://gist.github.com/denji/8359866) +* [Hardening Your HTTP Security Headers](https://www.keycdn.com/blog/http-security-headers/) +* [h5bp/server-configs-nginx](https://github.com/h5bp/server-configs-nginx) +* [Diffie-Hellman DSA-like parameters](https://security.stackexchange.com/questions/95178/diffie-hellman-parameters-still-calculating-after-24-hours/95184#95184) +* [hstspreload.org](https://hstspreload.org) +* [Optimal value for nginx worker_connections](https://serverfault.com/questions/787919/optimal-value-for-nginx-worker-connections) + +## ⭐️ Show your support + +Give a ⭐️ if this project helped you! + +## 📝 License + +Copyright © 2020 [DigitalOcean, Inc <contact@digitalocean.com> (https://www.digitalocean.com)](https://www.digitalocean.com). +
+This project is licensed under the [MIT](https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE) license. diff --git a/nginx/nginxconfig.io/package-lock.json b/nginx/nginxconfig.io/package-lock.json new file mode 100644 index 00000000..df17ed91 --- /dev/null +++ b/nginx/nginxconfig.io/package-lock.json @@ -0,0 +1,33123 @@ +{ + "name": "nginxconfig.io", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "nginxconfig.io", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "clipboard": "^2.0.11", + "clone": "^2.1.2", + "do-bulma": "github:do-community/do-bulma", + "do-vue": "github:do-community/do-vue", + "escape-html": "^1.0.3", + "files-diff": "0.0.6", + "json-to-pretty-yaml": "^1.2.2", + "memory-tar-create": "0.0.3", + "pretty-checkbox-vue": "^1.1.9", + "prismjs": "^1.29.0", + "qs": "^6.11.0", + "simple-js-sha2-256": "^1.0.7", + "vue": "^3.2.45", + "vue-i18n": "^9.2.2", + "vue-select": "^4.0.0-beta.6", + "webpack-require-from": "^1.8.6" + }, + "devDependencies": { + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", + "@babel/runtime": "^7.20.1", + "@vue/cli-service": "^5.0.8", + "ajv": "^8.11.2", + "chalk": "^5.1.2", + "copyfiles": "^2.4.1", + "core-js": "^3.26.1", + "duplicate-package-checker-webpack-plugin": "^3.0.0", + "eslint": "^8.28.0", + "eslint-plugin-vue": "^9.7.0", + "esm": "^3.2.25", + "husky": "^8.0.2", + "jest": "^29.3.1", + "jest-environment-jsdom": "^29.3.1", + "lint-staged": "^13.0.3", + "node-fetch": "^3.3.0", + "postcss": "^8.4.19", + "sass": "^1.56.1", + "sass-loader": "^13.2.0", + "stylelint": "^14.15.0", + "stylelint-config-standard-scss": "^6.1.0", + "stylelint-order": "^5.0.0", + "vue-template-compiler": "^2.7.14", + "webpack": "^5.75.0", + "webpack-bundle-analyzer": "^4.7.0" + }, + "engines": { + "node": "^16.17.1", + "npm": "^8.15.0" + } + }, + "node_modules/@achrinza/node-ipc": { + "version": "9.2.5", + "resolved": "https://registry.npmjs.org/@achrinza/node-ipc/-/node-ipc-9.2.5.tgz", + "integrity": "sha512-kBX7Ay911iXZ3VZ1pYltj3Rfu7Ow9H7sK4H4RSfWIfWR2JKNB40K808wppoRIEzE2j2hXLU+r6TJgCAliCGhyQ==", + "dev": true, + "dependencies": { + "@node-ipc/js-queue": "2.0.3", + "event-pubsub": "4.3.0", + "js-message": "1.0.7" + }, + "engines": { + "node": "8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", + "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.2", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.1", + "@babel/parser": "^7.20.2", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", + "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "dev": true, + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", + "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", + "dependencies": { + "@babel/types": "^7.20.2", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz", + "integrity": "sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==", + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "dependencies": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz", + "integrity": "sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", + "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "dependencies": { + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", + "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "dependencies": { + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", + "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "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.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", + "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", + "dependencies": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", + "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "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==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz", + "integrity": "sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", + "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", + "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", + "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz", + "integrity": "sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz", + "integrity": "sha512-KS/G8YI8uwMGKErLFOHS/ekhqdHhpEloxs43NecQHVgo2QuQSyJhGIY1fL8UGl9wy5ItVwwoUL4YxVqsplGq2g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", + "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "regenerator-transform": "^0.15.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz", + "integrity": "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.20.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "dependencies": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@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.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", + "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-typescript": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", + "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", + "dependencies": { + "regenerator-runtime": "^0.13.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", + "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2", + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@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/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "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/@intlify/core-base": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz", + "integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==", + "dependencies": { + "@intlify/devtools-if": "9.2.2", + "@intlify/message-compiler": "9.2.2", + "@intlify/shared": "9.2.2", + "@intlify/vue-devtools": "9.2.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/devtools-if": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz", + "integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==", + "dependencies": { + "@intlify/shared": "9.2.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz", + "integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==", + "dependencies": { + "@intlify/shared": "9.2.2", + "source-map": "0.6.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/shared": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.2.2.tgz", + "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/vue-devtools": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz", + "integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==", + "dependencies": { + "@intlify/core-base": "9.2.2", + "@intlify/shared": "9.2.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz", + "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/console/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/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/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/@jest/console/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/@jest/console/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/@jest/console/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/@jest/core": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz", + "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==", + "dev": true, + "dependencies": { + "@jest/console": "^29.3.1", + "@jest/reporters": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.2.0", + "jest-config": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-resolve-dependencies": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "jest-watcher": "^29.3.1", + "micromatch": "^4.0.4", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/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/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/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/@jest/core/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/@jest/core/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/@jest/core/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/@jest/environment": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", + "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-mock": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", + "dev": true, + "dependencies": { + "expect": "^29.3.1", + "jest-snapshot": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", + "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.2.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", + "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", + "dev": true, + "dependencies": { + "@jest/types": "^29.3.1", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", + "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/types": "^29.3.1", + "jest-mock": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz", + "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/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/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/@jest/reporters/node_modules/jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@jest/reporters/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/@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.2.0.tgz", + "integrity": "sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.15", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz", + "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==", + "dev": true, + "dependencies": { + "@jest/console": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz", + "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.3.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", + "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform/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/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/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/@jest/transform/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/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@jest/transform/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/@jest/transform/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/@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "dependencies": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types/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": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/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/@jest/types/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/@jest/types/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/@jest/types/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/@jest/types/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/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "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.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@node-ipc/js-queue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@node-ipc/js-queue/-/js-queue-2.0.3.tgz", + "integrity": "sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==", + "dev": true, + "dependencies": { + "easy-stack": "1.0.1" + }, + "engines": { + "node": ">=1.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.12", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.12.tgz", + "integrity": "sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ==" + }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==", + "dev": true + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.44", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.44.tgz", + "integrity": "sha512-ka0W0KN5i6LfrSocduwliMMpqVgohtPFidKdMEOUjoOFCHcOOYkKsPRxfs5f15oPNHTm6ERAm0GV/+/LTKeiWg==" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", + "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz", + "integrity": "sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==", + "dev": true, + "dependencies": { + "chalk": "^3.0.0", + "error-stack-parser": "^2.0.6", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.0.0" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/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/@soda/friendly-errors-webpack-plugin/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin/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/@soda/friendly-errors-webpack-plugin/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/@soda/friendly-errors-webpack-plugin/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/@soda/friendly-errors-webpack-plugin/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/@soda/friendly-errors-webpack-plugin/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/@soda/friendly-errors-webpack-plugin/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/@soda/get-current-script": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@soda/get-current-script/-/get-current-script-1.0.2.tgz", + "integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==", + "dev": true + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", + "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz", + "integrity": "sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz", + "integrity": "sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", + "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", + "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", + "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", + "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", + "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", + "@svgr/babel-plugin-remove-jsx-attribute": "*", + "@svgr/babel-plugin-remove-jsx-empty-expression": "*", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", + "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", + "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", + "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", + "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", + "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "dependencies": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast/node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/hast-util-to-babel-ast": "^6.5.1", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "^6.0.0" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", + "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "dependencies": { + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "svgo": "^2.8.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo/node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@svgr/webpack": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", + "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", + "dependencies": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-constant-elements": "^7.18.12", + "@babel/preset-env": "^7.19.4", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@svgr/core": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "@svgr/plugin-svgo": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "engines": { + "node": ">= 10" + } + }, + "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==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", + "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", + "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + }, + "node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz", + "integrity": "sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jsdom": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.0.tgz", + "integrity": "sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/jsdom/node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@types/jsdom/node_modules/parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "14.14.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.14.tgz", + "integrity": "sha512-UHnOPWVWV1z+VV8k6L1HhG7UbGBgIdghqF3l9Ny9ApPghbjICXkUJSd/b9gOgQfjM1r+37cipdw/HJ3F6ICEnQ==" + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "node_modules/@types/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", + "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" + }, + "node_modules/@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", + "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + }, + "node_modules/@vue/cli-overlay": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-5.0.8.tgz", + "integrity": "sha512-KmtievE/B4kcXp6SuM2gzsnSd8WebkQpg3XaB6GmFh1BJGRqa1UiW9up7L/Q67uOdTigHxr5Ar2lZms4RcDjwQ==", + "dev": true + }, + "node_modules/@vue/cli-plugin-router": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-5.0.8.tgz", + "integrity": "sha512-Gmv4dsGdAsWPqVijz3Ux2OS2HkMrWi1ENj2cYL75nUeL+Xj5HEstSqdtfZ0b1q9NCce+BFB6QnHfTBXc/fCvMg==", + "dev": true, + "dependencies": { + "@vue/cli-shared-utils": "^5.0.8" + }, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0" + } + }, + "node_modules/@vue/cli-plugin-vuex": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.8.tgz", + "integrity": "sha512-HSYWPqrunRE5ZZs8kVwiY6oWcn95qf/OQabwLfprhdpFWAGtLStShjsGED2aDpSSeGAskQETrtR/5h7VqgIlBA==", + "dev": true, + "peerDependencies": { + "@vue/cli-service": "^3.0.0 || ^4.0.0 || ^5.0.0-0" + } + }, + "node_modules/@vue/cli-service": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-5.0.8.tgz", + "integrity": "sha512-nV7tYQLe7YsTtzFrfOMIHc5N2hp5lHG2rpYr0aNja9rNljdgcPZLyQRb2YRivTHqTv7lI962UXFURcpStHgyFw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.12.16", + "@soda/friendly-errors-webpack-plugin": "^1.8.0", + "@soda/get-current-script": "^1.0.2", + "@types/minimist": "^1.2.0", + "@vue/cli-overlay": "^5.0.8", + "@vue/cli-plugin-router": "^5.0.8", + "@vue/cli-plugin-vuex": "^5.0.8", + "@vue/cli-shared-utils": "^5.0.8", + "@vue/component-compiler-utils": "^3.3.0", + "@vue/vue-loader-v15": "npm:vue-loader@^15.9.7", + "@vue/web-component-wrapper": "^1.3.0", + "acorn": "^8.0.5", + "acorn-walk": "^8.0.2", + "address": "^1.1.2", + "autoprefixer": "^10.2.4", + "browserslist": "^4.16.3", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "cli-highlight": "^2.1.10", + "clipboardy": "^2.3.0", + "cliui": "^7.0.4", + "copy-webpack-plugin": "^9.0.1", + "css-loader": "^6.5.0", + "css-minimizer-webpack-plugin": "^3.0.2", + "cssnano": "^5.0.0", + "debug": "^4.1.1", + "default-gateway": "^6.0.3", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "fs-extra": "^9.1.0", + "globby": "^11.0.2", + "hash-sum": "^2.0.0", + "html-webpack-plugin": "^5.1.0", + "is-file-esm": "^1.0.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.1", + "lodash.mapvalues": "^4.6.0", + "mini-css-extract-plugin": "^2.5.3", + "minimist": "^1.2.5", + "module-alias": "^2.2.2", + "portfinder": "^1.0.26", + "postcss": "^8.2.6", + "postcss-loader": "^6.1.1", + "progress-webpack-plugin": "^1.0.12", + "ssri": "^8.0.1", + "terser-webpack-plugin": "^5.1.1", + "thread-loader": "^3.0.0", + "vue-loader": "^17.0.0", + "vue-style-loader": "^4.1.3", + "webpack": "^5.54.0", + "webpack-bundle-analyzer": "^4.4.0", + "webpack-chain": "^6.5.1", + "webpack-dev-server": "^4.7.3", + "webpack-merge": "^5.7.3", + "webpack-virtual-modules": "^0.4.2", + "whatwg-fetch": "^3.6.2" + }, + "bin": { + "vue-cli-service": "bin/vue-cli-service.js" + }, + "engines": { + "node": "^12.0.0 || >= 14.0.0" + }, + "peerDependencies": { + "vue-template-compiler": "^2.0.0", + "webpack-sources": "*" + }, + "peerDependenciesMeta": { + "cache-loader": { + "optional": true + }, + "less-loader": { + "optional": true + }, + "pug-plain-loader": { + "optional": true + }, + "raw-loader": { + "optional": true + }, + "sass-loader": { + "optional": true + }, + "stylus-loader": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "node_modules/@vue/cli-service/node_modules/fs-extra": { + "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": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@vue/cli-service/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@vue/cli-service/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@vue/cli-shared-utils": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-5.0.8.tgz", + "integrity": "sha512-uK2YB7bBVuQhjOJF+O52P9yFMXeJVj7ozqJkwYE9PlMHL1LMHjtCYm4cSdOebuPzyP+/9p0BimM/OqxsevIopQ==", + "dev": true, + "dependencies": { + "@achrinza/node-ipc": "^9.2.5", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "joi": "^17.4.0", + "launch-editor": "^2.2.1", + "lru-cache": "^6.0.0", + "node-fetch": "^2.6.7", + "open": "^8.0.2", + "ora": "^5.3.0", + "read-pkg": "^5.1.1", + "semver": "^7.3.4", + "strip-ansi": "^6.0.0" + } + }, + "node_modules/@vue/cli-shared-utils/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/@vue/cli-shared-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@vue/cli-shared-utils/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/@vue/cli-shared-utils/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/@vue/cli-shared-utils/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/@vue/cli-shared-utils/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@vue/cli-shared-utils/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/@vue/cli-shared-utils/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/@vue/cli-shared-utils/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/@vue/cli-shared-utils/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.45.tgz", + "integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz", + "integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==", + "dependencies": { + "@vue/compiler-core": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz", + "integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.45", + "@vue/compiler-dom": "3.2.45", + "@vue/compiler-ssr": "3.2.45", + "@vue/reactivity-transform": "3.2.45", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz", + "integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==", + "dependencies": { + "@vue/compiler-dom": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "node_modules/@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "dev": true, + "dependencies": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "optionalDependencies": { + "prettier": "^1.18.2 || ^2.0.0" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "node_modules/@vue/component-compiler-utils/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/@vue/component-compiler-utils/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/@vue/devtools-api": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.2.tgz", + "integrity": "sha512-6hNZ23h1M2Llky+SIAmVhL7s6BjLtZBCzjIz9iRSBUsysjE7kC39ulW0dH4o/eZtycmSt4qEr6RDVGTIuWu+ow==" + }, + "node_modules/@vue/reactivity": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.45.tgz", + "integrity": "sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==", + "dependencies": { + "@vue/shared": "3.2.45" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz", + "integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.45", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.45.tgz", + "integrity": "sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==", + "dependencies": { + "@vue/reactivity": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz", + "integrity": "sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==", + "dependencies": { + "@vue/runtime-core": "3.2.45", + "@vue/shared": "3.2.45", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.45.tgz", + "integrity": "sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==", + "dependencies": { + "@vue/compiler-ssr": "3.2.45", + "@vue/shared": "3.2.45" + }, + "peerDependencies": { + "vue": "3.2.45" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.45.tgz", + "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==" + }, + "node_modules/@vue/vue-loader-v15": { + "name": "vue-loader", + "version": "15.9.8", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.8.tgz", + "integrity": "sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog==", + "dev": true, + "dependencies": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + } + }, + "node_modules/@vue/vue-loader-v15/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "node_modules/@vue/web-component-wrapper": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", + "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" + }, + "node_modules/abstract-leveldown": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", + "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", + "dependencies": { + "buffer": "^6.0.3", + "catering": "^2.0.0", + "is-buffer": "^2.0.5", + "level-concat-iterator": "^3.0.0", + "level-supports": "^2.0.1", + "queue-microtask": "^1.2.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/abstract-leveldown/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/abstract-leveldown/node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", + "dev": true, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-escapes": { + "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": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "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/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", + "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "dependencies": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "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.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", + "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.19.1", + "caniuse-lite": "^1.0.30001297", + "fraction.js": "^4.1.2", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "node_modules/babel-jest": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz", + "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.3.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.2.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/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/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-loader": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.0.tgz", + "integrity": "sha512-Antt61KJPinUMwHwIIz9T5zfMgevnfZkEVWYDWlG888fgdvRRGD0JTuf/fFozQnfT+uq64sk1bmdHDy/mOEWnA==", + "dependencies": { + "find-cache-dir": "^3.3.2", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz", + "integrity": "sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz", + "integrity": "sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.2.0", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/Base64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/Base64/-/Base64-1.1.0.tgz", + "integrity": "sha512-qeacf8dvGpf+XAT27ESHMh7z84uRzj/ua2pQdJg483m3bEXv/kVFtDnMgvf70BQGqzbZhR9t6BmASzKvqfJf3Q==" + }, + "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/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "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/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.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", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/bonjour-service": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz", + "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==", + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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/browserify-fs": { + "version": "1.0.0", + "resolved": "git+ssh://git@github.com/do-community/browserify-fs.git#09496c2ac56a3d07ac7edb051e6ebc910add3a2d", + "integrity": "sha512-jVWtKSMHTi14oxu2dYFe2pa+xuREWhvj4QyjdyLR49rv9kkWXzXlWj4p5Z328vXp04FoBm/Vp4hRaKVgwU5Kiw==", + "dependencies": { + "level-filesystem": "^1.0.1", + "level-js": "^6.0.0", + "levelup": "^4.4.0" + } + }, + "node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "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/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-api": { + "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==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001414", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", + "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "node_modules/catering": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", + "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.1.2.tgz", + "integrity": "sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "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/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/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.4.0.tgz", + "integrity": "sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==" + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "node_modules/clean-css": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", + "integrity": "sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.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": ">=6" + } + }, + "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": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "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": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "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": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "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": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "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": ">=8" + } + }, + "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": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "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/cli-truncate/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "node_modules/clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "dependencies": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "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/cliui/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/cliui/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/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "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": { + "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/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/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/compression/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==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "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/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "dependencies": { + "bluebird": "^3.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "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==" + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/copy-webpack-plugin": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz", + "integrity": "sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^11.0.3", + "normalize-path": "^3.0.0", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent/node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-webpack-plugin/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/copy-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "dev": true, + "dependencies": { + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" + }, + "bin": { + "copyfiles": "copyfiles", + "copyup": "copyfiles" + } + }, + "node_modules/copyfiles/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/core-js": { + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.1.tgz", + "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.25.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.3.tgz", + "integrity": "sha512-xVtYpJQ5grszDHEUU9O7XbjjcZ0ccX3LgQsyqSvTnjX97ZqEgn9F5srmrwwwMtbKzDllyFPL+O+2OFMl1lU4TQ==", + "dependencies": { + "browserslist": "^4.21.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/crc32": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/crc32/-/crc32-0.2.2.tgz", + "integrity": "sha1-etIg1v/c0Rn5/BJ6d3LKzqOQpLo=", + "bin": { + "crc32": "bin/runner.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", + "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-functions-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", + "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "dev": true, + "engines": { + "node": ">=12.22" + } + }, + "node_modules/css-loader": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.2.tgz", + "integrity": "sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.18", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dev": true, + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-select": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "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==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.12", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.12.tgz", + "integrity": "sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ==", + "dependencies": { + "cssnano-preset-default": "^5.2.12", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", + "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "dependencies": { + "css-declaration-sorter": "^6.3.0", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.6", + "postcss-merge-rules": "^5.1.2", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", + "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==" + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "node_modules/deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/default-gateway/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/default-gateway/node_modules/execa": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-gateway/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defaults/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/deferred-leveldown": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", + "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", + "dependencies": { + "abstract-leveldown": "~6.2.1", + "inherits": "^2.0.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deferred-leveldown/node_modules/abstract-leveldown": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", + "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "dependencies": { + "buffer": "^5.5.0", + "immediate": "^3.2.3", + "level-concat-iterator": "~2.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deferred-leveldown/node_modules/level-concat-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", + "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/deferred-leveldown/node_modules/level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "dependencies": { + "xtend": "^4.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/deflate-js": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/deflate-js/-/deflate-js-0.2.3.tgz", + "integrity": "sha1-+Fq7WOvFFRowYUdHPVfD5PfkQms=", + "bin": { + "deflate-js": "bin/deflate.js", + "inflate-js": "bin/inflate.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz", + "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + }, + "node_modules/dns-packet": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/do-bulma": { + "version": "1.0.0", + "resolved": "git+ssh://git@github.com/do-community/do-bulma.git#f9d4ba92095b9b0cfd681a49ae0077318376d9ad", + "license": "Apache-2.0", + "dependencies": { + "bulma": "^0.9.4" + } + }, + "node_modules/do-vue": { + "version": "1.0.0", + "resolved": "git+ssh://git@github.com/do-community/do-vue.git#0077caf29213f4e0095c8ee2255b68245fe00d1b", + "license": "Apache-2.0", + "dependencies": { + "@svgr/webpack": "^6.5.1", + "assert": "^2.0.0", + "babel-loader": "^9.1.0", + "browserify-fs": "git+https://github.com/do-community/browserify-fs.git", + "buffer": "^6.0.3", + "constants-browserify": "^1.0.0", + "css-loader": "^6.7.2", + "css-minimizer-webpack-plugin": "^4.2.2", + "events": "^3.3.0", + "file-loader": "^6.2.0", + "html-loader": "^4.2.0", + "html-webpack-plugin": "^5.5.0", + "jsdom": "^20.0.3", + "mini-css-extract-plugin": "^2.7.0", + "node-fetch": "^3.3.0", + "path-browserify": "^1.0.1", + "posthtml": "^0.16.6", + "posthtml-expressions": "^1.10.0", + "posthtml-extend": "^0.6.3", + "posthtml-loader": "^2.0.1", + "pretty-checkbox-vue": "^1.1.9", + "process": "^0.11.10", + "request": "^2.88.2", + "resolve-url-loader": "^5.0.0", + "sass": "^1.56.1", + "sass-loader": "^13.2.0", + "stream-browserify": "3.0.0", + "ts-loader": "^9.4.1", + "typescript": "^4.9.3", + "util": "^0.12.5", + "vue": "^3.2.45", + "vue-loader": "^17.0.1", + "webpack": "^5.75.0", + "webpack-bundle-analyzer": "^4.7.0", + "webpack-dev-server": "^4.11.1", + "webpack-require-from": "^1.8.6", + "yaml-loader": "^0.8.0" + }, + "bin": { + "do-vue": "src/cli.js" + } + }, + "node_modules/do-vue/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/do-vue/node_modules/css-minimizer-webpack-plugin": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", + "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", + "dependencies": { + "cssnano": "^5.1.8", + "jest-worker": "^29.1.2", + "postcss": "^8.4.17", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + } + } + }, + "node_modules/do-vue/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/do-vue/node_modules/jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/do-vue/node_modules/mini-css-extract-plugin": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.0.tgz", + "integrity": "sha512-auqtVo8KhTScMsba7MbijqZTfibbXiBNlPAQbsVt7enQfcDYLdgG57eGxMqwVU3mfeWANY4F1wUg+rMF+ycZgw==", + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/do-vue/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/do-vue/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/duplicate-package-checker-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/duplicate-package-checker-webpack-plugin/-/duplicate-package-checker-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-aO50/qPC7X2ChjRFniRiscxBLT/K01bALqfcDaf8Ih5OqQ1N4iT/Abx9Ofu3/ms446vHTm46FACIuJUmgUQcDQ==", + "dev": true, + "dependencies": { + "chalk": "^2.3.0", + "find-root": "^1.0.0", + "lodash": "^4.17.4", + "semver": "^5.4.1" + } + }, + "node_modules/duplicate-package-checker-webpack-plugin/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/easy-stack": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.1.tgz", + "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.270", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", + "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", + "dev": true, + "dependencies": { + "stackframe": "^1.1.1" + } + }, + "node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract/node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", + "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "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.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.7.0.tgz", + "integrity": "sha512-DrOO3WZCZEwcLsnd3ohFwqCoipGRSTKTBTnLwdhqAbYZtzWl0o7D+D8ZhlmiZvABKTEl8AFsqH1GHGdybyoQmw==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.3.5", + "vue-eslint-parser": "^9.0.1", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/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/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/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/eslint/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/eslint/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/glob-parent/node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.16.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", + "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/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/node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/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/eslint/node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/espree": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "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==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz", + "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "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/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "engines": [ + "node >=0.6.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==" + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "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==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fclone": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", + "integrity": "sha512-GDqVQezKzRABdeqflsgMr7ktzgF9CyS+p2oe0jJqUY6izSSbhPIQJDpoU4PtGcD7VPM9xh/dVrTu6z1nwgmEGw==" + }, + "node_modules/fetch-blob": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", + "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/file-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/file-loader/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==" + }, + "node_modules/file-loader/node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/file-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/files-diff": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/files-diff/-/files-diff-0.0.6.tgz", + "integrity": "sha512-qf03b6nVKD1xqymd00+fFje5ANk71fxGttKu4vq8VcZThCVpipdrXs6oXf4R6e6T4+zPF/3+CmKM3FPCbgFkSg==", + "dependencies": { + "diff": "^5.0.0", + "escape-html": "^1.0.3", + "string-similarity": "^4.0.4" + } + }, + "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/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/finalhandler/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", + "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "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/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/fwd-stream": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fwd-stream/-/fwd-stream-1.0.4.tgz", + "integrity": "sha1-7Sgcq+1G/uz5Ie4y3ExQs3KsfPo=", + "dependencies": { + "readable-stream": "~1.0.26-4" + } + }, + "node_modules/fwd-stream/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "node_modules/fwd-stream/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/fwd-stream/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "dev": true + }, + "node_modules/good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "dependencies": { + "delegate": "^3.1.2" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/gzip-js": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/gzip-js/-/gzip-js-0.3.2.tgz", + "integrity": "sha1-IxF+/usozzhSSN7/Df+tiUg22Ws=", + "dependencies": { + "crc32": ">= 0.2.2", + "deflate-js": ">= 0.2.2" + }, + "bin": { + "gunzip-js": "bin/gunzip.js", + "gzip-js": "bin/gzip.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/har-validator/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==" + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==" + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "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": "*" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-entities": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", + "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/html-loader": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-4.2.0.tgz", + "integrity": "sha512-OxCHD3yt+qwqng2vvcaPApCEvbx+nXWu+v69TYHx1FO8bffHn/JjHtE3TTQZmHjwvnJe4xxzuecetDVBrQR1Zg==", + "dependencies": { + "html-minifier-terser": "^7.0.0", + "parse5": "^7.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/html-loader/node_modules/clean-css": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", + "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/html-loader/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==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/html-loader/node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/html-loader/node_modules/html-minifier-terser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.0.0.tgz", + "integrity": "sha512-Adqk0b/pWKIQiGvEAuzPKpBKNHiwblr3QSGS7TTr6v+xXKV9AI2k4vWW+6Oytt6Z5SeBnfvYypKOnz8r75pz3Q==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "5.2.0", + "commander": "^9.4.0", + "entities": "^4.3.1", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.14.2" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/html-loader/node_modules/parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-tags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/htmlparser2/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/htmlparser2/node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/htmlparser2/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/htmlparser2/node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/htmlparser2/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "node_modules/htmlparser2/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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/husky": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", + "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", + "dev": true, + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.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==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" + }, + "node_modules/immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz", + "integrity": "sha1-OzSixI81mXLzUEKEkZOucmS2NWI=", + "engines": { + "node": "*" + } + }, + "node_modules/is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-file-esm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-file-esm/-/is-file-esm-1.0.0.tgz", + "integrity": "sha512-rZlaNKb4Mr8WlRu2A9XdeoKgnO5aA53XdPHgCKVyCrQ/rWi89RET1+bq37Ru46obaQXeiX4vmFIm1vks41hoSA==", + "dev": true, + "dependencies": { + "read-pkg-up": "^7.0.1" + } + }, + "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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "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-json": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", + "integrity": "sha1-a+Fm0USCihMdaGiRuYPfYsOUkf8=" + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-object": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-0.1.2.tgz", + "integrity": "sha1-AO+8CIFsM8/ErIJR0TLhDcZQmNc=" + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", + "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "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/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/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/istanbul-lib-report/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/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==" + }, + "node_modules/jest": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz", + "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==", + "dev": true, + "dependencies": { + "@jest/core": "^29.3.1", + "@jest/types": "^29.3.1", + "import-local": "^3.0.2", + "jest-cli": "^29.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.2.0.tgz", + "integrity": "sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-changed-files/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/jest-changed-files/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/jest-changed-files/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/jest-circus": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz", + "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "p-limit": "^3.1.0", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/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/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/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/jest-circus/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/jest-circus/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/jest-circus/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-circus/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/jest-cli": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz", + "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==", + "dev": true, + "dependencies": { + "@jest/core": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-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==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-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==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-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==", + "dev": true + }, + "node_modules/jest-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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/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/jest-cli/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/jest-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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-cli/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/jest-config": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz", + "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.3.1", + "@jest/types": "^29.3.1", + "babel-jest": "^29.3.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.3.1", + "jest-environment-node": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/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/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/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/jest-config/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/jest-config/node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-config/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/jest-config/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/jest-diff": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", + "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/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/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/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/jest-docblock": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.2.0.tgz", + "integrity": "sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz", + "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.3.1", + "chalk": "^4.0.0", + "jest-get-type": "^29.2.0", + "jest-util": "^29.3.1", + "pretty-format": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each/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/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/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/jest-each/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/jest-each/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/jest-each/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/jest-environment-jsdom": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.3.1.tgz", + "integrity": "sha512-G46nKgiez2Gy4zvYNhayfMEAFlVHhWfncqvqS6yCd0i+a4NsSUD2WtrKSaYQrYiLQaupHXxCRi8xxVL2M9PbhA==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/jsdom": "^20.0.0", + "@types/node": "*", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1", + "jsdom": "^20.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jest-environment-node": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz", + "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", + "dev": true, + "dependencies": { + "@jest/types": "^29.3.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-haste-map/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/jest-haste-map/node_modules/jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz", + "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", + "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils/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/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-message-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", + "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.3.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/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/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/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/jest-message-util/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/jest-message-util/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/jest-message-util/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/jest-mock": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", + "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-util": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", + "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", + "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz", + "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.2.0", + "jest-snapshot": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve/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/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-runner": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz", + "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.3.1", + "@jest/environment": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.2.0", + "jest-environment-node": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-leak-detector": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-resolve": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-util": "^29.3.1", + "jest-watcher": "^29.3.1", + "jest-worker": "^29.3.1", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/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/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/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/jest-runner/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/jest-runner/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/jest-runner/node_modules/jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runner/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/jest-runtime": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz", + "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/globals": "^29.3.1", + "@jest/source-map": "^29.2.0", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/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/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-snapshot": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", + "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.3.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-haste-map": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "natural-compare": "^1.4.0", + "pretty-format": "^29.3.1", + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/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/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/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/jest-snapshot/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/jest-snapshot/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/jest-snapshot/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/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/jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "dependencies": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/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": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/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/jest-util/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/jest-util/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/jest-util/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/jest-util/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/jest-validate": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", + "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", + "dev": true, + "dependencies": { + "@jest/types": "^29.3.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.2.0", + "leven": "^3.1.0", + "pretty-format": "^29.3.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/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/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/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/jest-watcher": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz", + "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.3.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-watcher/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/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-watcher/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/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/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/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/joi": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", + "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "dev": true, + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-message": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.7.tgz", + "integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==", + "dev": true, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "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==" + }, + "node_modules/js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "node_modules/jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/jsdom/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsdom/node_modules/parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/jsdom/node_modules/tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsdom/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "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": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "node_modules/json-to-pretty-yaml": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz", + "integrity": "sha1-9M0L0KXo/h3yWq9boRiwmf2ZLVs=", + "dependencies": { + "remedial": "^1.0.7", + "remove-trailing-spaces": "^1.0.6" + }, + "engines": { + "node": ">= 0.2.0" + } + }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/known-css-properties": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz", + "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", + "dev": true + }, + "node_modules/launch-editor": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.3.0.tgz", + "integrity": "sha512-3QrsCXejlWYHjBPFXTyGNhPj4rrQdB+5+r5r3wArpLH201aR+nWUgw/zKKkTmilCfY/sv6u8qo98pNvtg8LUTA==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.6.1" + } + }, + "node_modules/launch-editor-middleware": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.3.0.tgz", + "integrity": "sha512-GJR64trLdFFwCoL9DMn/d1SZX0OzTDPixu4mcfWTShQ4tIqCHCGvlg9fOEYQXyBlrSMQwylsJfUWncheShfV2w==", + "dev": true, + "dependencies": { + "launch-editor": "^2.3.0" + } + }, + "node_modules/level-blobs": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/level-blobs/-/level-blobs-0.1.7.tgz", + "integrity": "sha1-mrm5e7mfHtv594o0M+Ie1WOGva8=", + "dependencies": { + "level-peek": "1.0.6", + "once": "^1.3.0", + "readable-stream": "^1.0.26-4" + } + }, + "node_modules/level-blobs/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "node_modules/level-blobs/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/level-blobs/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "node_modules/level-concat-iterator": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", + "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", + "dependencies": { + "catering": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/level-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "dependencies": { + "errno": "~0.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/level-filesystem": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/level-filesystem/-/level-filesystem-1.2.0.tgz", + "integrity": "sha1-oArKmRnEpN+v3KaoEI0iWq3/Y7M=", + "dependencies": { + "concat-stream": "^1.4.4", + "errno": "^0.1.1", + "fwd-stream": "^1.0.4", + "level-blobs": "^0.1.7", + "level-peek": "^1.0.6", + "level-sublevel": "^5.2.0", + "octal": "^1.0.0", + "once": "^1.3.0", + "xtend": "^2.2.0" + } + }, + "node_modules/level-filesystem/node_modules/xtend": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", + "integrity": "sha1-7vax8ZjByN6vrYsXZaBNrUoBxak=", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/level-fix-range": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-1.0.2.tgz", + "integrity": "sha1-vxW5Fa422EcMgh6IPd95zRZCCCg=" + }, + "node_modules/level-hooks": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/level-hooks/-/level-hooks-4.5.0.tgz", + "integrity": "sha1-G5rmGSKTDzMF0aYfxNg8gQLA3ZM=", + "dependencies": { + "string-range": "~1.2" + } + }, + "node_modules/level-iterator-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", + "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.4.0", + "xtend": "^4.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/level-iterator-stream/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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/level-js": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/level-js/-/level-js-6.1.0.tgz", + "integrity": "sha512-i7mPtkZm68aewfv0FnIUWvFUFfoyzIvVKnUmuQGrelEkP72vSPTaA1SGneWWoCV5KZJG4wlzbJLp1WxVNGuc6A==", + "dependencies": { + "abstract-leveldown": "^7.2.0", + "buffer": "^6.0.3", + "inherits": "^2.0.3", + "ltgt": "^2.1.2", + "run-parallel-limit": "^1.1.0" + } + }, + "node_modules/level-js/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/level-peek": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/level-peek/-/level-peek-1.0.6.tgz", + "integrity": "sha1-vsUccqgu5GTTNkNMfIdsP8vM538=", + "dependencies": { + "level-fix-range": "~1.0.2" + } + }, + "node_modules/level-sublevel": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-5.2.3.tgz", + "integrity": "sha1-dEwSxy0ucr543eO5tc2E1iGRQTo=", + "dependencies": { + "level-fix-range": "2.0", + "level-hooks": ">=4.4.0 <5", + "string-range": "~1.2.1", + "xtend": "~2.0.4" + } + }, + "node_modules/level-sublevel/node_modules/clone": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz", + "integrity": "sha1-YT+2hjmyaklKxTJT4Vsaa9iK2oU=", + "engines": { + "node": "*" + } + }, + "node_modules/level-sublevel/node_modules/level-fix-range": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-2.0.0.tgz", + "integrity": "sha1-xBfWIVlEIVGhnZojZ4aPFyTC1Ug=", + "dependencies": { + "clone": "~0.1.9" + } + }, + "node_modules/level-sublevel/node_modules/object-keys": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz", + "integrity": "sha1-zd7AKZiwkb5CvxA1rjLknxy26mc=", + "deprecated": "Please update to the latest object-keys", + "dependencies": { + "foreach": "~2.0.1", + "indexof": "~0.0.1", + "is": "~0.2.6" + } + }, + "node_modules/level-sublevel/node_modules/xtend": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.0.6.tgz", + "integrity": "sha1-XqZXptukRwacLlnFihE4ywxebO4=", + "dependencies": { + "is-object": "~0.1.2", + "object-keys": "~0.2.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/level-supports": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", + "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/levelup": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", + "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", + "dependencies": { + "deferred-leveldown": "~5.3.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~4.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/levelup/node_modules/level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "dependencies": { + "xtend": "^4.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + }, + "node_modules/lint-staged": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.0.3.tgz", + "integrity": "sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==", + "dev": true, + "dependencies": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.17", + "commander": "^9.3.0", + "debug": "^4.3.4", + "execa": "^6.1.0", + "lilconfig": "2.0.5", + "listr2": "^4.0.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.2", + "pidtree": "^0.6.0", + "string-argv": "^0.3.1", + "yaml": "^2.1.1" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/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==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/lint-staged/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/lint-staged/node_modules/execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "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", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/lint-staged/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/lint-staged/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==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/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/lint-staged/node_modules/npm-run-path/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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/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/lint-staged/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/lint-staged/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lint-staged/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/lint-staged/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==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/lint-staged/node_modules/yaml": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.3.tgz", + "integrity": "sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/listr2": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz", + "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==", + "dev": true, + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.5", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/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/listr2/node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/cli-truncate/node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/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/listr2/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/listr2/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/listr2/node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/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/loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", + "dev": true + }, + "node_modules/lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "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": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "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": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "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": ">=8" + } + }, + "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": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/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_modules/log-update/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/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/log-update/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "dev": true, + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "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==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", + "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "dependencies": { + "fs-monkey": "1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/memory-tar-create": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/memory-tar-create/-/memory-tar-create-0.0.3.tgz", + "integrity": "sha512-o+i8IoCP7RO6NEj5+md9hNC2Tp0a9dx9GHq7PG2JeyiFzqJ7hOAAdO0ZukKTujs/hbrjEB7rZYlsmxf5jTO1hA==", + "dependencies": { + "Base64": "^1.1.0", + "gzip-js": "^0.3.2", + "tarts": "^1.0.0" + } + }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.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==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz", + "integrity": "sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "webpack-sources": "^1.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/mini-css-extract-plugin/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/mini-css-extract-plugin/node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minimist-options/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": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/module-alias": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.2.tgz", + "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "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==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", + "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + }, + "node_modules/noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + } + }, + "node_modules/noms/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/noms/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/noms/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==" + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/octal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/octal/-/octal-1.0.0.tgz", + "integrity": "sha1-Y+cWKmjvvrniE1iNWOmJ0eXEUws=" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.0.9", + "resolved": "https://registry.npmjs.org/open/-/open-8.0.9.tgz", + "integrity": "sha512-vbCrqMav3K8mCCy8NdK4teUky0tpDrBbuiDLduCdVhc5oA9toJMip9rBkuwdwSI9E7NOkz4VkLWPi8DD2MP1gQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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": { + "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/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": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "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": ">=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/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/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", + "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "dependencies": { + "@types/retry": "^0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/postcss": { + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "dependencies": { + "browserslist": "^4.20.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "dev": true + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", + "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "dependencies": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "dependencies": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "dev": true + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-scss": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.5.tgz", + "integrity": "sha512-F7xpB6TrXyqUh3GKdyB4Gkp3QL3DDW1+uI+gxx/oJnUt/qXI4trj5OGlp9rOKdoABGULuqtqeG+3HEVQk4DjmA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-scss" + } + ], + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "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==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-sorting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-7.0.1.tgz", + "integrity": "sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==", + "dev": true, + "peerDependencies": { + "postcss": "^8.3.9" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "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/posthtml": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", + "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", + "dependencies": { + "posthtml-parser": "^0.11.0", + "posthtml-render": "^3.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/posthtml-expressions": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/posthtml-expressions/-/posthtml-expressions-1.10.0.tgz", + "integrity": "sha512-c8njTjfqkDNhfx/ItK1N2D16Y2SNJ5fxH1+sOrP3FdMWiJxDBhDoR7gj3NU0jWFkbV+VSIn/asLcp9c8aI7WRQ==", + "dependencies": { + "fclone": "^1.0.11", + "posthtml-match-helper": "^1.0.1", + "posthtml-parser": "^0.10.0", + "posthtml-render": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/posthtml-extend": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/posthtml-extend/-/posthtml-extend-0.6.3.tgz", + "integrity": "sha512-HHihY8/kZQ9iHEa0oLPBOHRejAmBP5fe8nw0WdJ80pulzMqLXzSBVfIW2QJ4wX5Kxo3WEQCaMgkEE9WNCNrEjg==", + "dependencies": { + "deepmerge": "^4.2.2", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.11.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/posthtml-extend/node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posthtml-extend/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/posthtml-extend/node_modules/htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "node_modules/posthtml-extend/node_modules/posthtml-parser": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", + "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml-load-config": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/posthtml-load-config/-/posthtml-load-config-2.0.0.tgz", + "integrity": "sha512-HqHQbE19mOl7JrLGweDqbh+CAydjsQCdKd9P8d9RMH1PKq33uO1oSIOF1f5DL7Oda9zsekrr4GYytjTbG7Fm1w==", + "dependencies": { + "cosmiconfig": "^2.1.0", + "posthtml-load-options": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/posthtml-load-config/node_modules/cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "dependencies": { + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/posthtml-load-config/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posthtml-load-config/node_modules/require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posthtml-load-options": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/posthtml-load-options/-/posthtml-load-options-1.0.0.tgz", + "integrity": "sha1-X5pvP/wCQmmDQcN2Gde8M3/smEQ=", + "dependencies": { + "cosmiconfig": "^2.1.0" + }, + "engines": { + "node": ">=4", + "npm": ">=3" + } + }, + "node_modules/posthtml-load-options/node_modules/cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "dependencies": { + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/posthtml-load-options/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posthtml-load-options/node_modules/require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posthtml-loader": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/posthtml-loader/-/posthtml-loader-2.0.1.tgz", + "integrity": "sha512-LHKltaInZK5au7gYGTmtgM++5+v5hYjYlaktPx+/4QTwD7y4krKG0Upy8T0TnE2YLNdzABIQ0Qds7DoeQYcIqw==", + "dependencies": { + "loader-utils": "^2.0.0", + "posthtml": "^0.13.3", + "posthtml-load-config": "^2.0.0", + "schema-utils": "^2.5.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/posthtml-loader/node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/posthtml-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/posthtml-loader/node_modules/posthtml": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.13.4.tgz", + "integrity": "sha512-i2oTo/+dwXGC6zaAQSF6WZEQSbEqu10hsvg01DWzGAfZmy31Iiy9ktPh9nnXDfZiYytjxTIvxoK4TI0uk4QWpw==", + "dependencies": { + "posthtml-parser": "^0.5.0", + "posthtml-render": "^1.2.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/posthtml-loader/node_modules/posthtml-parser": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.5.3.tgz", + "integrity": "sha512-uHosRn0y+1wbnlYKrqMjBPoo/kK5LPYImLtiETszNFYfFwAD3cQdD1R2E13Mh5icBxkHj+yKtlIHozCsmVWD/Q==", + "dependencies": { + "htmlparser2": "^3.9.2" + }, + "engines": { + "node": ">=10.0.0" + }, + "funding": { + "type": "patreon", + "url": "https://opencollective.com/posthtml" + } + }, + "node_modules/posthtml-loader/node_modules/posthtml-render": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.4.0.tgz", + "integrity": "sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/posthtml-match-helper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/posthtml-match-helper/-/posthtml-match-helper-1.0.3.tgz", + "integrity": "sha512-aeRAPvok2Fs6uzSm85665jdAk5UOd8US2QCkWtGU6yLPlKSwzWTSgZZuABc3UeNy3K1lVk/HV9bRkWJYN05Ymw==", + "peerDependencies": { + "posthtml": ">=0.5.0" + } + }, + "node_modules/posthtml-parser": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz", + "integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==", + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml-parser/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/posthtml-parser/node_modules/htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "node_modules/posthtml-render": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", + "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", + "dependencies": { + "is-json": "^2.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/posthtml/node_modules/htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "node_modules/posthtml/node_modules/posthtml-parser": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", + "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true, + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-checkbox": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pretty-checkbox/-/pretty-checkbox-3.0.3.tgz", + "integrity": "sha1-1JyAE6j8CO4MLW695FNGS/28Qo4=" + }, + "node_modules/pretty-checkbox-vue": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/pretty-checkbox-vue/-/pretty-checkbox-vue-1.1.9.tgz", + "integrity": "sha512-45HOanzF+BUTD5prwCoNrtEFYVzWtASTIIPtPQxGCajC097pFD/9mbyjEjoTsu8Tk4/rSyA7RNk6JpFWVHpLag==", + "dependencies": { + "pretty-checkbox": "^3.0.3" + }, + "peerDependencies": { + "vue": "^2.2.0" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/progress-webpack-plugin": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/progress-webpack-plugin/-/progress-webpack-plugin-1.0.12.tgz", + "integrity": "sha512-b0dMK6D7pFicDzSdh+sU0p/gp3n5QAGwjPbgacmYB/eVQpayzf9lKTQLYMnTAbk69fKoXSoVNl/+IkobJblL1A==", + "dev": true, + "dependencies": { + "chalk": "^2.1.0", + "figures": "^2.0.0", + "log-update": "^2.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/progress-webpack-plugin/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/progress-webpack-plugin/node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "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/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", + "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + }, + "node_modules/regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "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/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remedial": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/remedial/-/remedial-1.0.8.tgz", + "integrity": "sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==", + "engines": { + "node": "*" + } + }, + "node_modules/remove-trailing-spaces": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz", + "integrity": "sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==" + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/renderkid/node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "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": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/run-parallel-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", + "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", + "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/rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "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==", + "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/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.56.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", + "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", + "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": ">=12.0.0" + } + }, + "node_modules/sass-loader": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.0.tgz", + "integrity": "sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg==", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/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==" + }, + "node_modules/select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/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/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/simple-js-sha2-256": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/simple-js-sha2-256/-/simple-js-sha2-256-1.0.7.tgz", + "integrity": "sha512-Z5dUk/kYx3NlkrNTe2tE+a01eVagNmbZ2Sc2wfqCdYjVe6LSs/xZ1UlI0eLKSfMVCjNWz7J+nKwX/7S6JX9aNw==" + }, + "node_modules/sirv": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.11.tgz", + "integrity": "sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg==", + "dependencies": { + "@polka/url": "^1.0.0-next.9", + "mime": "^2.3.1", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-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==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-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==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-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==", + "dev": true + }, + "node_modules/slice-ansi/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/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", + "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==", + "dev": true + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-browserify/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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "dev": true, + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-range": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/string-range/-/string-range-1.2.2.tgz", + "integrity": "sha1-qJPtNH5yKZvIO++78qaSqNI51d0=" + }, + "node_modules/string-similarity": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-4.0.4.tgz", + "integrity": "sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==" + }, + "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, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "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_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": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "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", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "dev": true + }, + "node_modules/stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "dependencies": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/stylelint": { + "version": "14.15.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.15.0.tgz", + "integrity": "sha512-JOgDAo5QRsqiOZPZO+B9rKJvBm64S0xasbuRPAbPs6/vQDgDCnZLIiw6XcAS6GQKk9k1sBWR6rmH3Mfj8OknKg==", + "dev": true, + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^7.1.0", + "css-functions-list": "^3.1.0", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^6.0.1", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.2.0", + "ignore": "^5.2.0", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.26.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.19", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.3.0", + "svg-tags": "^1.0.0", + "table": "^6.8.1", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.2" + }, + "bin": { + "stylelint": "bin/stylelint.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz", + "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==", + "dev": true, + "peerDependencies": { + "stylelint": "^14.10.0" + } + }, + "node_modules/stylelint-config-recommended-scss": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-8.0.0.tgz", + "integrity": "sha512-BxjxEzRaZoQb7Iinc3p92GS6zRdRAkIuEu2ZFLTxJK2e1AIcCb5B5MXY9KOXdGTnYFZ+KKx6R4Fv9zU6CtMYPQ==", + "dev": true, + "dependencies": { + "postcss-scss": "^4.0.2", + "stylelint-config-recommended": "^9.0.0", + "stylelint-scss": "^4.0.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^14.10.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-config-standard": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-29.0.0.tgz", + "integrity": "sha512-uy8tZLbfq6ZrXy4JKu3W+7lYLgRQBxYTUUB88vPgQ+ZzAxdrvcaSUW9hOMNLYBnwH+9Kkj19M2DHdZ4gKwI7tg==", + "dev": true, + "dependencies": { + "stylelint-config-recommended": "^9.0.0" + }, + "peerDependencies": { + "stylelint": "^14.14.0" + } + }, + "node_modules/stylelint-config-standard-scss": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-6.1.0.tgz", + "integrity": "sha512-iZ2B5kQT2G3rUzx+437cEpdcnFOQkwnwqXuY8Z0QUwIHQVE8mnYChGAquyKFUKZRZ0pRnrciARlPaR1RBtPb0Q==", + "dev": true, + "dependencies": { + "stylelint-config-recommended-scss": "^8.0.0", + "stylelint-config-standard": "^29.0.0" + }, + "peerDependencies": { + "postcss": "^8.3.3", + "stylelint": "^14.14.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + } + } + }, + "node_modules/stylelint-order": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-5.0.0.tgz", + "integrity": "sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==", + "dev": true, + "dependencies": { + "postcss": "^8.3.11", + "postcss-sorting": "^7.0.1" + }, + "peerDependencies": { + "stylelint": "^14.0.0" + } + }, + "node_modules/stylelint-scss": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.3.0.tgz", + "integrity": "sha512-GvSaKCA3tipzZHoz+nNO7S02ZqOsdBzMiCx9poSmLlb3tdJlGddEX/8QzCOD8O7GQan9bjsvLMsO5xiw6IhhIQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.21", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.6", + "postcss-value-parser": "^4.1.0" + }, + "peerDependencies": { + "stylelint": "^14.5.1" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/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/stylelint/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/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/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/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/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "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==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/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/table/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/tapable": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tarts": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tarts/-/tarts-1.0.0.tgz", + "integrity": "sha512-w9WFDCa4Pd1CRYdWMXEHAhQMC8+wAUugFINRv8/2v+wjBOSShwtfls0y0pssRks0jW/CvvarMumlIbOkvt7+ZA==" + }, + "node_modules/terser": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "dependencies": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/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==" + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "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": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/thread-loader": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-3.0.4.tgz", + "integrity": "sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA==", + "dev": true, + "dependencies": { + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.1.0", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.27.0 || ^5.0.0" + } + }, + "node_modules/thread-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/thread-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/thread-loader/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/thread-loader/node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/thread-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/thread-loader/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "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": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, + "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/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-loader": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.1.tgz", + "integrity": "sha512-384TYAqGs70rn9F0VBnh6BPTfhga7yFNdC5gXbQpDrBj9/KsT4iRkGqKXhziofHOlE2j6YEaiTYVGKKvPhGWvw==", + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/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": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ts-loader/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/ts-loader/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/ts-loader/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/ts-loader/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/ts-loader/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-loader/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/tslib": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "node_modules/typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", + "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vue": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.45.tgz", + "integrity": "sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==", + "dependencies": { + "@vue/compiler-dom": "3.2.45", + "@vue/compiler-sfc": "3.2.45", + "@vue/runtime-dom": "3.2.45", + "@vue/server-renderer": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.0.3.tgz", + "integrity": "sha512-yL+ZDb+9T0ELG4VIFo/2anAOz8SvBdlqEnQnvJ3M7Scq56DvtjY0VY88bByRZB0D4J0u8olBcfrXTVONXsh4og==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "node_modules/vue-i18n": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz", + "integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==", + "dependencies": { + "@intlify/core-base": "9.2.2", + "@intlify/shared": "9.2.2", + "@intlify/vue-devtools": "9.2.2", + "@vue/devtools-api": "^6.2.1" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-loader": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.0.1.tgz", + "integrity": "sha512-/OOyugJnImKCkAKrAvdsWMuwoCqGxWT5USLsjohzWbMgOwpA5wQmzQiLMzZd7DjhIfunzAGIApTOgIylz/kwcg==", + "dependencies": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "peerDependencies": { + "webpack": "^4.1.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "@vue/compiler-sfc": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/vue-loader/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": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/vue-loader/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/vue-loader/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/vue-loader/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/vue-loader/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/vue-loader/node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/vue-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/vue-loader/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/vue-select": { + "version": "4.0.0-beta.6", + "resolved": "https://registry.npmjs.org/vue-select/-/vue-select-4.0.0-beta.6.tgz", + "integrity": "sha512-K+zrNBSpwMPhAxYLTCl56gaMrWZGgayoWCLqe5rWwkB8aUbAUh7u6sXjIR7v4ckp2WKC7zEEUY27g6h1MRsIHw==", + "peerDependencies": { + "vue": "3.x" + } + }, + "node_modules/vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "dev": true, + "dependencies": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "node_modules/vue-style-loader/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "node_modules/vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "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, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", + "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/webpack": { + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz", + "integrity": "sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==", + "dependencies": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/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": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/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/webpack-bundle-analyzer/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/webpack-bundle-analyzer/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/webpack-bundle-analyzer/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==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-bundle-analyzer/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/webpack-bundle-analyzer/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/webpack-chain": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.1.tgz", + "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", + "dev": true, + "dependencies": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", + "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.1", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz", + "integrity": "sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-require-from": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/webpack-require-from/-/webpack-require-from-1.8.6.tgz", + "integrity": "sha512-QmRsOkOYPKeNXp4uVc7qxnPrFQPrP4bhOc/gl4QenTFNgXdEbF1U8VC+jM/Sljb0VzJLNgyNiHlVkuHjcmDtBQ==", + "peerDependencies": { + "tapable": "^2.2.0" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz", + "integrity": "sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==", + "dev": true + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/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==" + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack/node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding/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": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "dev": true + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", + "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/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/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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/wrap-ansi/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/wrap-ansi/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/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "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/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yaml-loader": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/yaml-loader/-/yaml-loader-0.8.0.tgz", + "integrity": "sha512-LjeKnTzVBKWiQBeE2L9ssl6WprqaUIxCSNs5tle8PaDydgu3wVFXTbMfsvF2MSErpy9TDVa092n4q6adYwJaWg==", + "dependencies": { + "javascript-stringify": "^2.0.1", + "loader-utils": "^2.0.0", + "yaml": "^2.0.0" + }, + "engines": { + "node": ">= 12.13" + } + }, + "node_modules/yaml-loader/node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yaml-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/yaml-loader/node_modules/yaml": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", + "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/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/yargs/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/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@achrinza/node-ipc": { + "version": "9.2.5", + "resolved": "https://registry.npmjs.org/@achrinza/node-ipc/-/node-ipc-9.2.5.tgz", + "integrity": "sha512-kBX7Ay911iXZ3VZ1pYltj3Rfu7Ow9H7sK4H4RSfWIfWR2JKNB40K808wppoRIEzE2j2hXLU+r6TJgCAliCGhyQ==", + "dev": true, + "requires": { + "@node-ipc/js-queue": "2.0.3", + "event-pubsub": "4.3.0", + "js-message": "1.0.7" + } + }, + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==" + }, + "@babel/core": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", + "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.2", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.1", + "@babel/parser": "^7.20.2", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/eslint-parser": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", + "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", + "dev": true, + "requires": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", + "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", + "requires": { + "@babel/types": "^7.20.2", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz", + "integrity": "sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "requires": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz", + "integrity": "sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", + "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.1.0" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "requires": { + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-replace-supers": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "requires": { + "@babel/types": "^7.20.2" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", + "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "requires": { + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" + }, + "@babel/helper-wrap-function": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", + "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", + "requires": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + } + }, + "@babel/helpers": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", + "requires": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "@babel/parser": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "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.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", + "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", + "requires": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.1" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", + "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "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==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz", + "integrity": "sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", + "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", + "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "requires": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "requires": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "requires": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "requires": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.19.1" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", + "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz", + "integrity": "sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz", + "integrity": "sha512-KS/G8YI8uwMGKErLFOHS/ekhqdHhpEloxs43NecQHVgo2QuQSyJhGIY1fL8UGl9wy5ItVwwoUL4YxVqsplGq2g==", + "requires": { + "@babel/helper-plugin-utils": "^7.20.2" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.19.0" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "requires": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", + "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "regenerator-transform": "^0.15.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz", + "integrity": "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.20.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/preset-env": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", + "requires": { + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@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.20.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + } + }, + "@babel/preset-typescript": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", + "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-typescript": "^7.18.6" + } + }, + "@babel/runtime": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", + "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", + "requires": { + "regenerator-runtime": "^0.13.10" + } + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", + "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@csstools/selector-specificity": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "dev": true, + "requires": {} + }, + "@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "globals": { + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "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 + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true + }, + "@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@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 + }, + "@intlify/core-base": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz", + "integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==", + "requires": { + "@intlify/devtools-if": "9.2.2", + "@intlify/message-compiler": "9.2.2", + "@intlify/shared": "9.2.2", + "@intlify/vue-devtools": "9.2.2" + } + }, + "@intlify/devtools-if": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz", + "integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==", + "requires": { + "@intlify/shared": "9.2.2" + } + }, + "@intlify/message-compiler": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz", + "integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==", + "requires": { + "@intlify/shared": "9.2.2", + "source-map": "0.6.1" + } + }, + "@intlify/shared": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.2.2.tgz", + "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==" + }, + "@intlify/vue-devtools": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz", + "integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==", + "requires": { + "@intlify/core-base": "9.2.2", + "@intlify/shared": "9.2.2" + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz", + "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==", + "dev": true, + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "slash": "^3.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz", + "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==", + "dev": true, + "requires": { + "@jest/console": "^29.3.1", + "@jest/reporters": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.2.0", + "jest-config": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-resolve-dependencies": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "jest-watcher": "^29.3.1", + "micromatch": "^4.0.4", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/environment": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", + "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-mock": "^29.3.1" + } + }, + "@jest/expect": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", + "dev": true, + "requires": { + "expect": "^29.3.1", + "jest-snapshot": "^29.3.1" + } + }, + "@jest/expect-utils": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", + "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", + "dev": true, + "requires": { + "jest-get-type": "^29.2.0" + } + }, + "@jest/fake-timers": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", + "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", + "dev": true, + "requires": { + "@jest/types": "^29.3.1", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" + } + }, + "@jest/globals": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", + "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", + "dev": true, + "requires": { + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/types": "^29.3.1", + "jest-mock": "^29.3.1" + } + }, + "@jest/reporters": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz", + "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/source-map": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.2.0.tgz", + "integrity": "sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.15", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz", + "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==", + "dev": true, + "requires": { + "@jest/console": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz", + "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==", + "dev": true, + "requires": { + "@jest/test-result": "^29.3.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", + "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.3.1", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/types": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@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==" + }, + "@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==" + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, + "@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "requires": { + "eslint-scope": "5.1.1" + } + }, + "@node-ipc/js-queue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@node-ipc/js-queue/-/js-queue-2.0.3.tgz", + "integrity": "sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==", + "dev": true, + "requires": { + "easy-stack": "1.0.1" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@polka/url": { + "version": "1.0.0-next.12", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.12.tgz", + "integrity": "sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ==" + }, + "@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==", + "dev": true + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true + }, + "@sinclair/typebox": { + "version": "0.24.44", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.44.tgz", + "integrity": "sha512-ka0W0KN5i6LfrSocduwliMMpqVgohtPFidKdMEOUjoOFCHcOOYkKsPRxfs5f15oPNHTm6ERAm0GV/+/LTKeiWg==" + }, + "@sinonjs/commons": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", + "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@soda/friendly-errors-webpack-plugin": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz", + "integrity": "sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "error-stack-parser": "^2.0.6", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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 + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@soda/get-current-script": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@soda/get-current-script/-/get-current-script-1.0.2.tgz", + "integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==", + "dev": true + }, + "@svgr/babel-plugin-add-jsx-attribute": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", + "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "requires": {} + }, + "@svgr/babel-plugin-remove-jsx-attribute": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz", + "integrity": "sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA==", + "requires": {} + }, + "@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz", + "integrity": "sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw==", + "requires": {} + }, + "@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", + "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "requires": {} + }, + "@svgr/babel-plugin-svg-dynamic-title": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", + "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "requires": {} + }, + "@svgr/babel-plugin-svg-em-dimensions": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", + "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "requires": {} + }, + "@svgr/babel-plugin-transform-react-native-svg": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", + "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "requires": {} + }, + "@svgr/babel-plugin-transform-svg-component": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", + "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "requires": {} + }, + "@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "requires": { + "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", + "@svgr/babel-plugin-remove-jsx-attribute": "*", + "@svgr/babel-plugin-remove-jsx-empty-expression": "*", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", + "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", + "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", + "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", + "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + } + }, + "@svgr/core": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "requires": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.1" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + } + } + }, + "@svgr/hast-util-to-babel-ast": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", + "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "requires": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + }, + "dependencies": { + "entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==" + } + } + }, + "@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "requires": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/hast-util-to-babel-ast": "^6.5.1", + "svg-parser": "^2.0.4" + } + }, + "@svgr/plugin-svgo": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", + "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "requires": { + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "svgo": "^2.8.0" + }, + "dependencies": { + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + } + } + }, + "@svgr/webpack": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", + "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", + "requires": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-constant-elements": "^7.18.12", + "@babel/preset-env": "^7.19.4", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@svgr/core": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "@svgr/plugin-svgo": "^6.5.1" + } + }, + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" + }, + "@types/babel__core": { + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", + "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "requires": { + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/eslint": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", + "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + }, + "@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz", + "integrity": "sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA==", + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jsdom": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.0.tgz", + "integrity": "sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + }, + "dependencies": { + "entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "dev": true + }, + "parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "dev": true, + "requires": { + "entities": "^4.4.0" + } + } + } + }, + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" + }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "@types/node": { + "version": "14.14.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.14.tgz", + "integrity": "sha512-UHnOPWVWV1z+VV8k6L1HhG7UbGBgIdghqF3l9Ny9ApPghbjICXkUJSd/b9gOgQfjM1r+37cipdw/HJ3F6ICEnQ==" + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", + "dev": true + }, + "@types/qs": { + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA==" + }, + "@types/range-parser": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", + "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" + }, + "@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + }, + "@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "requires": { + "@types/node": "*" + } + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/tough-cookie": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", + "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", + "dev": true + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "requires": { + "@types/node": "*" + } + }, + "@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + }, + "@vue/cli-overlay": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-5.0.8.tgz", + "integrity": "sha512-KmtievE/B4kcXp6SuM2gzsnSd8WebkQpg3XaB6GmFh1BJGRqa1UiW9up7L/Q67uOdTigHxr5Ar2lZms4RcDjwQ==", + "dev": true + }, + "@vue/cli-plugin-router": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-5.0.8.tgz", + "integrity": "sha512-Gmv4dsGdAsWPqVijz3Ux2OS2HkMrWi1ENj2cYL75nUeL+Xj5HEstSqdtfZ0b1q9NCce+BFB6QnHfTBXc/fCvMg==", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^5.0.8" + } + }, + "@vue/cli-plugin-vuex": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-5.0.8.tgz", + "integrity": "sha512-HSYWPqrunRE5ZZs8kVwiY6oWcn95qf/OQabwLfprhdpFWAGtLStShjsGED2aDpSSeGAskQETrtR/5h7VqgIlBA==", + "dev": true, + "requires": {} + }, + "@vue/cli-service": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-5.0.8.tgz", + "integrity": "sha512-nV7tYQLe7YsTtzFrfOMIHc5N2hp5lHG2rpYr0aNja9rNljdgcPZLyQRb2YRivTHqTv7lI962UXFURcpStHgyFw==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.12.16", + "@soda/friendly-errors-webpack-plugin": "^1.8.0", + "@soda/get-current-script": "^1.0.2", + "@types/minimist": "^1.2.0", + "@vue/cli-overlay": "^5.0.8", + "@vue/cli-plugin-router": "^5.0.8", + "@vue/cli-plugin-vuex": "^5.0.8", + "@vue/cli-shared-utils": "^5.0.8", + "@vue/component-compiler-utils": "^3.3.0", + "@vue/vue-loader-v15": "npm:vue-loader@^15.9.7", + "@vue/web-component-wrapper": "^1.3.0", + "acorn": "^8.0.5", + "acorn-walk": "^8.0.2", + "address": "^1.1.2", + "autoprefixer": "^10.2.4", + "browserslist": "^4.16.3", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "cli-highlight": "^2.1.10", + "clipboardy": "^2.3.0", + "cliui": "^7.0.4", + "copy-webpack-plugin": "^9.0.1", + "css-loader": "^6.5.0", + "css-minimizer-webpack-plugin": "^3.0.2", + "cssnano": "^5.0.0", + "debug": "^4.1.1", + "default-gateway": "^6.0.3", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "fs-extra": "^9.1.0", + "globby": "^11.0.2", + "hash-sum": "^2.0.0", + "html-webpack-plugin": "^5.1.0", + "is-file-esm": "^1.0.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.1", + "lodash.mapvalues": "^4.6.0", + "mini-css-extract-plugin": "^1.6.2", + "minimist": "^1.2.5", + "module-alias": "^2.2.2", + "portfinder": "^1.0.26", + "postcss": "^8.2.6", + "postcss-loader": "^6.1.1", + "progress-webpack-plugin": "^1.0.12", + "ssri": "^8.0.1", + "terser-webpack-plugin": "^5.1.1", + "thread-loader": "^3.0.0", + "vue-loader": "^17.0.0", + "vue-style-loader": "^4.1.3", + "webpack": "^5.54.0", + "webpack-bundle-analyzer": "^4.4.0", + "webpack-chain": "^6.5.1", + "webpack-dev-server": "^4.7.3", + "webpack-merge": "^5.7.3", + "webpack-virtual-modules": "^0.4.2", + "whatwg-fetch": "^3.6.2" + }, + "dependencies": { + "fs-extra": { + "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, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "@vue/cli-shared-utils": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-5.0.8.tgz", + "integrity": "sha512-uK2YB7bBVuQhjOJF+O52P9yFMXeJVj7ozqJkwYE9PlMHL1LMHjtCYm4cSdOebuPzyP+/9p0BimM/OqxsevIopQ==", + "dev": true, + "requires": { + "@achrinza/node-ipc": "^9.2.5", + "chalk": "^4.1.2", + "execa": "^1.0.0", + "joi": "^17.4.0", + "launch-editor": "^2.2.1", + "lru-cache": "^6.0.0", + "node-fetch": "^2.6.7", + "open": "^8.0.2", + "ora": "^5.3.0", + "read-pkg": "^5.1.1", + "semver": "^7.3.4", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, + "@vue/compiler-core": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.45.tgz", + "integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz", + "integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==", + "requires": { + "@vue/compiler-core": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz", + "integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.45", + "@vue/compiler-dom": "3.2.45", + "@vue/compiler-ssr": "3.2.45", + "@vue/reactivity-transform": "3.2.45", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz", + "integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==", + "requires": { + "@vue/compiler-dom": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "@vue/component-compiler-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", + "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==", + "dev": true, + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.36", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2 || ^2.0.0", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "@vue/devtools-api": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.2.tgz", + "integrity": "sha512-6hNZ23h1M2Llky+SIAmVhL7s6BjLtZBCzjIz9iRSBUsysjE7kC39ulW0dH4o/eZtycmSt4qEr6RDVGTIuWu+ow==" + }, + "@vue/reactivity": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.45.tgz", + "integrity": "sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==", + "requires": { + "@vue/shared": "3.2.45" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz", + "integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.45", + "@vue/shared": "3.2.45", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.45.tgz", + "integrity": "sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==", + "requires": { + "@vue/reactivity": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "@vue/runtime-dom": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.45.tgz", + "integrity": "sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==", + "requires": { + "@vue/runtime-core": "3.2.45", + "@vue/shared": "3.2.45", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.45.tgz", + "integrity": "sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==", + "requires": { + "@vue/compiler-ssr": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "@vue/shared": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.45.tgz", + "integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==" + }, + "@vue/vue-loader-v15": { + "version": "npm:vue-loader@15.9.8", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.8.tgz", + "integrity": "sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog==", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + } + } + }, + "@vue/web-component-wrapper": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz", + "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" + }, + "abstract-leveldown": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz", + "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==", + "requires": { + "buffer": "^6.0.3", + "catering": "^2.0.0", + "is-buffer": "^2.0.5", + "level-concat-iterator": "^3.0.0", + "level-supports": "^2.0.1", + "queue-microtask": "^1.2.3" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + } + } + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==" + }, + "acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "requires": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "requires": {} + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", + "dev": true + }, + "adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "dependencies": { + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "requires": { + "ajv": "^8.0.0" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "ansi-escapes": { + "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, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "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 + } + } + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", + "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "requires": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "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 + }, + "autoprefixer": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", + "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", + "dev": true, + "requires": { + "browserslist": "^4.19.1", + "caniuse-lite": "^1.0.30001297", + "fraction.js": "^4.1.2", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "babel-jest": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz", + "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==", + "dev": true, + "requires": { + "@jest/transform": "^29.3.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.2.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "babel-loader": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.0.tgz", + "integrity": "sha512-Antt61KJPinUMwHwIIz9T5zfMgevnfZkEVWYDWlG888fgdvRRGD0JTuf/fFozQnfT+uq64sk1bmdHDy/mOEWnA==", + "requires": { + "find-cache-dir": "^3.3.2", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz", + "integrity": "sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz", + "integrity": "sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^29.2.0", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "Base64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/Base64/-/Base64-1.1.0.tgz", + "integrity": "sha512-qeacf8dvGpf+XAT27ESHMh7z84uRzj/ua2pQdJg483m3bEXv/kVFtDnMgvf70BQGqzbZhR9t6BmASzKvqfJf3Q==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "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, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "bonjour-service": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz", + "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==", + "requires": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserify-fs": { + "version": "git+ssh://git@github.com/do-community/browserify-fs.git#09496c2ac56a3d07ac7edb051e6ebc910add3a2d", + "integrity": "sha512-jVWtKSMHTi14oxu2dYFe2pa+xuREWhvj4QyjdyLR49rv9kkWXzXlWj4p5Z328vXp04FoBm/Vp4hRaKVgwU5Kiw==", + "from": "browserify-fs@git+https://github.com/do-community/browserify-fs.git", + "requires": { + "level-filesystem": "^1.0.1", + "level-js": "^6.0.0", + "levelup": "^4.4.0" + } + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "bulma": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.9.4.tgz", + "integrity": "sha512-86FlT5+1GrsgKbPLRRY7cGDg8fsJiP/jzTqXXVqiUZZ2aZT8uemEOHlU1CDU+TxklPEZ11HZNNWclRBBecP4CQ==" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "caniuse-api": { + "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==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001414", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", + "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==" + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "catering": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", + "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==" + }, + "chalk": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.1.2.tgz", + "integrity": "sha512-E5CkT4jWURs1Vy5qGJye+XwCkNj7Od3Af7CP6SujMetSMkLs8Do2RWJK5yx1wamHV/op8Rz+9rltjaTQWDnEFQ==", + "dev": true + }, + "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 + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.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" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" + }, + "ci-info": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.4.0.tgz", + "integrity": "sha512-t5QdPT5jq3o262DOQ8zA6E1tlH2upmUc4Hlvrbx1pGYJuiiHl7O7rvVNI+l8HTVhd/q3Qc9vqimkNk5yiXsAug==" + }, + "cjs-module-lexer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "clean-css": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", + "integrity": "sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==", + "requires": { + "source-map": "~0.6.0" + } + }, + "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 + }, + "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, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "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, + "requires": { + "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" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true + }, + "cli-truncate": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", + "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", + "dev": true, + "requires": { + "slice-ansi": "^5.0.0", + "string-width": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true + }, + "slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + } + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dev": true, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + } + }, + "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, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "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 + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "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==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "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==" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==" + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "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==" + } + } + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "copy-webpack-plugin": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz", + "integrity": "sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA==", + "dev": true, + "requires": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^11.0.3", + "normalize-path": "^3.0.0", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "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, + "requires": { + "is-glob": "^4.0.3" + }, + "dependencies": { + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, + "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 + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "dev": true, + "requires": { + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "core-js": { + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.1.tgz", + "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==", + "dev": true + }, + "core-js-compat": { + "version": "3.25.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.3.tgz", + "integrity": "sha512-xVtYpJQ5grszDHEUU9O7XbjjcZ0ccX3LgQsyqSvTnjX97ZqEgn9F5srmrwwwMtbKzDllyFPL+O+2OFMl1lU4TQ==", + "requires": { + "browserslist": "^4.21.4" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "crc32": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/crc32/-/crc32-0.2.2.tgz", + "integrity": "sha1-etIg1v/c0Rn5/BJ6d3LKzqOQpLo=" + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "css-declaration-sorter": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", + "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", + "requires": {} + }, + "css-functions-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", + "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "dev": true + }, + "css-loader": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.2.tgz", + "integrity": "sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q==", + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.18", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "dependencies": { + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dev": true, + "requires": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "css-select": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^5.1.0", + "domhandler": "^4.3.0", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssnano": { + "version": "5.1.12", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.12.tgz", + "integrity": "sha512-TgvArbEZu0lk/dvg2ja+B7kYoD7BBCmn3+k58xD0qjrGHsFzXY/wKTo9M5egcUCabPol05e/PVoIu79s2JN4WQ==", + "requires": { + "cssnano-preset-default": "^5.2.12", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-default": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", + "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "requires": { + "css-declaration-sorter": "^6.3.0", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.6", + "postcss-merge-rules": "^5.1.2", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + } + }, + "cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "requires": {} + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "requires": { + "css-tree": "^1.1.2" + } + }, + "cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==" + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + } + } + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-uri-to-buffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz", + "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==" + }, + "data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "requires": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + } + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } + } + }, + "decimal.js": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==" + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "dev": true + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "requires": { + "execa": "^5.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "dev": true, + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true + } + } + }, + "deferred-leveldown": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz", + "integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==", + "requires": { + "abstract-leveldown": "~6.2.1", + "inherits": "^2.0.3" + }, + "dependencies": { + "abstract-leveldown": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz", + "integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==", + "requires": { + "buffer": "^5.5.0", + "immediate": "^3.2.3", + "level-concat-iterator": "~2.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + } + }, + "level-concat-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz", + "integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==" + }, + "level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "requires": { + "xtend": "^4.0.2" + } + } + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "deflate-js": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/deflate-js/-/deflate-js-0.2.3.tgz", + "integrity": "sha1-+Fq7WOvFFRowYUdHPVfD5PfkQms=" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" + }, + "diff-sequences": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz", + "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + }, + "dns-packet": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "do-bulma": { + "version": "git+ssh://git@github.com/do-community/do-bulma.git#f9d4ba92095b9b0cfd681a49ae0077318376d9ad", + "from": "do-bulma@https://github.com/do-community/do-bulma", + "requires": { + "bulma": "^0.9.4" + } + }, + "do-vue": { + "version": "git+ssh://git@github.com/do-community/do-vue.git#0077caf29213f4e0095c8ee2255b68245fe00d1b", + "from": "do-vue@https://github.com/do-community/do-vue", + "requires": { + "@svgr/webpack": "^6.5.1", + "assert": "^2.0.0", + "babel-loader": "^9.1.0", + "browserify-fs": "git+https://github.com/do-community/browserify-fs.git", + "buffer": "^6.0.3", + "constants-browserify": "^1.0.0", + "css-loader": "^6.7.2", + "css-minimizer-webpack-plugin": "^4.2.2", + "events": "^3.3.0", + "file-loader": "^6.2.0", + "html-loader": "^4.2.0", + "html-webpack-plugin": "^5.5.0", + "jsdom": "^20.0.3", + "mini-css-extract-plugin": "^2.7.0", + "node-fetch": "^3.3.0", + "path-browserify": "^1.0.1", + "posthtml": "^0.16.6", + "posthtml-expressions": "^1.10.0", + "posthtml-extend": "^0.6.3", + "posthtml-loader": "^2.0.1", + "pretty-checkbox-vue": "^1.1.9", + "process": "^0.11.10", + "request": "^2.88.2", + "resolve-url-loader": "^5.0.0", + "sass": "^1.56.1", + "sass-loader": "^13.2.0", + "stream-browserify": "3.0.0", + "ts-loader": "^9.4.1", + "typescript": "^4.9.3", + "util": "^0.12.5", + "vue": "^3.2.45", + "vue-loader": "^17.0.1", + "webpack": "^5.75.0", + "webpack-bundle-analyzer": "^4.7.0", + "webpack-dev-server": "^4.11.1", + "webpack-require-from": "^1.8.6", + "yaml-loader": "^0.8.0" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "css-minimizer-webpack-plugin": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", + "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", + "requires": { + "cssnano": "^5.1.8", + "jest-worker": "^29.1.2", + "postcss": "^8.4.17", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "requires": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "mini-css-extract-plugin": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.0.tgz", + "integrity": "sha512-auqtVo8KhTScMsba7MbijqZTfibbXiBNlPAQbsVt7enQfcDYLdgG57eGxMqwVU3mfeWANY4F1wUg+rMF+ycZgw==", + "requires": { + "schema-utils": "^4.0.0" + } + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + }, + "domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "requires": { + "webidl-conversions": "^7.0.0" + } + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "duplicate-package-checker-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/duplicate-package-checker-webpack-plugin/-/duplicate-package-checker-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-aO50/qPC7X2ChjRFniRiscxBLT/K01bALqfcDaf8Ih5OqQ1N4iT/Abx9Ofu3/ms446vHTm46FACIuJUmgUQcDQ==", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "find-root": "^1.0.0", + "lodash": "^4.17.4", + "semver": "^5.4.1" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } + } + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "easy-stack": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.1.tgz", + "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "electron-to-chromium": { + "version": "1.4.270", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", + "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==" + }, + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", + "dev": true, + "requires": { + "stackframe": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "dependencies": { + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + } + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + } + } + }, + "eslint": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.28.0.tgz", + "integrity": "sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "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.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "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, + "requires": { + "is-glob": "^4.0.3" + }, + "dependencies": { + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, + "globals": { + "version": "13.16.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", + "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "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 + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "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 + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "eslint-plugin-vue": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.7.0.tgz", + "integrity": "sha512-DrOO3WZCZEwcLsnd3ohFwqCoipGRSTKTBTnLwdhqAbYZtzWl0o7D+D8ZhlmiZvABKTEl8AFsqH1GHGdybyoQmw==", + "dev": true, + "requires": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.3.5", + "vue-eslint-parser": "^9.0.1", + "xml-name-validator": "^4.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "esm": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", + "dev": true + }, + "espree": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz", + "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", + "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", + "dev": true, + "requires": { + "@jest/expect-utils": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1" + } + }, + "express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "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==" + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, + "fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "fclone": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", + "integrity": "sha512-GDqVQezKzRABdeqflsgMr7ktzgF9CyS+p2oe0jJqUY6izSSbhPIQJDpoU4PtGcD7VPM9xh/dVrTu6z1nwgmEGw==" + }, + "fetch-blob": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.1.4.tgz", + "integrity": "sha512-Eq5Xv5+VlSrYWEqKrusxY1C3Hm/hjeAsCGVG3ft7pZahlUAChpGZT/Ms1WmSLnEAisEXszjzu/s+ce6HZB2VHA==", + "requires": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "requires": {} + }, + "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==" + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "files-diff": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/files-diff/-/files-diff-0.0.6.tgz", + "integrity": "sha512-qf03b6nVKD1xqymd00+fFje5ANk71fxGttKu4vq8VcZThCVpipdrXs6oXf4R6e6T4+zPF/3+CmKM3FPCbgFkSg==", + "requires": { + "diff": "^5.0.0", + "escape-html": "^1.0.3", + "string-similarity": "^4.0.4" + } + }, + "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==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "requires": { + "fetch-blob": "^3.1.2" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fraction.js": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", + "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "fwd-stream": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fwd-stream/-/fwd-stream-1.0.4.tgz", + "integrity": "sha1-7Sgcq+1G/uz5Ie4y3ExQs3KsfPo=", + "requires": { + "readable-stream": "~1.0.26-4" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "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 + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "dev": true + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "requires": { + "delegate": "^3.1.2" + } + }, + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "gzip-js": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/gzip-js/-/gzip-js-0.3.2.tgz", + "integrity": "sha1-IxF+/usozzhSSN7/Df+tiUg22Ws=", + "requires": { + "crc32": ">= 0.2.2", + "deflate-js": ">= 0.2.2" + } + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "requires": { + "duplexer": "^0.1.2" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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==" + } + } + }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==" + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "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 + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "requires": { + "whatwg-encoding": "^2.0.0" + } + }, + "html-entities": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", + "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==" + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "html-loader": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-4.2.0.tgz", + "integrity": "sha512-OxCHD3yt+qwqng2vvcaPApCEvbx+nXWu+v69TYHx1FO8bffHn/JjHtE3TTQZmHjwvnJe4xxzuecetDVBrQR1Zg==", + "requires": { + "html-minifier-terser": "^7.0.0", + "parse5": "^7.0.0" + }, + "dependencies": { + "clean-css": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", + "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", + "requires": { + "source-map": "~0.6.0" + } + }, + "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==" + }, + "entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==" + }, + "html-minifier-terser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.0.0.tgz", + "integrity": "sha512-Adqk0b/pWKIQiGvEAuzPKpBKNHiwblr3QSGS7TTr6v+xXKV9AI2k4vWW+6Oytt6Z5SeBnfvYypKOnz8r75pz3Q==", + "requires": { + "camel-case": "^4.1.2", + "clean-css": "5.2.0", + "commander": "^9.4.0", + "entities": "^4.3.1", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.14.2" + } + }, + "parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "requires": { + "entities": "^4.4.0" + } + } + } + }, + "html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "requires": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + } + } + }, + "html-tags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "dev": true + }, + "html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "requires": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + } + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "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==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + } + } + }, + "http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, + "http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "husky": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.2.tgz", + "integrity": "sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "requires": {} + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" + }, + "immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz", + "integrity": "sha1-OzSixI81mXLzUEKEkZOucmS2NWI=" + }, + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" + } + }, + "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==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==" + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-file-esm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-file-esm/-/is-file-esm-1.0.0.tgz", + "integrity": "sha512-rZlaNKb4Mr8WlRu2A9XdeoKgnO5aA53XdPHgCKVyCrQ/rWi89RET1+bq37Ru46obaQXeiX4vmFIm1vks41hoSA==", + "dev": true, + "requires": { + "read-pkg-up": "^7.0.1" + } + }, + "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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "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 + }, + "is-json": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", + "integrity": "sha1-a+Fm0USCihMdaGiRuYPfYsOUkf8=" + }, + "is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-object": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-0.1.2.tgz", + "integrity": "sha1-AO+8CIFsM8/ErIJR0TLhDcZQmNc=" + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", + "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "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 + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==" + }, + "jest": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz", + "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==", + "dev": true, + "requires": { + "@jest/core": "^29.3.1", + "@jest/types": "^29.3.1", + "import-local": "^3.0.2", + "jest-cli": "^29.3.1" + } + }, + "jest-changed-files": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.2.0.tgz", + "integrity": "sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "jest-circus": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz", + "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==", + "dev": true, + "requires": { + "@jest/environment": "^29.3.1", + "@jest/expect": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "p-limit": "^3.1.0", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-cli": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz", + "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==", + "dev": true, + "requires": { + "@jest/core": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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 + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } + }, + "jest-config": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz", + "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.3.1", + "@jest/types": "^29.3.1", + "babel-jest": "^29.3.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.3.1", + "jest-environment-node": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-runner": "^29.3.1", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-diff": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", + "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.2.0.tgz", + "integrity": "sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz", + "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==", + "dev": true, + "requires": { + "@jest/types": "^29.3.1", + "chalk": "^4.0.0", + "jest-get-type": "^29.2.0", + "jest-util": "^29.3.1", + "pretty-format": "^29.3.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.3.1.tgz", + "integrity": "sha512-G46nKgiez2Gy4zvYNhayfMEAFlVHhWfncqvqS6yCd0i+a4NsSUD2WtrKSaYQrYiLQaupHXxCRi8xxVL2M9PbhA==", + "dev": true, + "requires": { + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/jsdom": "^20.0.0", + "@types/node": "*", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1", + "jsdom": "^20.0.0" + } + }, + "jest-environment-node": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz", + "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==", + "dev": true, + "requires": { + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-mock": "^29.3.1", + "jest-util": "^29.3.1" + } + }, + "jest-get-type": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", + "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==", + "dev": true + }, + "jest-haste-map": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", + "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", + "dev": true, + "requires": { + "@jest/types": "^29.3.1", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.2.0", + "jest-util": "^29.3.1", + "jest-worker": "^29.3.1", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "dependencies": { + "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 + }, + "jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-leak-detector": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz", + "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==", + "dev": true, + "requires": { + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" + } + }, + "jest-matcher-utils": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", + "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "pretty-format": "^29.3.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", + "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.3.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.3.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-mock": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", + "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", + "dev": true, + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "jest-util": "^29.3.1" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "29.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", + "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==", + "dev": true + }, + "jest-resolve": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", + "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.3.1", + "jest-validate": "^29.3.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz", + "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==", + "dev": true, + "requires": { + "jest-regex-util": "^29.2.0", + "jest-snapshot": "^29.3.1" + } + }, + "jest-runner": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz", + "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==", + "dev": true, + "requires": { + "@jest/console": "^29.3.1", + "@jest/environment": "^29.3.1", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.2.0", + "jest-environment-node": "^29.3.1", + "jest-haste-map": "^29.3.1", + "jest-leak-detector": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-resolve": "^29.3.1", + "jest-runtime": "^29.3.1", + "jest-util": "^29.3.1", + "jest-watcher": "^29.3.1", + "jest-worker": "^29.3.1", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "jest-worker": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.3.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-runtime": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz", + "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==", + "dev": true, + "requires": { + "@jest/environment": "^29.3.1", + "@jest/fake-timers": "^29.3.1", + "@jest/globals": "^29.3.1", + "@jest/source-map": "^29.2.0", + "@jest/test-result": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-mock": "^29.3.1", + "jest-regex-util": "^29.2.0", + "jest-resolve": "^29.3.1", + "jest-snapshot": "^29.3.1", + "jest-util": "^29.3.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-snapshot": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", + "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.3.1", + "@jest/transform": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.3.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.3.1", + "jest-get-type": "^29.2.0", + "jest-haste-map": "^29.3.1", + "jest-matcher-utils": "^29.3.1", + "jest-message-util": "^29.3.1", + "jest-util": "^29.3.1", + "natural-compare": "^1.4.0", + "pretty-format": "^29.3.1", + "semver": "^7.3.5" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-util": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", + "requires": { + "@jest/types": "^29.3.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-validate": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", + "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", + "dev": true, + "requires": { + "@jest/types": "^29.3.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.2.0", + "leven": "^3.1.0", + "pretty-format": "^29.3.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watcher": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz", + "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==", + "dev": true, + "requires": { + "@jest/test-result": "^29.3.1", + "@jest/types": "^29.3.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.3.1", + "string-length": "^4.0.1" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "joi": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", + "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "dev": true, + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "js-message": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.7.tgz", + "integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==", + "dev": true + }, + "js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "requires": { + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" + }, + "dependencies": { + "entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "requires": { + "entities": "^4.4.0" + } + }, + "tough-cookie": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + } + }, + "ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "requires": {} + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json-to-pretty-yaml": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz", + "integrity": "sha1-9M0L0KXo/h3yWq9boRiwmf2ZLVs=", + "requires": { + "remedial": "^1.0.7", + "remove-trailing-spaces": "^1.0.6" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "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==", + "dev": true + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "klona": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==" + }, + "known-css-properties": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz", + "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", + "dev": true + }, + "launch-editor": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.3.0.tgz", + "integrity": "sha512-3QrsCXejlWYHjBPFXTyGNhPj4rrQdB+5+r5r3wArpLH201aR+nWUgw/zKKkTmilCfY/sv6u8qo98pNvtg8LUTA==", + "dev": true, + "requires": { + "picocolors": "^1.0.0", + "shell-quote": "^1.6.1" + } + }, + "launch-editor-middleware": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.3.0.tgz", + "integrity": "sha512-GJR64trLdFFwCoL9DMn/d1SZX0OzTDPixu4mcfWTShQ4tIqCHCGvlg9fOEYQXyBlrSMQwylsJfUWncheShfV2w==", + "dev": true, + "requires": { + "launch-editor": "^2.3.0" + } + }, + "level-blobs": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/level-blobs/-/level-blobs-0.1.7.tgz", + "integrity": "sha1-mrm5e7mfHtv594o0M+Ie1WOGva8=", + "requires": { + "level-peek": "1.0.6", + "once": "^1.3.0", + "readable-stream": "^1.0.26-4" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "level-concat-iterator": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz", + "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==", + "requires": { + "catering": "^2.1.0" + } + }, + "level-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz", + "integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==", + "requires": { + "errno": "~0.1.1" + } + }, + "level-filesystem": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/level-filesystem/-/level-filesystem-1.2.0.tgz", + "integrity": "sha1-oArKmRnEpN+v3KaoEI0iWq3/Y7M=", + "requires": { + "concat-stream": "^1.4.4", + "errno": "^0.1.1", + "fwd-stream": "^1.0.4", + "level-blobs": "^0.1.7", + "level-peek": "^1.0.6", + "level-sublevel": "^5.2.0", + "octal": "^1.0.0", + "once": "^1.3.0", + "xtend": "^2.2.0" + }, + "dependencies": { + "xtend": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", + "integrity": "sha1-7vax8ZjByN6vrYsXZaBNrUoBxak=" + } + } + }, + "level-fix-range": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-1.0.2.tgz", + "integrity": "sha1-vxW5Fa422EcMgh6IPd95zRZCCCg=" + }, + "level-hooks": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/level-hooks/-/level-hooks-4.5.0.tgz", + "integrity": "sha1-G5rmGSKTDzMF0aYfxNg8gQLA3ZM=", + "requires": { + "string-range": "~1.2" + } + }, + "level-iterator-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz", + "integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.4.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "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==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "level-js": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/level-js/-/level-js-6.1.0.tgz", + "integrity": "sha512-i7mPtkZm68aewfv0FnIUWvFUFfoyzIvVKnUmuQGrelEkP72vSPTaA1SGneWWoCV5KZJG4wlzbJLp1WxVNGuc6A==", + "requires": { + "abstract-leveldown": "^7.2.0", + "buffer": "^6.0.3", + "inherits": "^2.0.3", + "ltgt": "^2.1.2", + "run-parallel-limit": "^1.1.0" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, + "level-peek": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/level-peek/-/level-peek-1.0.6.tgz", + "integrity": "sha1-vsUccqgu5GTTNkNMfIdsP8vM538=", + "requires": { + "level-fix-range": "~1.0.2" + } + }, + "level-sublevel": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-5.2.3.tgz", + "integrity": "sha1-dEwSxy0ucr543eO5tc2E1iGRQTo=", + "requires": { + "level-fix-range": "2.0", + "level-hooks": ">=4.4.0 <5", + "string-range": "~1.2.1", + "xtend": "~2.0.4" + }, + "dependencies": { + "clone": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz", + "integrity": "sha1-YT+2hjmyaklKxTJT4Vsaa9iK2oU=" + }, + "level-fix-range": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-2.0.0.tgz", + "integrity": "sha1-xBfWIVlEIVGhnZojZ4aPFyTC1Ug=", + "requires": { + "clone": "~0.1.9" + } + }, + "object-keys": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz", + "integrity": "sha1-zd7AKZiwkb5CvxA1rjLknxy26mc=", + "requires": { + "foreach": "~2.0.1", + "indexof": "~0.0.1", + "is": "~0.2.6" + } + }, + "xtend": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.0.6.tgz", + "integrity": "sha1-XqZXptukRwacLlnFihE4ywxebO4=", + "requires": { + "is-object": "~0.1.2", + "object-keys": "~0.2.0" + } + } + } + }, + "level-supports": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz", + "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==" + }, + "levelup": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz", + "integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==", + "requires": { + "deferred-leveldown": "~5.3.0", + "level-errors": "~2.0.0", + "level-iterator-stream": "~4.0.0", + "level-supports": "~1.0.0", + "xtend": "~4.0.0" + }, + "dependencies": { + "level-supports": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz", + "integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==", + "requires": { + "xtend": "^4.0.2" + } + } + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "lilconfig": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==" + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + }, + "lint-staged": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.0.3.tgz", + "integrity": "sha512-9hmrwSCFroTSYLjflGI8Uk+GWAwMB4OlpU4bMJEAT5d/llQwtYKoim4bLOyLCuWFAhWEupE0vkIFqtw/WIsPug==", + "dev": true, + "requires": { + "cli-truncate": "^3.1.0", + "colorette": "^2.0.17", + "commander": "^9.3.0", + "debug": "^4.3.4", + "execa": "^6.1.0", + "lilconfig": "2.0.5", + "listr2": "^4.0.5", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-inspect": "^1.12.2", + "pidtree": "^0.6.0", + "string-argv": "^0.3.1", + "yaml": "^2.1.1" + }, + "dependencies": { + "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==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", + "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^3.0.1", + "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", + "strip-final-newline": "^3.0.0" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "human-signals": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", + "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", + "dev": true + }, + "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 + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "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, + "requires": { + "path-key": "^4.0.0" + }, + "dependencies": { + "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 + } + } + }, + "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, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "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==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "yaml": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.3.tgz", + "integrity": "sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==", + "dev": true + } + } + }, + "listr2": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz", + "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==", + "dev": true, + "requires": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.5", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + } + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==" + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", + "dev": true + }, + "lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "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, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "dependencies": { + "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==", + "dev": true + }, + "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 + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "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 + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + } + } + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "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==", + "requires": { + "yallist": "^4.0.0" + } + }, + "ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=" + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true + }, + "mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "memfs": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", + "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "requires": { + "fs-monkey": "1.0.3" + } + }, + "memory-tar-create": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/memory-tar-create/-/memory-tar-create-0.0.3.tgz", + "integrity": "sha512-o+i8IoCP7RO6NEj5+md9hNC2Tp0a9dx9GHq7PG2JeyiFzqJ7hOAAdO0ZukKTujs/hbrjEB7rZYlsmxf5jTO1hA==", + "requires": { + "Base64": "^1.1.0", + "gzip-js": "^0.3.2", + "tarts": "^1.0.0" + } + }, + "meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz", + "integrity": "sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "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 + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "dependencies": { + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + } + } + }, + "minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "module-alias": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.2.tgz", + "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" + }, + "node-fetch": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.0.tgz", + "integrity": "sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==", + "requires": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + }, + "noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "requires": { + "boolbase": "^1.0.0" + } + }, + "nwsapi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "octal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/octal/-/octal-1.0.0.tgz", + "integrity": "sha1-Y+cWKmjvvrniE1iNWOmJ0eXEUws=" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.0.9", + "resolved": "https://registry.npmjs.org/open/-/open-8.0.9.tgz", + "integrity": "sha512-vbCrqMav3K8mCCy8NdK4teUky0tpDrBbuiDLduCdVhc5oA9toJMip9rBkuwdwSI9E7NOkz4VkLWPi8DD2MP1gQ==", + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==" + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "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, + "requires": { + "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" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", + "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "requires": { + "@types/retry": "^0.12.0", + "retry": "^0.13.1" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "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 + }, + "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, + "requires": { + "parse5": "^6.0.1" + }, + "dependencies": { + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + } + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true + }, + "pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "postcss": { + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "requires": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-convert-values": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "requires": { + "browserslist": "^4.20.3", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "requires": {} + }, + "postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "requires": {} + }, + "postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "requires": {} + }, + "postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "requires": {} + }, + "postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "dependencies": { + "klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "dev": true + }, + "postcss-merge-longhand": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", + "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "requires": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.0" + } + }, + "postcss-merge-rules": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "requires": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-params": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "requires": { + "browserslist": "^4.16.6", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "requires": {} + }, + "postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "requires": { + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "requires": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reduce-initial": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "dev": true + }, + "postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "requires": {} + }, + "postcss-scss": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.5.tgz", + "integrity": "sha512-F7xpB6TrXyqUh3GKdyB4Gkp3QL3DDW1+uI+gxx/oJnUt/qXI4trj5OGlp9rOKdoABGULuqtqeG+3HEVQk4DjmA==", + "dev": true, + "requires": {} + }, + "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==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-sorting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-7.0.1.tgz", + "integrity": "sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==", + "dev": true, + "requires": {} + }, + "postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "requires": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + } + }, + "postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "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==" + }, + "posthtml": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", + "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", + "requires": { + "posthtml-parser": "^0.11.0", + "posthtml-render": "^3.0.0" + }, + "dependencies": { + "entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==" + }, + "htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "posthtml-parser": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", + "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "requires": { + "htmlparser2": "^7.1.1" + } + } + } + }, + "posthtml-expressions": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/posthtml-expressions/-/posthtml-expressions-1.10.0.tgz", + "integrity": "sha512-c8njTjfqkDNhfx/ItK1N2D16Y2SNJ5fxH1+sOrP3FdMWiJxDBhDoR7gj3NU0jWFkbV+VSIn/asLcp9c8aI7WRQ==", + "requires": { + "fclone": "^1.0.11", + "posthtml-match-helper": "^1.0.1", + "posthtml-parser": "^0.10.0", + "posthtml-render": "^3.0.0" + } + }, + "posthtml-extend": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/posthtml-extend/-/posthtml-extend-0.6.3.tgz", + "integrity": "sha512-HHihY8/kZQ9iHEa0oLPBOHRejAmBP5fe8nw0WdJ80pulzMqLXzSBVfIW2QJ4wX5Kxo3WEQCaMgkEE9WNCNrEjg==", + "requires": { + "deepmerge": "^4.2.2", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.11.0" + }, + "dependencies": { + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, + "entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==" + }, + "htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "posthtml-parser": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", + "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "requires": { + "htmlparser2": "^7.1.1" + } + } + } + }, + "posthtml-load-config": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/posthtml-load-config/-/posthtml-load-config-2.0.0.tgz", + "integrity": "sha512-HqHQbE19mOl7JrLGweDqbh+CAydjsQCdKd9P8d9RMH1PKq33uO1oSIOF1f5DL7Oda9zsekrr4GYytjTbG7Fm1w==", + "requires": { + "cosmiconfig": "^2.1.0", + "posthtml-load-options": "^1.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" + } + } + }, + "posthtml-load-options": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/posthtml-load-options/-/posthtml-load-options-1.0.0.tgz", + "integrity": "sha1-X5pvP/wCQmmDQcN2Gde8M3/smEQ=", + "requires": { + "cosmiconfig": "^2.1.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" + } + } + }, + "posthtml-loader": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/posthtml-loader/-/posthtml-loader-2.0.1.tgz", + "integrity": "sha512-LHKltaInZK5au7gYGTmtgM++5+v5hYjYlaktPx+/4QTwD7y4krKG0Upy8T0TnE2YLNdzABIQ0Qds7DoeQYcIqw==", + "requires": { + "loader-utils": "^2.0.0", + "posthtml": "^0.13.3", + "posthtml-load-config": "^2.0.0", + "schema-utils": "^2.5.0" + }, + "dependencies": { + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "posthtml": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.13.4.tgz", + "integrity": "sha512-i2oTo/+dwXGC6zaAQSF6WZEQSbEqu10hsvg01DWzGAfZmy31Iiy9ktPh9nnXDfZiYytjxTIvxoK4TI0uk4QWpw==", + "requires": { + "posthtml-parser": "^0.5.0", + "posthtml-render": "^1.2.3" + } + }, + "posthtml-parser": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.5.3.tgz", + "integrity": "sha512-uHosRn0y+1wbnlYKrqMjBPoo/kK5LPYImLtiETszNFYfFwAD3cQdD1R2E13Mh5icBxkHj+yKtlIHozCsmVWD/Q==", + "requires": { + "htmlparser2": "^3.9.2" + } + }, + "posthtml-render": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.4.0.tgz", + "integrity": "sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==" + } + } + }, + "posthtml-match-helper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/posthtml-match-helper/-/posthtml-match-helper-1.0.3.tgz", + "integrity": "sha512-aeRAPvok2Fs6uzSm85665jdAk5UOd8US2QCkWtGU6yLPlKSwzWTSgZZuABc3UeNy3K1lVk/HV9bRkWJYN05Ymw==", + "requires": {} + }, + "posthtml-parser": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz", + "integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==", + "requires": { + "htmlparser2": "^7.1.1" + }, + "dependencies": { + "entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==" + }, + "htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + } + } + }, + "posthtml-render": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", + "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", + "requires": { + "is-json": "^2.0.1" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true, + "optional": true + }, + "pretty-checkbox": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pretty-checkbox/-/pretty-checkbox-3.0.3.tgz", + "integrity": "sha1-1JyAE6j8CO4MLW695FNGS/28Qo4=" + }, + "pretty-checkbox-vue": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/pretty-checkbox-vue/-/pretty-checkbox-vue-1.1.9.tgz", + "integrity": "sha512-45HOanzF+BUTD5prwCoNrtEFYVzWtASTIIPtPQxGCajC097pFD/9mbyjEjoTsu8Tk4/rSyA7RNk6JpFWVHpLag==", + "requires": { + "pretty-checkbox": "^3.0.3" + } + }, + "pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "requires": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "pretty-format": { + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", + "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", + "dev": true, + "requires": { + "@jest/schemas": "^29.0.0", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress-webpack-plugin": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/progress-webpack-plugin/-/progress-webpack-plugin-1.0.12.tgz", + "integrity": "sha512-b0dMK6D7pFicDzSdh+sU0p/gp3n5QAGwjPbgacmYB/eVQpayzf9lKTQLYMnTAbk69fKoXSoVNl/+IkobJblL1A==", + "dev": true, + "requires": { + "chalk": "^2.1.0", + "figures": "^2.0.0", + "log-update": "^2.1.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + } + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + } + } + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "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==" + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "regexpu-core": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", + "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + }, + "regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, + "remedial": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/remedial/-/remedial-1.0.8.tgz", + "integrity": "sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==" + }, + "remove-trailing-spaces": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz", + "integrity": "sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==" + }, + "renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + } + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "requires": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "dependencies": { + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, + "resolve.exports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "run-parallel-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", + "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "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==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sass": { + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", + "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sass-loader": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.0.tgz", + "integrity": "sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg==", + "requires": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + } + }, + "saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "requires": { + "xmlchars": "^2.2.0" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "requires": {} + }, + "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==" + } + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "requires": { + "node-forge": "^1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "simple-js-sha2-256": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/simple-js-sha2-256/-/simple-js-sha2-256-1.0.7.tgz", + "integrity": "sha512-Z5dUk/kYx3NlkrNTe2tE+a01eVagNmbZ2Sc2wfqCdYjVe6LSs/xZ1UlI0eLKSfMVCjNWz7J+nKwX/7S6JX9aNw==" + }, + "sirv": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.11.tgz", + "integrity": "sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg==", + "requires": { + "@polka/url": "^1.0.0-next.9", + "mime": "^2.3.1", + "totalist": "^1.0.0" + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + } + } + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "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==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "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==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", + "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + }, + "dependencies": { + "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==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "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==" + } + } + }, + "string-argv": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", + "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", + "dev": true + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-range": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/string-range/-/string-range-1.2.2.tgz", + "integrity": "sha1-qJPtNH5yKZvIO++78qaSqNI51d0=" + }, + "string-similarity": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-4.0.4.tgz", + "integrity": "sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==" + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "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 + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "dev": true + }, + "stylehacks": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "requires": { + "browserslist": "^4.16.6", + "postcss-selector-parser": "^6.0.4" + } + }, + "stylelint": { + "version": "14.15.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.15.0.tgz", + "integrity": "sha512-JOgDAo5QRsqiOZPZO+B9rKJvBm64S0xasbuRPAbPs6/vQDgDCnZLIiw6XcAS6GQKk9k1sBWR6rmH3Mfj8OknKg==", + "dev": true, + "requires": { + "@csstools/selector-specificity": "^2.0.2", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^7.1.0", + "css-functions-list": "^3.1.0", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^6.0.1", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.2.0", + "ignore": "^5.2.0", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.26.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.19", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.3.0", + "svg-tags": "^1.0.0", + "table": "^6.8.1", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.2" + }, + "dependencies": { + "balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "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 + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "stylelint-config-recommended": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz", + "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==", + "dev": true, + "requires": {} + }, + "stylelint-config-recommended-scss": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-8.0.0.tgz", + "integrity": "sha512-BxjxEzRaZoQb7Iinc3p92GS6zRdRAkIuEu2ZFLTxJK2e1AIcCb5B5MXY9KOXdGTnYFZ+KKx6R4Fv9zU6CtMYPQ==", + "dev": true, + "requires": { + "postcss-scss": "^4.0.2", + "stylelint-config-recommended": "^9.0.0", + "stylelint-scss": "^4.0.0" + } + }, + "stylelint-config-standard": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-29.0.0.tgz", + "integrity": "sha512-uy8tZLbfq6ZrXy4JKu3W+7lYLgRQBxYTUUB88vPgQ+ZzAxdrvcaSUW9hOMNLYBnwH+9Kkj19M2DHdZ4gKwI7tg==", + "dev": true, + "requires": { + "stylelint-config-recommended": "^9.0.0" + } + }, + "stylelint-config-standard-scss": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-6.1.0.tgz", + "integrity": "sha512-iZ2B5kQT2G3rUzx+437cEpdcnFOQkwnwqXuY8Z0QUwIHQVE8mnYChGAquyKFUKZRZ0pRnrciARlPaR1RBtPb0Q==", + "dev": true, + "requires": { + "stylelint-config-recommended-scss": "^8.0.0", + "stylelint-config-standard": "^29.0.0" + } + }, + "stylelint-order": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-5.0.0.tgz", + "integrity": "sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==", + "dev": true, + "requires": { + "postcss": "^8.3.11", + "postcss-sorting": "^7.0.1" + } + }, + "stylelint-scss": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.3.0.tgz", + "integrity": "sha512-GvSaKCA3tipzZHoz+nNO7S02ZqOsdBzMiCx9poSmLlb3tdJlGddEX/8QzCOD8O7GQan9bjsvLMsO5xiw6IhhIQ==", + "dev": true, + "requires": { + "lodash": "^4.17.21", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-selector-parser": "^6.0.6", + "postcss-value-parser": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + } + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "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 + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "tapable": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==" + }, + "tarts": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tarts/-/tarts-1.0.0.tgz", + "integrity": "sha512-w9WFDCa4Pd1CRYdWMXEHAhQMC8+wAUugFINRv8/2v+wjBOSShwtfls0y0pssRks0jW/CvvarMumlIbOkvt7+ZA==" + }, + "terser": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + }, + "terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "requires": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "requires": {} + }, + "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==" + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "thread-loader": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-3.0.4.tgz", + "integrity": "sha512-ByaL2TPb+m6yArpqQUZvP+5S1mZtXsEP7nWKKlAUTm7fCml8kB5s1uI3+eHRP2bk5mVYfRSBI7FFf+tWEyLZwA==", + "dev": true, + "requires": { + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.1.0", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "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 + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "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==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==" + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "requires": { + "punycode": "^2.1.1" + } + }, + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true + }, + "ts-loader": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.1.tgz", + "integrity": "sha512-384TYAqGs70rn9F0VBnh6BPTfhga7yFNdC5gXbQpDrBj9/KsT4iRkGqKXhziofHOlE2j6YEaiTYVGKKvPhGWvw==", + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "tslib": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", + "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==" + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" + }, + "unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" + }, + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", + "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "v8-to-istanbul": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", + "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vue": { + "version": "3.2.45", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.45.tgz", + "integrity": "sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==", + "requires": { + "@vue/compiler-dom": "3.2.45", + "@vue/compiler-sfc": "3.2.45", + "@vue/runtime-dom": "3.2.45", + "@vue/server-renderer": "3.2.45", + "@vue/shared": "3.2.45" + } + }, + "vue-eslint-parser": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.0.3.tgz", + "integrity": "sha512-yL+ZDb+9T0ELG4VIFo/2anAOz8SvBdlqEnQnvJ3M7Scq56DvtjY0VY88bByRZB0D4J0u8olBcfrXTVONXsh4og==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "vue-i18n": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz", + "integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==", + "requires": { + "@intlify/core-base": "9.2.2", + "@intlify/shared": "9.2.2", + "@intlify/vue-devtools": "9.2.2", + "@vue/devtools-api": "^6.2.1" + } + }, + "vue-loader": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.0.1.tgz", + "integrity": "sha512-/OOyugJnImKCkAKrAvdsWMuwoCqGxWT5USLsjohzWbMgOwpA5wQmzQiLMzZd7DjhIfunzAGIApTOgIylz/kwcg==", + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "vue-select": { + "version": "4.0.0-beta.6", + "resolved": "https://registry.npmjs.org/vue-select/-/vue-select-4.0.0-beta.6.tgz", + "integrity": "sha512-K+zrNBSpwMPhAxYLTCl56gaMrWZGgayoWCLqe5rWwkB8aUbAUh7u6sXjIR7v4ckp2WKC7zEEUY27g6h1MRsIHw==", + "requires": {} + }, + "vue-style-loader": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", + "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + }, + "dependencies": { + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + } + } + }, + "vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "requires": { + "xml-name-validator": "^4.0.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "web-streams-polyfill": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", + "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==" + }, + "webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" + }, + "webpack": { + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "requires": {} + }, + "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==" + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" + } + } + }, + "webpack-bundle-analyzer": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz", + "integrity": "sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==", + "requires": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "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==" + }, + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "webpack-chain": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.1.tgz", + "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", + "dev": true, + "requires": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^2.0.1" + } + }, + "webpack-dev-middleware": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", + "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.1", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "webpack-dev-server": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "dependencies": { + "ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "ws": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz", + "integrity": "sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==", + "requires": {} + } + } + }, + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-require-from": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/webpack-require-from/-/webpack-require-from-1.8.6.tgz", + "integrity": "sha512-QmRsOkOYPKeNXp4uVc7qxnPrFQPrP4bhOc/gl4QenTFNgXdEbF1U8VC+jM/Sljb0VzJLNgyNiHlVkuHjcmDtBQ==", + "requires": {} + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "webpack-virtual-modules": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz", + "integrity": "sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==", + "dev": true + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + }, + "whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "requires": { + "iconv-lite": "0.6.3" + }, + "dependencies": { + "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==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "dev": true + }, + "whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==" + }, + "whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "requires": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", + "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.7" + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "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==" + }, + "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, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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, + "requires": { + "color-name": "~1.1.4" + } + }, + "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 + }, + "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 + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "requires": {} + }, + "xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yaml-loader": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/yaml-loader/-/yaml-loader-0.8.0.tgz", + "integrity": "sha512-LjeKnTzVBKWiQBeE2L9ssl6WprqaUIxCSNs5tle8PaDydgu3wVFXTbMfsvF2MSErpy9TDVa092n4q6adYwJaWg==", + "requires": { + "javascript-stringify": "^2.0.1", + "loader-utils": "^2.0.0", + "yaml": "^2.0.0" + }, + "dependencies": { + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "yaml": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.1.1.tgz", + "integrity": "sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==" + } + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "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 + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "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 + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/nginx/nginxconfig.io/package.json b/nginx/nginxconfig.io/package.json new file mode 100644 index 00000000..85729837 --- /dev/null +++ b/nginx/nginxconfig.io/package.json @@ -0,0 +1,111 @@ +{ + "name": "nginxconfig.io", + "version": "1.0.0", + "description": "NGINX config generator on steroids", + "private": true, + "license": "MIT", + "engines": { + "node": "^16.17.1", + "npm": "^8.15.0" + }, + "main": "src/nginxconfig/mount.js", + "type": "module", + "scripts": { + "build": "npm run build:clean && npm run build:template && npm run build:prism && npm run build:static && npm run build:tool", + "build:clean": "do-vue clean", + "build:template": "do-vue template && node src/nginxconfig/build/template.js", + "build:prism": "node src/nginxconfig/build/prism.js", + "build:static": "copyfiles --up 2 src/static/{*,**/*} dist", + "build:tool": "vue-cli-service build src/nginxconfig/mount.js --no-clean", + "dev": "npm run build:template && npm run build:prism && npm run dev:tool", + "dev:tool": "vue-cli-service serve src/nginxconfig/mount.js", + "deploy:spaces:comment": "do-vue comment nginxconfig", + "test": "npm run test:eslint && npm run test:stylelint && npm run test:i18n-packs && npm run test:jest", + "test:jest": "jest --env=jsdom /test/.*.js?$", + "test:fix": "npm run test:eslint:fix", + "test:eslint": "eslint 'src/**/*.{js,vue}' --cache", + "test:eslint:fix": "npm run test:eslint -- --fix", + "test:stylelint": "stylelint 'src/**/*.scss' --config node_modules/do-bulma/.stylelintrc.json", + "test:i18n-packs": "node --es-module-specifier-resolution=node src/nginxconfig/i18n/verify.js", + "prepare": "husky install" + }, + "jest": { + "testRegex": "/test/.*.js?$" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/digitalocean/nginxconfig.io.git" + }, + "keywords": [ + "nginx" + ], + "author": "DigitalOcean", + "bugs": { + "url": "https://github.com/digitalocean/nginxconfig.io/issues" + }, + "homepage": "https://github.com/digitalocean/nginxconfig.io#readme", + "dependencies": { + "clipboard": "^2.0.11", + "clone": "^2.1.2", + "do-bulma": "github:do-community/do-bulma", + "do-vue": "github:do-community/do-vue", + "escape-html": "^1.0.3", + "files-diff": "0.0.6", + "json-to-pretty-yaml": "^1.2.2", + "memory-tar-create": "0.0.3", + "pretty-checkbox-vue": "^1.1.9", + "prismjs": "^1.29.0", + "qs": "^6.11.0", + "simple-js-sha2-256": "^1.0.7", + "vue": "^3.2.45", + "vue-i18n": "^9.2.2", + "vue-select": "^4.0.0-beta.6", + "webpack-require-from": "^1.8.6" + }, + "devDependencies": { + "@babel/eslint-parser": "^7.19.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.20.2", + "@babel/runtime": "^7.20.1", + "@vue/cli-service": "^5.0.8", + "ajv": "^8.11.2", + "chalk": "^5.1.2", + "copyfiles": "^2.4.1", + "core-js": "^3.26.1", + "duplicate-package-checker-webpack-plugin": "^3.0.0", + "eslint": "^8.28.0", + "eslint-plugin-vue": "^9.7.0", + "esm": "^3.2.25", + "husky": "^8.0.2", + "jest": "^29.3.1", + "jest-environment-jsdom": "^29.3.1", + "lint-staged": "^13.0.3", + "node-fetch": "^3.3.0", + "postcss": "^8.4.19", + "sass": "^1.56.1", + "sass-loader": "^13.2.0", + "stylelint": "^14.15.0", + "stylelint-config-standard-scss": "^6.1.0", + "stylelint-order": "^5.0.0", + "vue-template-compiler": "^2.7.14", + "webpack": "^5.75.0", + "webpack-bundle-analyzer": "^4.7.0" + }, + "lint-staged": { + "*.{js,vue}": [ + "eslint --quiet --cache --fix" + ], + "*.scss": [ + "stylelint --config node_modules/do-bulma/.stylelintrc.json --fix" + ] + }, + "overrides": { + "@vue/cli-service": { + "mini-css-extract-plugin": "^1.6.2" + }, + "pretty-checkbox-vue": { + "vue": "$vue" + } + } +} diff --git a/nginx/nginxconfig.io/src/nginxconfig/build/prism.js b/nginx/nginxconfig.io/src/nginxconfig/build/prism.js new file mode 100644 index 00000000..a4a8bac4 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/build/prism.js @@ -0,0 +1,45 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import { promises as fs } from 'fs'; +import { URL } from 'url'; +import fetch from 'node-fetch'; + +const main = async () => { + const resp = await fetch('https://assets.digitalocean.com/prism/prism.css'); + const text = await resp.text(); + + // Fix $676767 -> #676767 + const fixed = text.replace(/:\s*\$((?:[0-9a-fA-F]{3}){1,2});/g, ':#$1;'); + + const buildDir = '../../../build'; + await fs.writeFile(new URL(`${buildDir}/prism.css`, import.meta.url), fixed); +}; + +main().then(() => {}).catch(err => { + console.error(err); + process.exit(1); +}); diff --git a/nginx/nginxconfig.io/src/nginxconfig/build/template.js b/nginx/nginxconfig.io/src/nginxconfig/build/template.js new file mode 100644 index 00000000..af0cbdaa --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/build/template.js @@ -0,0 +1,44 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import fs from 'fs'; +import { URL } from 'url'; + +// Fetch the posthtml template and convert it to an ejs template +const main = () => { + const buildDir = '../../../build'; + let template = fs.readFileSync(new URL(`${buildDir}/base.html`, import.meta.url), 'utf8'); + + // Inject our title now + template = template.replace('DigitalOcean', 'NGINXConfig | DigitalOcean'); + + // Inject our app mounting point + template = template.replace('', '
'); + + fs.writeFileSync(new URL(`${buildDir}/index.html`, import.meta.url), template); +}; + +main(); diff --git a/nginx/nginxconfig.io/src/nginxconfig/build/webpack-dynamic-import.js b/nginx/nginxconfig.io/src/nginxconfig/build/webpack-dynamic-import.js new file mode 100644 index 00000000..71d07290 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/build/webpack-dynamic-import.js @@ -0,0 +1,33 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import { info } from '../util/log'; + +const originalSrcDir = document.currentScript.src.split('/').slice(0, -2).join('/') + '/'; +window.__webpackDynamicImportURL = () => { + info(`Using ${originalSrcDir} for webpack dynamic import`); + return originalSrcDir; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/conf/drupal.conf.js b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/drupal.conf.js new file mode 100644 index 00000000..fd20e6c7 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/drupal.conf.js @@ -0,0 +1,66 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default global => { + const config = {}; + + config['# Drupal: deny private files'] = ''; + config['location ~ ((^|/)\\.|^.*\\.yml$|^/sites/.*/private/|^/sites/[^/]+/[^/]*settings.*\\.php$)'] = { + deny: 'all', + return: '404', + }; + + config['# Drupal: deny php in files'] = ''; + config['location ~ ^/sites/[^/]+/files/.*\\.php$'] = { + deny: 'all', + }; + + config['# Drupal: deny php in vendor'] = ''; + config['location ~ /vendor/.*\\.php$'] = { + deny: 'all', + }; + + config['# Drupal: allow image styles to be handled by the CMS'] = ''; + config['location ~ ^/sites/[^/]+/files/styles/'] = { + try_files: '$uri /index.php?q=$uri&$args', + }; + + config['# Drupal: handle private files'] = ''; + config['location ~ ^(/[a-z\\-]+)?/system/files/'] = { + try_files: '$uri /index.php?$query_string', + }; + + if (global.security.limitReq.computed) { + config['# Drupal: throttle user functions'] = ''; + config['location ~ ^/user/(?:login|register|password)'] = { + limit_req: 'zone=login burst=2 nodelay', + try_files: '$uri /index.php?$query_string', + }; + } + + // Done! + return config; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/conf/general.conf.js b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/general.conf.js new file mode 100644 index 00000000..abd8fea0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/general.conf.js @@ -0,0 +1,131 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import { gzipTypes, extensions } from '../../util/types_extensions'; + +export default (domains, global) => { + const config = {}; + + config['# favicon.ico'] = ''; + config['location = /favicon.ico'] = { + log_not_found: 'off', + }; + + config['# robots.txt'] = ''; + config['location = /robots.txt'] = { + log_not_found: 'off', + }; + + if (global.performance.disableHtmlCaching.computed) { + // Disable HTML caching for changes take effect in time + config['# Disable HTML caching'] = ''; + const loc = `location ~* \\.(?:${extensions.html})$`; + config[loc] = { + add_header: 'Cache-Control "no-cache"', + }; + } + + + if (domains.every(d => d.routing.root.computed)) { + if (global.performance.assetsExpiration.computed === global.performance.mediaExpiration.computed) { + if (global.performance.assetsExpiration.computed) { + // Assets & media combined + config['# assets, media'] = ''; + const loc = `location ~* \\.(?:${extensions.assets}|${extensions.images}|${extensions.audio}|${extensions.video})$`; + config[loc] = { + expires: global.performance.assetsExpiration.computed, + }; + } + } else { + // Assets & media separately + if (global.performance.assetsExpiration.computed) { + config['# assets'] = ''; + const loc = `location ~* \\.(?:${extensions.assets})$`; + config[loc] = { + expires: global.performance.assetsExpiration.computed, + }; + } + + if (global.performance.mediaExpiration.computed) { + config['# media'] = ''; + const loc = `location ~* \\.(?:${extensions.images}|${extensions.audio}|${extensions.video})$`; + config[loc] = { + expires: global.performance.mediaExpiration.computed, + }; + } + } + + if (global.performance.svgExpiration.computed === global.performance.fontsExpiration.computed) { + if (global.performance.svgExpiration.computed) { + // SVG & fonts combined + config['# svg, fonts'] = ''; + const loc = `location ~* \\.(?:${extensions.svg}|${extensions.fonts})$`; + config[loc] = { + add_header: 'Access-Control-Allow-Origin "*"', + expires: global.performance.svgExpiration.computed, + }; + } + } else { + // SVG & fonts separately + if (global.performance.svgExpiration.computed) { + config['# svg'] = ''; + const loc = `location ~* \\.${extensions.svg}$`; + config[loc] = { + add_header: 'Access-Control-Allow-Origin "*"', + expires: global.performance.svgExpiration.computed, + }; + } + + if (global.performance.fontsExpiration.computed) { + config['# fonts'] = ''; + const loc = `location ~* \\.${extensions.fonts}$`; + config[loc] = { + add_header: 'Access-Control-Allow-Origin "*"', + expires: global.performance.fontsExpiration.computed, + }; + } + } + } + + if (global.performance.gzipCompression.computed) { + config['# gzip'] = ''; + config.gzip = 'on'; + config.gzip_vary = 'on'; + config.gzip_proxied = 'any'; + config.gzip_comp_level = 6; + config.gzip_types = gzipTypes; + } + + if (global.performance.brotliCompression.computed) { + config['# brotli'] = ''; + config.brotli = 'on'; + config.brotli_comp_level = 6; + config.brotli_types = gzipTypes; + } + + // Done! + return config; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/conf/joomla.conf.js b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/joomla.conf.js new file mode 100644 index 00000000..08ebe744 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/joomla.conf.js @@ -0,0 +1,49 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default () => { + const config = {}; + + config['# Joomla: deny running scripts inside writable directories'] = ''; + config['location ~* /(images|cache|media|logs|tmp)/.*\\.(php|pl|py|jsp|asp|sh|cgi)$'] = { + return: '403', + error_page: '403 /403_error.html', + }; + + config['# Joomla: caching of files'] = ''; + config['location ~* \\.(ico|pdf|flv)$'] = { + expires: '1y', + }; + + config['# Joomla: caching of files'] = ''; + config['location ~* \\.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$'] = { + expires: '14d', + }; + + + // Done! + return config; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/conf/letsencrypt.conf.js b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/letsencrypt.conf.js new file mode 100644 index 00000000..fa216b63 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/letsencrypt.conf.js @@ -0,0 +1,37 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default global => { + const config = {}; + + config['# ACME-challenge'] = ''; + config['location ^~ /.well-known/acme-challenge/'] = { + root: global.https.letsEncryptRoot.computed.replace(/\/+$/, ''), + }; + + // Done! + return config; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/conf/magento.conf.js b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/magento.conf.js new file mode 100644 index 00000000..8a3c7a36 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/magento.conf.js @@ -0,0 +1,115 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default () => { + const config = {}; + + config['# Magento: setup'] = ''; + config['location ^~ /setup'] = { + root: '$base', + + '# allow index.php': '', + 'location ~ ^/setup/index.php': { + include: 'nginxconfig.io/php_fastcgi.conf', + }, + + '# deny everything except pub': '', + 'location ~ ^/setup/(?!pub/).': { + deny: 'all', + }, + }; + + config['# Magento: update'] = ''; + config['location ^~ /update'] = { + root: '$base', + + '# allow index.php': '', + 'location ~ ^/update/index.php': { + include: 'nginxconfig.io/php_fastcgi.conf', + }, + + '# deny everything except pub': '', + 'location ~ ^/update/(?!pub/).': { + deny: 'all', + }, + }; + + config['# Magento: media files'] = ''; + config['location ^~ /media/'] = { + try_files: '$uri $uri/ /get.php?$args', + + 'location ~* \\.(?:ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$': { + expires: '+1y', + add_header: 'Cache-Control "public"', + try_files: '$uri $uri/ /get.php?$args', + }, + + 'location ~* \\.(?:zip|gz|gzip|bz2|csv|xml)$': { + expires: 'off', + add_header: 'Cache-Control "no-store"', + try_files: '$uri $uri/ /get.php?$args', + }, + + 'location ~ ^/media/theme_customization/.*\\.xml': { + deny: 'all', + }, + + 'location ~ ^/media/(?:customer|downloadable|import)/': { + deny: 'all', + }, + }; + + config['# Magento: static route'] = ''; + config['location @magento_static'] = { + rewrite: '^/static/(version\\d*/)?(.*)$ /static.php?resource=$2 last', + }; + + config['# Magento: static files'] = ''; + config['location ^~ /static/'] = { + expires: 'max', + try_files: '$uri $uri/ @magento_static', + + 'location ~* \\.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$': { + expires: '+1y', + add_header: 'Cache-Control "public"', + try_files: '$uri $uri/ magento_static', + }, + + 'location ~* .(zip|gz|gzip|bz2|csv|xml)$': { + expires: 'off', + add_header: 'Cache-Control "no-store"', + try_files: '$uri $uri/ @magento_static', + }, + }; + + config['# Magento: deny cron'] = ''; + config['location ~ cron\\.php'] = { + deny: 'all', + }; + + // Done! + return config; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/conf/nginx.conf.js b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/nginx.conf.js new file mode 100644 index 00000000..74308a26 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/nginx.conf.js @@ -0,0 +1,238 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import { errorLogPathDisabled } from '../../util/logging'; +import sslProfiles from '../../util/ssl_profiles'; +import websiteConf from './website.conf'; + +export default (domains, global) => { + const config = {}; + + // Source + config['# Generated by nginxconfig.io'] = ''; + config['# See nginxconfig.txt for the configuration share link'] = ''; + + // Basic nginx conf + config.user = global.nginx.user.computed; + if (global.nginx.pid.computed) + config.pid = global.nginx.pid.computed; + config.worker_processes = global.nginx.workerProcesses.computed; + config.worker_rlimit_nofile = 65535; + + // Modules + config['# Load modules'] = ''; + config.include = `${global.nginx.nginxConfigDirectory.computed.replace(/\/+$/, '')}/modules-enabled/*.conf`; + + // Events + config.events = { + multi_accept: 'on', + worker_connections: 65535, + }; + + // HTTP (kv so we can use the same key multiple times) + config.http = []; + + config.http.push(['charset', 'utf-8']); + config.http.push(['sendfile', 'on']); + config.http.push(['tcp_nopush', 'on']); + config.http.push(['tcp_nodelay', 'on']); + if (!global.security.serverTokens.computed) + config.http.push(['server_tokens', 'off']); + if (!global.logging.logNotFound.computed) + config.http.push(['log_not_found', 'off']); + config.http.push(['types_hash_max_size', global.nginx.typesHashMaxSize.computed]); + config.http.push(['types_hash_bucket_size', global.nginx.typesHashBucketSize.computed]); + config.http.push(['client_max_body_size', `${global.nginx.clientMaxBodySize.computed}M`]); + + config.http.push(['# MIME', '']); + config.http.push(['include', 'mime.types']); + config.http.push(['default_type', 'application/octet-stream']); + + // Append Cloudflare request headers to the default log format + if (global.logging.cloudflare.computed) { + config.http.push(['# Log Format', '']); + + // Define default log format as an array + let logging = ['$remote_addr', '-', '$remote_user', '[$time_local]', + '"$request"', '$status', '$body_bytes_sent', + '"$http_referer"', '"$http_user_agent"']; + + if (global.logging.cfRay.computed) + logging.push('$http_cf_ray'); + + if (global.logging.cfConnectingIp.computed) + logging.push('$http_cf_connecting_ip'); + + if (global.logging.xForwardedFor.computed) + logging.push('$http_x_forwarded_for'); + + if (global.logging.xForwardedProto.computed) + logging.push('$http_x_forwarded_proto'); + + if (global.logging.trueClientIp.computed) + logging.push('$http_true_client_ip'); + + if (global.logging.cfIpCountry.computed) + logging.push('$http_cf_ipcountry'); + + if (global.logging.cfVisitor.computed) + logging.push('$http_cf_visitor'); + + if (global.logging.cdnLoop.computed) + logging.push('$http_cdn_loop'); + + config.http.push(['log_format', `cloudflare '${logging.join(' ')}'`]); + } + + config.http.push(['# Logging', '']); + config.http.push(['access_log', 'off']); + if (global.logging.errorLogEnabled.computed) { + config.http.push(['error_log', global.logging.errorLogPath.computed.trim() + + ` ${global.logging.errorLogLevel.computed}`]); + } else { + config.http.push(['error_log', errorLogPathDisabled]); + } + + if (global.security.limitReq.computed) { + config.http.push(['# Limits', '']); + config.http.push(['limit_req_log_level', 'warn']); + config.http.push(['limit_req_zone', '$binary_remote_addr zone=login:10m rate=10r/m']); + } + + // HTTPS + let hasHttps = false; + for (const domain of domains) { + if (domain && domain.https && domain.https.https && domain.https.https.computed) { + hasHttps = true; + break; + } + } + if (hasHttps) { + config.http.push(['# SSL', '']); + config.http.push(['ssl_session_timeout', '1d']); + config.http.push(['ssl_session_cache', 'shared:SSL:10m']); + config.http.push(['ssl_session_tickets', 'off']); + + const sslProfile = sslProfiles[global.https.sslProfile.computed]; + if (sslProfile) { + if (sslProfile.dh_param_size) { + config.http.push(['# Diffie-Hellman parameter for DHE ciphersuites', '']); + config.http.push(['ssl_dhparam', `${global.nginx.nginxConfigDirectory.computed.replace(/\/+$/, '')}/dhparam.pem`]); + } + + config.http.push([`# ${sslProfile.name} configuration`, '']); + config.http.push(['ssl_protocols', sslProfile.protocols.join(' ')]); + if (sslProfile.ciphers.length) + config.http.push(['ssl_ciphers', sslProfile.ciphers.join(':')]); + if (sslProfile.server_preferred_order) + config.http.push(['ssl_prefer_server_ciphers', 'on']); + } + + config.http.push(['# OCSP Stapling', '']); + config.http.push(['ssl_stapling', 'on']); + config.http.push(['ssl_stapling_verify', 'on']); + + const ips = []; + if (global.https.ocspCloudflare.computed) { + if (['ipv4', 'both'].includes(global.https.ocspCloudflareType.computed)) + ips.push('1.1.1.1', '1.0.0.1'); + if (['ipv6', 'both'].includes(global.https.ocspCloudflareType.computed)) + ips.push('[2606:4700:4700::1111]', '[2606:4700:4700::1001]'); + } + if (global.https.ocspGoogle.computed) { + if (['ipv4', 'both'].includes(global.https.ocspGoogleType.computed)) + ips.push('8.8.8.8', '8.8.4.4'); + if (['ipv6', 'both'].includes(global.https.ocspGoogleType.computed)) + ips.push('[2001:4860:4860::8888]', '[2001:4860:4860::8844]'); + } + if (global.https.ocspOpenDns.computed) { + if (['ipv4', 'both'].includes(global.https.ocspOpenDnsType.computed)) + ips.push('208.67.222.222', '208.67.220.220'); + if (['ipv6', 'both'].includes(global.https.ocspOpenDnsType.computed)) + ips.push('[2620:119:35::35]', '[2620:119:53::53]'); + } + if (global.https.ocspQuad9.computed) { + if (['ipv4', 'both'].includes(global.https.ocspQuad9Type.computed)) + ips.push('9.9.9.9', '149.112.112.112'); + if (['ipv6', 'both'].includes(global.https.ocspQuad9Type.computed)) + ips.push('[2620:fe::fe]', '[2620:fe::9]'); + } + if (global.https.ocspVerisign.computed) { + if (['ipv4', 'both'].includes(global.https.ocspVerisignType.computed)) + ips.push('64.6.64.6', '64.6.65.6'); + if (['ipv6', 'both'].includes(global.https.ocspVerisignType.computed)) + ips.push('[2620:74:1b::1:1]', '[2620:74:1c::2:2]'); + } + + if (ips.length) { + config.http.push(['resolver', `${ips.join(' ')} valid=60s`]); + config.http.push(['resolver_timeout', '2s']); + } + } + + // Connection header for WebSocket reverse proxy + if (domains.some(d => d.reverseProxy.reverseProxy.computed)) { + config.http.push(['# Connection header for WebSocket reverse proxy', '']); + config.http.push(['map $http_upgrade $connection_upgrade', { + 'default': 'upgrade', + '""': 'close', + }]); + // See https://www.nginx.com/resources/wiki/start/topics/examples/forwarded/ + config.http.push(['map $remote_addr $proxy_forwarded_elem', { + '# IPv4 addresses can be sent as-is': '', + '~^[0-9.]+$': '"for=$remote_addr"', + '# IPv6 addresses need to be bracketed and quoted': '', + '~^[0-9A-Fa-f:.]+$': '"for=\\"[$remote_addr]\\""', + '# Unix domain socket names cannot be represented in RFC 7239 syntax': '', + 'default': '"for=unknown"', + }]); + config.http.push(['map $http_forwarded $proxy_add_forwarded', { + '# If the incoming Forwarded header is syntactically valid, append to it': '', + '': '"~^(,[ \\\\t]*)*([!#$%&\'*+.^_`|~0-9A-Za-z-]+=([!#$%&\'*+.^_`|~0-9A-Za-z-]+|\\"([\\\\t \\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E\\\\x80-\\\\xFF]|\\\\\\\\[\\\\t \\\\x21-\\\\x7E\\\\x80-\\\\xFF])*\\"))?(;([!#$%&\'*+.^_`|~0-9A-Za-z-]+=([!#$%&\'*+.^_`|~0-9A-Za-z-]+|\\"([\\\\t \\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E\\\\x80-\\\\xFF]|\\\\\\\\[\\\\t \\\\x21-\\\\x7E\\\\x80-\\\\xFF])*\\"))?)*([ \\\\t]*,([ \\\\t]*([!#$%&\'*+.^_`|~0-9A-Za-z-]+=([!#$%&\'*+.^_`|~0-9A-Za-z-]+|\\"([\\\\t \\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E\\\\x80-\\\\xFF]|\\\\\\\\[\\\\t \\\\x21-\\\\x7E\\\\x80-\\\\xFF])*\\"))?(;([!#$%&\'*+.^_`|~0-9A-Za-z-]+=([!#$%&\'*+.^_`|~0-9A-Za-z-]+|\\"([\\\\t \\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E\\\\x80-\\\\xFF]|\\\\\\\\[\\\\t \\\\x21-\\\\x7E\\\\x80-\\\\xFF])*\\"))?)*)?)*$" "$http_forwarded, $proxy_forwarded_elem"', + '# Otherwise, replace it': '', + 'default': '"$proxy_forwarded_elem"', + }]); + } + + // Configs! + config.http.push(['# Load configs', '']); + config.http.push(['include', [ + `${global.nginx.nginxConfigDirectory.computed.replace(/\/+$/, '')}/conf.d/*.conf`, + global.tools.modularizedStructure.computed ? `${global.nginx.nginxConfigDirectory.computed.replace(/\/+$/, '')}/sites-enabled/*` : '', + ].filter(x => x.length)]); + + // Single file configs + if (!global.tools.modularizedStructure.computed) { + const ipPortPairs = new Set(); + for (const domain of domains) { + config.http.push([`# ${domain.server.domain.computed}`, '']); + config.http.push(...websiteConf(domain, domains, global, ipPortPairs)); + } + } + + // Done! + return config; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/conf/php_fastcgi.conf.js b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/php_fastcgi.conf.js new file mode 100644 index 00000000..530a877d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/php_fastcgi.conf.js @@ -0,0 +1,56 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default (domains) => { + const legacyRouting = domains.some(d => d.routing.legacyPhpRouting.computed); + const config = {}; + + if (legacyRouting) { + config['# split path'] = ''; + config.fastcgi_split_path_info = '^(.+\\.php)(/.+)$'; + config.set = '$_fastcgi_path_info $fastcgi_path_info'; + } + + config['# 404'] = ''; + config.try_files = '$fastcgi_script_name =404'; + + config['# default fastcgi_params'] = ''; + config.include = 'fastcgi_params'; + + config['# fastcgi settings'] = ''; + config.fastcgi_index = 'index.php'; + config.fastcgi_buffers = '8 16k'; + config.fastcgi_buffer_size = '32k'; + + config['# fastcgi params'] = ''; + config['fastcgi_param DOCUMENT_ROOT'] = '$realpath_root'; + config['fastcgi_param SCRIPT_FILENAME'] = '$realpath_root$fastcgi_script_name'; + if (legacyRouting) config['fastcgi_param PATH_INFO'] = '$_fastcgi_path_info'; + config['fastcgi_param PHP_ADMIN_VALUE'] = '"open_basedir=$base/:/usr/lib/php/:/tmp/"'; + + // Done! + return config; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/conf/proxy.conf.js b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/proxy.conf.js new file mode 100644 index 00000000..0341bd88 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/proxy.conf.js @@ -0,0 +1,61 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default global => { + const config = {}; + + config.proxy_http_version = '1.1'; + config.proxy_cache_bypass = '$http_upgrade'; + + config['# Proxy SSL'] = ''; + config['proxy_ssl_server_name'] = 'on'; + + config['# Proxy headers'] = ''; + config['proxy_set_header Upgrade'] = '$http_upgrade'; + config['proxy_set_header Connection'] = '$connection_upgrade'; + config['proxy_set_header X-Real-IP'] = '$remote_addr'; + config['proxy_set_header Forwarded'] = '$proxy_add_forwarded'; + if (global.reverseProxy.proxyCoexistenceXForwarded.computed == 'passOn') { + config['proxy_set_header X-Forwarded-For'] = '$proxy_add_x_forwarded_for'; + config['proxy_set_header X-Forwarded-Proto'] = '$scheme'; + config['proxy_set_header X-Forwarded-Host'] = '$host'; + config['proxy_set_header X-Forwarded-Port'] = '$server_port'; + } else { + config['proxy_set_header X-Forwarded-For'] = '""'; + config['proxy_set_header X-Forwarded-Proto'] = '""'; + config['proxy_set_header X-Forwarded-Host'] = '""'; + config['proxy_set_header X-Forwarded-Port'] = '""'; + } + + + config['# Proxy timeouts'] = ''; + config['proxy_connect_timeout'] = global.reverseProxy.proxyConnectTimeout.computed; + config['proxy_send_timeout'] = global.reverseProxy.proxySendTimeout.computed; + config['proxy_read_timeout'] = global.reverseProxy.proxyReadTimeout.computed; + + // Done! + return config; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/conf/python_uwsgi.conf.js b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/python_uwsgi.conf.js new file mode 100644 index 00000000..2e6c85ce --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/python_uwsgi.conf.js @@ -0,0 +1,43 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default global => { + const config = {}; + + config['# default uwsgi_params'] = ''; + config.include = 'uwsgi_params'; + + config['# uwsgi settings'] = ''; + config.uwsgi_pass = (global.python.pythonServer.computed[0] === '/' ? 'unix:' : '') + + global.python.pythonServer.computed; + config['uwsgi_param Host'] = '$host'; + config['uwsgi_param X-Real-IP'] = '$remote_addr'; + config['uwsgi_param X-Forwarded-For'] = '$proxy_add_x_forwarded_for'; + config['uwsgi_param X-Forwarded-Proto'] = '$http_x_forwarded_proto'; + + // Done! + return config; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/conf/security.conf.js b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/security.conf.js new file mode 100644 index 00000000..4335c368 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/security.conf.js @@ -0,0 +1,70 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import commonHsts from '../../util/common_hsts'; + +export default (domains, global) => { + const config = []; + + config.push(['# security headers', '']); + config.push(['add_header X-XSS-Protection', '"1; mode=block" always']); + config.push(['add_header X-Content-Type-Options', '"nosniff" always']); + config.push(['add_header Referrer-Policy', `"${global.security.referrerPolicy.computed}" always`]); + + if (global.security.contentSecurityPolicy.computed) + config.push(['add_header Content-Security-Policy', `"${global.security.contentSecurityPolicy.computed}" always`]); + + if (global.security.permissionsPolicy.computed) + config.push(['add_header Permissions-Policy', `"${global.security.permissionsPolicy.computed}" always`]); + + // Every domain has HSTS enabled, and they all have same hstsSubdomains/hstsPreload settings + if (commonHsts(domains)) { + const commonHSTSSubdomains = domains.length && domains[0].https.hstsSubdomains.computed; + const commonHSTSPreload = domains.length && domains[0].https.hstsPreload.computed; + config.push(['add_header Strict-Transport-Security', `"max-age=31536000${commonHSTSSubdomains ? '; includeSubDomains' : ''}${commonHSTSPreload ? '; preload' : ''}" always`]); + } + + config.push(['# . files', '']); + config.push(['location ~ /\\.(?!well-known)', { + deny: 'all', + }]); + + // Security.txt + if (global.security.securityTxt.computed) { + config.push(['# security.txt', '']); + config.push(['location /security.txt', { + return: '301 /.well-known/security.txt', + }]); + + // Custom security.txt path + config.push(['location = /.well-known/security.txt', { + alias: `${global.security.securityTxtPath.value}`, + }]); + } + + // Done! + return config; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/conf/website.conf.js b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/website.conf.js new file mode 100644 index 00000000..151f85b9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/website.conf.js @@ -0,0 +1,472 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import { getSslCertificate, getSslCertificateKey } from '../../util/get_ssl_certificate'; +import { extensions, gzipTypes } from '../../util/types_extensions'; +import { getDomainAccessLog, getDomainErrorLog } from '../../util/logging'; +import commonHsts from '../../util/common_hsts'; +import securityConf from './security.conf'; +import pythonConf from './python_uwsgi.conf'; +import proxyConf from './proxy.conf'; +import phpConf from './php_fastcgi.conf'; +import generalConf from './general.conf'; +import wordPressConf from './wordpress.conf'; +import drupalConf from './drupal.conf'; +import magentoConf from './magento.conf'; +import joomlaConf from './joomla.conf'; +import letsEncryptConf from './letsencrypt.conf'; +import phpPath from '../../util/php_path'; +import phpUpstream from '../../util/php_upstream'; + +const sslConfig = (domain, global) => { + const config = []; + if (domain.https.https.computed) { + config.push(['# SSL', '']); + config.push(['ssl_certificate', getSslCertificate(domain, global)]); + config.push(['ssl_certificate_key', getSslCertificateKey(domain, global)]); + + // Let's encrypt + if (domain.https.certType.computed === 'letsEncrypt') + config.push(['ssl_trusted_certificate', + `${global.https.letsEncryptCertRoot.computed.replace(/\/+$/, '')}/${domain.server.domain.computed}/chain.pem`]); + } + return config; +}; + +const httpsListen = (domain, global, ipPortPairs) => { + const config = []; + + // Check if reuseport needs to be set + const ipPortV4 = `${domain.server.listenIpv4.computed === '*' ? '' : `${domain.server.listenIpv4.computed}:`}443`; + const reusePortV4 = global.https.portReuse.computed && !ipPortPairs.has(ipPortV4); + if (reusePortV4) ipPortPairs.add(ipPortV4); + + // HTTPS + config.push(['listen', + `${ipPortV4} ssl${domain.https.http2.computed ? ' http2' : ''}${reusePortV4 ? ' reuseport' : ''}`]); + + // HTTP/3 + if (domain.https.http3.computed) + config.push(['listen', `${ipPortV4} http3`]); + + // v6 + if (domain.server.listenIpv6.computed) { + // Check if reuseport needs to be set + const ipPortV6 = `[${domain.server.listenIpv6.computed}]:443`; + const reusePortV6 = global.https.portReuse.computed && !ipPortPairs.has(ipPortV6); + if (reusePortV6) ipPortPairs.add(ipPortV6); + + // HTTPS + config.push(['listen', + `${ipPortV6} ssl${domain.https.http2.computed ? ' http2' : ''}${reusePortV6 ? ' reuseport' : ''}`]); + + // HTTP/3 + if (domain.https.http3.computed) + config.push(['listen', `${ipPortV6} http3`]); + } + + return config; +}; + +const httpListen = (domain, global, ipPortPairs) => { + const config = []; + + // Check if reuseport needs to be set + const ipPortV4 = `${domain.server.listenIpv4.computed === '*' ? '' : `${domain.server.listenIpv4.computed}:`}80`; + const reusePortV4 = global.https.portReuse.computed && !ipPortPairs.has(ipPortV4); + if (reusePortV4) ipPortPairs.add(ipPortV4); + + // v4 + config.push(['listen', `${ipPortV4}${reusePortV4 ? ' reuseport' : ''}`]); + + // v6 + if (domain.server.listenIpv6.computed) { + // Check if reuseport needs to be set + const ipPortV6 = `[${domain.server.listenIpv6.computed}]:80`; + const reusePortV6 = global.https.portReuse.computed && !ipPortPairs.has(ipPortV6); + if (reusePortV6) ipPortPairs.add(ipPortV6); + + config.push(['listen', `${ipPortV6}${reusePortV6 ? ' reuseport' : ''}`]); + } + + return config; +}; + +const listenConfig = (domain, global, ipPortPairs) => { + if (domain.https.https.computed) return httpsListen(domain, global, ipPortPairs); + return httpListen(domain, global, ipPortPairs); +}; + +const httpRedirectConfig = (domain, global, ipPortPairs, domainName, redirectDomain) => { + // Build the server config on its own before adding it to the parent config + const config = []; + + config.push(...httpListen(domain, global, ipPortPairs)); + config.push(['server_name', domainName]); + + // Logging + if (domain.logging.redirectAccessLog.computed || domain.logging.redirectErrorLog.computed) { + config.push(['# logging', '']); + + if (domain.logging.redirectAccessLog.computed) { + config.push(['access_log', getDomainAccessLog(domain, global)]); + } + + if (domain.logging.redirectErrorLog.computed) { + config.push(['error_log', getDomainErrorLog(domain)]); + } + } + + if (domain.https.certType.computed === 'letsEncrypt') { + // Let's encrypt + + if (global.tools.modularizedStructure.computed) { + // Modularized + config.push(['include', 'nginxconfig.io/letsencrypt.conf']); + } else { + // Unified + config.push(...Object.entries(letsEncryptConf(global))); + } + + config.push(['location /', { + return: `301 https://${redirectDomain ? redirectDomain : domainName}$request_uri`, + }]); + } else { + // Custom cert + config.push(['return', `301 https://${redirectDomain ? redirectDomain : domainName}$request_uri`]); + } + + return config; +}; + +export default (domain, domains, global, ipPortPairs) => { + // Use kv so we can use the same key multiple times + const config = []; + + // Build the server config on its own before adding it to the parent config + const serverConfig = []; + + // Not HTTPS or not force HTTPS + if (!domain.https.https.computed || !domain.https.forceHttps.computed) + serverConfig.push(...httpListen(domain, global, ipPortPairs)); + + // HTTPS + if (domain.https.https.computed) + serverConfig.push(...httpsListen(domain, global, ipPortPairs)); + + serverConfig.push(['server_name', + `${domain.server.wwwSubdomain.computed ? 'www.' : ''}${domain.server.domain.computed}`]); + + // PHP or Django + if (domain.php.php.computed || (domain.python.python.computed && domain.python.djangoRules.computed)) { + serverConfig.push(['set', `$base ${domain.server.path.computed}`]); + + // root + if (domain.routing.root.computed) + serverConfig.push(['root', `$base${domain.server.documentRoot.computed}`]); + } + + // Not PHP and not Django and root + if (!domain.php.php.computed + && (!domain.python.python.computed || !domain.python.djangoRules.computed) + && domain.routing.root.computed) + serverConfig.push(['root', `${domain.server.path.computed}${domain.server.documentRoot.computed}`]); + + // HTTPS + serverConfig.push(...sslConfig(domain, global)); + + // Onion location + if (domain.onion.onionLocation.computed) { + serverConfig.push(['# Onion services', '']); + serverConfig.push(['add_header Onion-Location', `http://${domain.onion.onionLocation.computed}$request_uri`]); + } + + // HSTS + if (!commonHsts(domains) && domain.https.hsts.computed) { + serverConfig.push(['# HSTS', '']); + serverConfig.push(['add_header Strict-Transport-Security', + `"max-age=31536000${domain.https.hstsSubdomains.computed ? '; includeSubDomains' : ''}${domain.https.hstsPreload.computed ? '; preload' : ''}" always`]); + } + + // Security + if (global.tools.modularizedStructure.computed) { + // Modularized + serverConfig.push(['# security', '']); + serverConfig.push(['include', 'nginxconfig.io/security.conf']); + } else { + // Unified + serverConfig.push(...securityConf(domains, global)); + } + + // Restrict Methods + if (Object.keys(domain.restrict).find(k => domain.restrict[k].computed && k !== 'responseCode')) { + const allowedKeys = Object.keys(domain.restrict) + .filter(k => !domain.restrict[k].computed && k !== 'responseCode') + .map(e => e.replace('Method', '').toUpperCase()); + + serverConfig.push(['# restrict methods', '']); + serverConfig.push([`if ($request_method !~ ^(${allowedKeys.join('|')})$)`, { + 'return': `'${domain.restrict.responseCode.computed}'`, + }]); + } + + // Access log or error log for domain + if (domain.logging.accessLogEnabled.computed || domain.logging.errorLogEnabled.computed) { + serverConfig.push(['# logging', '']); + + if (domain.logging.accessLogEnabled.computed) + serverConfig.push(['access_log', getDomainAccessLog(domain, global)]); + + if (domain.logging.errorLogEnabled.computed) + serverConfig.push(['error_log', getDomainErrorLog(domain)]); + } + + // index.php + if (domain.routing.index.computed === 'index.php') { + serverConfig.push(['# index.php', '']); + serverConfig.push(['index', 'index.php']); + } + + // Fallback index.html or index.php + if ((domain.routing.fallbackHtml.computed || domain.routing.fallbackPhp.computed) + && (!domain.reverseProxy.reverseProxy.computed || domain.reverseProxy.path.computed !== '/')) { + serverConfig.push([`# index.${domain.routing.fallbackHtml.computed ? 'html' : (domain.routing.fallbackPhp.computed ? 'php' : '')} fallback`, '']); + serverConfig.push(['location /', { + try_files: `$uri $uri/ /index.${domain.routing.fallbackHtml.computed ? 'html' : (domain.routing.fallbackPhp.computed ? 'php?$query_string' : '')}`, + }]); + } + + // Fallback index.html and index.php + if (domain.routing.fallbackHtml.computed && domain.routing.fallbackPhp.computed) { + serverConfig.push(['# index.php fallback', '']); + serverConfig.push([`location ~ ^${domain.routing.fallbackPhpPath.computed}`, { + try_files: '$uri $uri/ /index.php?$query_string', + }]); + } + + // Python + if (domain.python.python.computed) { + if (global.tools.modularizedStructure.computed) { + // Modularized + serverConfig.push(['location /', { include: 'nginxconfig.io/python_uwsgi.conf' }]); + } else { + // Unified + serverConfig.push(['location /', pythonConf(global)]); + } + + // Django + if (domain.python.djangoRules.computed) { + serverConfig.push(['# Django media', '']); + serverConfig.push(['location /media/', { alias: '$base/media/' }]); + + serverConfig.push(['# Django static', '']); + serverConfig.push(['location /static/', { alias: '$base/static/' }]); + } + } + + // Reverse proxy + if (domain.reverseProxy.reverseProxy.computed) { + const locConf = []; + locConf.push(['proxy_pass', domain.reverseProxy.proxyPass.computed]); + locConf.push(['proxy_set_header Host', domain.reverseProxy.proxyHostHeader.computed]); + + if (global.tools.modularizedStructure.computed) { + // Modularized + locConf.push(['include', 'nginxconfig.io/proxy.conf']); + } else { + // Unified + locConf.push(...Object.entries(proxyConf(global))); + } + + serverConfig.push(['# reverse proxy', '']); + serverConfig.push([`location ${domain.reverseProxy.path.computed}`, locConf]); + } + + // Additional config + if (global.tools.modularizedStructure.computed) { + // Modularized + serverConfig.push(['# additional config', '']); + serverConfig.push(['include', 'nginxconfig.io/general.conf']); + + if (!domain.https.forceHttps.computed && domain.https.certType.computed === 'letsEncrypt') + serverConfig.push(['include', 'nginxconfig.io/letsencrypt.conf']); + + if (domain.php.wordPressRules.computed) serverConfig.push(['include', `nginxconfig.io/${domain.server.domain.computed}.wordpress.conf`]); + if (domain.php.drupalRules.computed) serverConfig.push(['include', 'nginxconfig.io/drupal.conf']); + if (domain.php.magentoRules.computed) serverConfig.push(['include', 'nginxconfig.io/magento.conf']); + if (domain.php.joomlaRules.computed) serverConfig.push(['include', 'nginxconfig.io/joomla.conf']); + } else { + // Unified + serverConfig.push(...Object.entries(generalConf(domains, global))); + + if (!domain.https.forceHttps.computed && domain.https.certType.computed === 'letsEncrypt') + serverConfig.push(...Object.entries(letsEncryptConf(global))); + + if (domain.php.wordPressRules.computed) serverConfig.push(...Object.entries(wordPressConf(global, domain))); + if (domain.php.drupalRules.computed) serverConfig.push(...Object.entries(drupalConf(global))); + if (domain.php.magentoRules.computed) serverConfig.push(...Object.entries(magentoConf())); + if (domain.php.joomlaRules.computed) serverConfig.push(...Object.entries(joomlaConf())); + } + + // PHP + if (domain.php.php.computed) { + if (domain.php.phpBackupServer.computed) { + config.push([`upstream ${phpUpstream(domain)}`, { + server: [ + phpPath(domain), + `${phpPath(domain, true)} backup`, + ], + }]); + } + + serverConfig.push(['# handle .php', '']); + + const loc = `location ~ ${domain.routing.legacyPhpRouting.computed ? '[^/]\\.php(/|$)' : '\\.php$'}`; + + const fastcgiPass = { + fastcgi_pass: domain.php.phpBackupServer.computed !== '' + ? phpUpstream(domain) : phpPath(domain), + }; + + if (global.tools.modularizedStructure.computed || domain.php.wordPressRules.computed) { + // Modularized + serverConfig.push([loc, { + ...fastcgiPass, + include: 'nginxconfig.io/php_fastcgi.conf', + }]); + } else { + // Unified + serverConfig.push([loc, { + ...fastcgiPass, + ...phpConf(domains), + }]); + } + } + + // Add the server config to the parent config now its built + config.push(['server', serverConfig]); + + // CDN! + if (domain.server.cdnSubdomain.computed) { + // Build the server config on its own before adding it to the parent config + const cdnConfig = []; + + cdnConfig.push(...listenConfig(domain, global, ipPortPairs)); + cdnConfig.push(['server_name', `cdn.${domain.server.domain.computed}`]); + cdnConfig.push(['root', `${domain.server.path.computed}${domain.server.documentRoot.computed}`]); + + // HTTPS + cdnConfig.push(...sslConfig(domain, global)); + + cdnConfig.push(['# disable access_log', '']); + cdnConfig.push(['access_log', 'off']); + + // Gzip + if (global.performance.gzipCompression.computed) { + cdnConfig.push(['# gzip', '']); + cdnConfig.push(['gzip', 'on']); + cdnConfig.push(['gzip_vary', 'on']); + cdnConfig.push(['gzip_proxied', 'any']); + cdnConfig.push(['gzip_comp_level', 6]); + cdnConfig.push(['gzip_types', gzipTypes]); + } + + cdnConfig.push(['# allow safe files', '']); + cdnConfig.push([ + `location ~* \\.(?:${extensions.assets}|${extensions.fonts}|${extensions.svg}|${extensions.images}|${extensions.audio}|${extensions.video}|${extensions.docs})$`, + [ + ['add_header', 'Access-Control-Allow-Origin "*"'], + ['add_header', 'Cache-Control "public"'], + ['expires', '30d'], + ], + ]); + + cdnConfig.push(['# deny everything else', '']); + cdnConfig.push(['location /', { deny: 'all' }]); + + // Add the CDN config to the parent config now its built + config.push(['# CDN', '']); + config.push(['server', cdnConfig]); + } + + // Subdomains redirect + if (domain.server.redirectSubdomains.computed) { + // Build the server config on its own before adding it to the parent config + const redirectConfig = []; + + redirectConfig.push(...listenConfig(domain, global, ipPortPairs)); + redirectConfig.push(['server_name', + `${domain.server.wwwSubdomain.computed ? '' : '*'}.${domain.server.domain.computed}`]); + + // HTTPS + redirectConfig.push(...sslConfig(domain, global)); + + // Logging + if (domain.logging.redirectAccessLog.computed || domain.logging.redirectErrorLog.computed) { + redirectConfig.push(['# logging', '']); + + if (domain.logging.redirectAccessLog.computed) { + redirectConfig.push(['access_log', getDomainAccessLog(domain, global)]); + } + if (domain.logging.redirectErrorLog.computed) { + redirectConfig.push(['error_log', getDomainErrorLog(domain)]); + } + } + + redirectConfig.push(['return', + `301 http${domain.https.https.computed ? 's' : ''}://${domain.server.wwwSubdomain.computed ? 'www.' : ''}${domain.server.domain.computed}$request_uri`]); + + // Add the redirect config to the parent config now its built + config.push([`# ${domain.server.wwwSubdomain.computed ? 'non-www, ' : ''}subdomains redirect`, '']); + config.push(['server', redirectConfig]); + } + + // HTTP redirect + if (domain.https.forceHttps.computed) { + // Add the redirect config to the parent config now its built + config.push(['# HTTP redirect', '']); + if (domain.server.wwwSubdomain.computed && !domain.server.redirectSubdomains.computed) { + config.push(['server', httpRedirectConfig(domain, global, ipPortPairs, + domain.server.domain.computed, `www.${domain.server.domain.computed}`)]); + config.push(['server', httpRedirectConfig(domain, global, ipPortPairs, + `www.${domain.server.domain.computed}`)]); + } else if (!domain.server.wwwSubdomain.computed && !domain.server.redirectSubdomains.computed) { + config.push(['server', httpRedirectConfig(domain, global, ipPortPairs, + domain.server.domain.computed)]); + } + if (domain.server.cdnSubdomain.computed) { + config.push(['server', httpRedirectConfig(domain, global, ipPortPairs, + `cdn.${domain.server.domain.computed}`)]); + } + if (domain.server.redirectSubdomains.computed) { + config.push(['server', httpRedirectConfig(domain, global, ipPortPairs, + `.${domain.server.domain.computed}`, + `${domain.server.wwwSubdomain.computed ? 'www.' : '' }${domain.server.domain.computed}`)]); + } + } + + return config; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/conf/wordpress.conf.js b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/wordpress.conf.js new file mode 100644 index 00000000..1c8e2b0f --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/conf/wordpress.conf.js @@ -0,0 +1,75 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import phpPath from '../../util/php_path'; +import phpUpstream from '../../util/php_upstream'; + +export default (global, domain) => { + const config = {}; + + config['# WordPress: allow TinyMCE'] = ''; + config['location = /wp-includes/js/tinymce/wp-tinymce.php'] = { + include: 'nginxconfig.io/php_fastcgi.conf', + }; + + config['# WordPress: deny wp-content, wp-includes php files'] = ''; + config['location ~* ^/(?:wp-content|wp-includes)/.*\\.php$'] = { + deny: 'all', + }; + + config['# WordPress: deny wp-content/uploads nasty stuff'] = ''; + config['location ~* ^/wp-content/uploads/.*\\.(?:s?html?|php|js|swf)$'] = { + deny: 'all', + }; + + config['# WordPress: SEO plugin'] = ''; + config['location ~* ^/wp-content/plugins/wordpress-seo(?:-premium)?/css/main-sitemap\\.xsl$'] = {}; + + config['# WordPress: deny wp-content/plugins (except earlier rules)'] = ''; + config['location ~ ^/wp-content/plugins'] = { + deny: 'all', + }; + + config['# WordPress: deny general stuff'] = ''; + config['location ~* ^/(?:xmlrpc\\.php|wp-links-opml\\.php|wp-config\\.php|wp-config-sample\\.php|readme\\.html|license\\.txt)$'] = { + deny: 'all', + }; + + if (global.security.limitReq.computed) { + config['# WordPress: throttle wp-login.php'] = ''; + config['location = /wp-login.php'] = { + limit_req: 'zone=login burst=2 nodelay', + include: 'nginxconfig.io/php_fastcgi.conf', + }; + if (domain.php.wordPressRules.computed) { + config['location = /wp-login.php'].fastcgi_pass = domain.php.phpBackupServer.computed !== '' + ? phpUpstream(domain) : phpPath(domain); + } + } + + // Done! + return config; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/ext/docker.js b/nginx/nginxconfig.io/src/nginxconfig/generators/ext/docker.js new file mode 100644 index 00000000..524e602b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/ext/docker.js @@ -0,0 +1,30 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default () => { + return 'FROM nginx:latest\nCOPY . /etc/nginx/'; +}; + diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/index.js b/nginx/nginxconfig.io/src/nginxconfig/generators/index.js new file mode 100644 index 00000000..37e088f5 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/index.js @@ -0,0 +1,114 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import toConf from './to_conf'; +import toYaml from './to_yaml'; +import nginxConf from './conf/nginx.conf'; +import websiteConf from './conf/website.conf'; +import letsEncryptConf from './conf/letsencrypt.conf'; +import securityConf from './conf/security.conf'; +import generalConf from './conf/general.conf'; +import phpConf from './conf/php_fastcgi.conf'; +import pythonConf from './conf/python_uwsgi.conf'; +import proxyConf from './conf/proxy.conf'; +import wordPressConf from './conf/wordpress.conf'; +import drupalConf from './conf/drupal.conf'; +import magentoConf from './conf/magento.conf'; +import joomlaConf from './conf/joomla.conf'; +import dockerComposeYaml from './yaml/dockerCompose.yaml'; +import dockerConf from './ext/docker'; +import shareQuery from '../util/share_query'; + +export default (domains, global) => { + const files = {}; + + // Base nginx config + files['nginx.conf'] = toConf(nginxConf(domains, global)); + + // Dockerfile + if (global.docker.dockerfile.computed) + files['Dockerfile'] = dockerConf(); + + if (global.docker.dockerCompose.computed) + files['docker-compose.yaml'] = toYaml(dockerComposeYaml()); + + // Modularised configs + if (global.tools.modularizedStructure.computed) { + // Domain config + const sitesDir = `sites-${global.tools.symlinkVhost.computed ? 'available' : 'enabled'}`; + const ipPortPairs = new Set(); + for (const domain of domains) { + files[`${sitesDir}/${domain.server.domain.computed}.conf`] = toConf(websiteConf(domain, domains, global, ipPortPairs)); + // WordPress + if (domains.some(d => d.php.wordPressRules.computed)) + files[`nginxconfig.io/${domain.server.domain.computed}.wordpress.conf`] = toConf(wordPressConf(global, domain)); + } + + // Let's encrypt + if (domains.some(d => d.https.certType.computed === 'letsEncrypt')) + files['nginxconfig.io/letsencrypt.conf'] = toConf(letsEncryptConf(global)); + + // Security + files['nginxconfig.io/security.conf'] = toConf(securityConf(domains, global)); + + // General + files['nginxconfig.io/general.conf'] = toConf(generalConf(domains, global)); + + // PHP + if (domains.some(d => d.php.php.computed)) + files['nginxconfig.io/php_fastcgi.conf'] = toConf(phpConf(domains)); + + // Python + if (domains.some(d => d.python.python.computed)) + files['nginxconfig.io/python_uwsgi.conf'] = toConf(pythonConf(global)); + + // Reverse proxy + if (domains.some(d => d.reverseProxy.reverseProxy.computed)) + files['nginxconfig.io/proxy.conf'] = toConf(proxyConf(global)); + + // Drupal + if (domains.some(d => d.php.drupalRules.computed)) + files['nginxconfig.io/drupal.conf'] = toConf(drupalConf(global)); + + // Magento + if (domains.some(d => d.php.magentoRules.computed)) + files['nginxconfig.io/magento.conf'] = toConf(magentoConf()); + + // Joomla + if (domains.some(d => d.php.joomlaRules.computed)) + files['nginxconfig.io/joomla.conf'] = toConf(joomlaConf()); + + } else { + // PHP + if (domains.some(d => d.php.wordPressRules.computed)) + files['nginxconfig.io/php_fastcgi.conf'] = toConf(phpConf(domains)); + } + + const query = shareQuery(domains.map((domain, index) => [domain, index]).filter(d => d[0] !== null), global); + files['nginxconfig.txt'] = `${window.location.protocol}//${window.location.host}${window.location.pathname}${query}`; + + return files; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/to_conf.js b/nginx/nginxconfig.io/src/nginxconfig/generators/to_conf.js new file mode 100644 index 00000000..a09040d6 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/to_conf.js @@ -0,0 +1,135 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import isObject from '../util/is_object'; + +const isBlock = item => { + // If an object, or kv entries, this is considered a block + return isObject(item) || (Array.isArray(item) && item.every(i => Array.isArray(i) && i.length === 2)); +}; + +const longestKey = items => { + let longest = 0; + + for (const item of items) { + // Only consider up to the first block + if (isBlock(item[1])) + return longest; + + // If this is the new longest, and not a comment, use this + if (item[0].length > longest && !item[0].startsWith('#')) + longest = item[0].length; + } + + // Done! + return longest; +}; + +const recurse = (entriesOrObject, depth) => { + // Support an object or kv array entries + // Convert to entries if given an object + const entries = isObject(entriesOrObject) ? Object.entries(entriesOrObject) : entriesOrObject; + + // If not a valid kv entries array, return + if (!Array.isArray(entries) || !entries.every(i => Array.isArray(i) && i.length === 2)) return ''; + + // Initial values + let retVal = ''; + let longestKeyLen = longestKey(entries); + const indent = (' ').repeat(depth); + + // Track whether the previous was a block, for indentation + let previousBlock = false; + + // Loop over every kv pair + for (let i = 0; i < entries.length; i++) { + const item = entries[i]; + + // If a block (object or kv entries), recurse + if (isBlock(item[1])) { + // Recurse + retVal += '\n' + indent + item[0] + ' {\n'; + retVal += recurse(item[1], depth + 1); + retVal += indent + '}\n\n'; + + // Done + previousBlock = true; + continue; + } + + // Update key length if we've just left a block + if (previousBlock) { + longestKeyLen = longestKey(entries.slice(i)); + previousBlock = false; + } + + // Otherwise, assume it can be made a string + // Ensure we're working with an array + const val = Array.isArray(item[1]) ? item[1] : [item[1]]; + + // Calculate spacing + const keyValSpacing = (longestKeyLen - item[0].length) + 1; + const keyValIndent = (' ').repeat(Math.max(keyValSpacing, 0)); + + // Work through each item in the array + val.forEach(subVal => { + const val = subVal.toString(); + retVal += indent + (item[0] + keyValIndent + val).trim() + (item[0].startsWith('#') ? '' : ';') + '\n'; + }); + } + + return retVal; +}; + +export default entriesOrObject => { + // Generate the conf + let conf = recurse(entriesOrObject, 0); + + // Do some regex cleanup + conf = conf + // Cleanup triple linebreaks + .replace(/\n\n\n/g, '\n\n') + // Double linebreak before comment + .replace(/^([^\S\r\n]*[^#\s].*[^\n])\n([^\S\r\n]*)#/gm, '$1\n\n$2#') + // Single linebreak between comment and block + .replace(/^([^\S\r\n]*#.*)(?:\n[^\S\r\n]*)+\n([^\S\r\n]*.*{)/gm, '$1\n$2') + // Double linebreak after double comment + .replace(/^([^\S\r\n]*#.*\n[^\S\r\n]*#.*\n)([^\S\r\n]*[^#\s])/gm, '$1\n$2') + // No newline for empty blocks + .replace(/^([^\S\r\n]*.*{)\n[^\S\r\n]*(})/gm, '$1$2'); + + // Cleanup extra linebreaks between multiple close blocks + // Use a loop as this has overlapping matches + let match; + do { + match = /^([^\S\r\n]*})(?:\n[^\S\r\n]*)+\n([^\S\r\n]*})/m.exec(conf); + if (match) + conf = conf.slice(0, match.index) + match[1] + '\n' + match[2] + conf.slice(match.index + match[0].length); + } while (match); + + // Remove initial & trailing whitespace + return conf.trim(); +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/to_yaml.js b/nginx/nginxconfig.io/src/nginxconfig/generators/to_yaml.js new file mode 100644 index 00000000..c4296068 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/to_yaml.js @@ -0,0 +1,31 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import yaml from 'json-to-pretty-yaml'; + +export default yamlConf => { + return yaml.stringify(yamlConf); +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/generators/yaml/dockerCompose.yaml.js b/nginx/nginxconfig.io/src/nginxconfig/generators/yaml/dockerCompose.yaml.js new file mode 100644 index 00000000..17243294 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/generators/yaml/dockerCompose.yaml.js @@ -0,0 +1,39 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default () => { + return { + version: '3.3', + services: { + nginx: { + build: { + context: '.', + dockerfile: 'Dockerfile', + }, + }, + }, + }; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/common.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/common.js new file mode 100644 index 00000000..28b88e56 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/common.js @@ -0,0 +1,48 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + back: 'Zurück', + next: 'Weiter', + enable: 'Aktiviere', + php: 'PHP', + ssl: 'SSL', + nginx: 'NGINX', + http: 'HTTP', + https: 'HTTPS', + letsEncrypt: 'Let\'s Encrypt', + python: 'Python', + wordPress: 'WordPress', + drupal: 'Drupal', + magento: 'Magento', + joomla: 'Joomla', + django: 'Django', + logging: 'Logging', + reverseProxy: 'Reverse Proxy', + reverseProxyLower: 'reverse proxy', + restrict: 'Beschränkungen', + path: 'Pfad', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/index.js new file mode 100644 index 00000000..15420a11 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/index.js @@ -0,0 +1,31 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from './common'; +import languages from './languages'; +import templates from './templates'; + +export default { common, languages, templates }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/languages.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/languages.js new file mode 100644 index 00000000..3723da95 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/languages.js @@ -0,0 +1,38 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + en: 'Englisch', + es: 'Spanisch', + zhCN: 'Chinesisch (vereinfacht)', + zhTW: 'Chinesisch (traditionell)', + ptBR: 'Portugiesisch (Brasilien)', + fr: 'Französisch', + ru: 'Russisch', + pl: 'Polnisch', + de: 'Deutsch', + ja: 'Japanisch', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/app.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/app.js new file mode 100644 index 00000000..eed31c94 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/app.js @@ -0,0 +1,40 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../common'; + +export default { + title: `${common.nginx}Config`, + description: `Der einfachste Weg, einen performanten, sicheren und stabilen ${common.nginx} Server zu konfigurieren.`, + singleColumnMode: 'Einspaltiger Modus', + splitColumnMode: 'Mehrspaltiger Modus', + perWebsiteConfig: 'Webseiten-Konfiguration', + addSite: 'Webseite hinzufügen', + globalConfig: 'Globale Konfiguration', + setup: 'Setup', + configFiles: 'Konfigurationsdateien', + copied: 'kopiert', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/callouts/contribute.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/callouts/contribute.js new file mode 100644 index 00000000..c691723c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/callouts/contribute.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + wantToContributeChanges: '👋 Willst du neue Features vorschlagen, Änderungen beitragen oder das Tool in eine andere Sprache übersetzen?', + getInvolvedOnGitHub: 'Beteilige dich auf GitHub', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/callouts/droplet.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/callouts/droplet.js new file mode 100644 index 00000000..b39af51e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/callouts/droplet.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + lookingForAPlaceToDeploy: '👋 Suchst du nach einem Ort, deine neue Konfiguration zu deployen?', + tryOutDigitalOceansDroplet: 'Teste DigitalOcean\'s LEMP Droplet mit NGINX', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/callouts/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/callouts/index.js new file mode 100644 index 00000000..dd68947b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/callouts/index.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import droplet from './droplet'; +import contribute from './contribute'; + +export default { droplet, contribute }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/https.js new file mode 100644 index 00000000..1c3893b9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/https.js @@ -0,0 +1,48 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableEncryptedSslConnection: `${common.enable} verschlüsselte ${common.ssl} Verbindungen`, + http2: `${common.http}/2`, + enableHttp2Connections: `${common.enable} ${common.http}/2 Verbindungen`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.enable} ${common.http}/3 Verbindungen`, + forceHttps: `Erzwinge ${common.https}`, + hsts: 'HSTS', + enableStrictTransportSecurity: `${common.enable} Strict Transport Security, was HTTPS Verbindungen erzwingt`, + enableIncludeSubDomains: `${common.enable} includeSubDomains Direktive, welche HTTPS Verbindungen auf ALLEN Subdomains erzwingt`, + enablePreload: `${common.enable} preload Direktive, welche Browsern mitteilt, ausschließlich HTTPS Verbindungen zu verwenden`, + certificationType: 'Zertifizierungsart', + customCertificate: 'Eigenes Zertifikat', + letsEncryptEmail: `${common.letsEncrypt} E-Mail`, + http3IsANonStandardModule: 'HTTP/3 ist kein Standard NGINX Modul. Besuche das ', + http3NginxQuicReadme: 'NGINX QUIC Readme', + http3OrThe: ' oder das ', + http3CloudflareQuicheProject: 'Cloudflare Quiche Project', + http3ForBuildingNginxWithHttp3: ' für Informationen, wie man NGINX mit HTTP/3 verwendet!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/index.js new file mode 100644 index 00000000..42ec3ddf --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/index.js @@ -0,0 +1,38 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import onion from './onion'; +import php from './php'; +import presets from './presets'; +import python from './python'; +import restrict from './restrict'; +import reverseProxy from './reverse_proxy'; +import routing from './routing'; +import server from './server'; + +export default { https, logging, php, presets, python, reverseProxy, routing, server, restrict, onion }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/logging.js new file mode 100644 index 00000000..285f24be --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/logging.js @@ -0,0 +1,33 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + byDomain: 'der Domain', + enableForThisDomain: 'Für diese Domain aktivieren', + arguments: 'arguments', // TODO: translate + level: 'logging level', // TODO: translate + forRedirects: 'for redirects', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/onion.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/onion.js new file mode 100644 index 00000000..fd3054b7 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/onion.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +const onion = 'Onion'; + +export default { + onion, + onionLocation: `${onion} Location`, + provideAnOnionLocationToSetOnionLocationHeader: 'Gib eine Onion Adresse an, um den Onion-Location Header für deine Seite zu setzen.', + letsVisitorsKnownOnionServicesIsAvailable: 'Dies teilt deinen Besuchern mit, dass eine Onion-Version deiner Webseite für Tor-Browser verfügbar ist.', + learnMoreAboutOnionServices: 'Lerne mehr über Onion-Dienste', + onionLocationExpectedToEndWithOnion: 'Onion Adressen enden normalerweise mit `.onion`.', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/php.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/php.js new file mode 100644 index 00000000..1daaef8f --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/php.js @@ -0,0 +1,57 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + phpIsDisabled: `${common.php} ist deaktiviert.`, + phpCannotBeEnabledWithReverseProxy: `${common.php} kann nicht aktiviert werden, während ein Reverse Proxy aktiviert ist.`, + phpCannotBeEnabledWithPython: `${common.php} kann nicht aktiviert werden, während ${common.python} aktiviert ist.`, + enablePhp: `${common.enable} ${common.php}`, + wordPressRules: `${common.wordPress} Regeln`, + enableWordPressRules: `${common.enable} ${common.wordPress}-spezifische Regeln`, + drupalRules: `${common.drupal} Regeln`, + enableDrupalRules: `${common.enable} ${common.drupal}-spezifische Regeln`, + magentoRules: `${common.magento} Regeln`, + enableMagentoRules: `${common.enable} ${common.magento}-spezifische Regeln`, + joomlaRules: `${common.joomla} Regeln`, + enableJoomlaRules: `${common.enable} ${common.joomla}-spezifische Regeln`, + phpServer: `${common.php} Server`, + phpBackupServer: `${common.php} Backup Server`, + tcp: 'TCP', + hhvmSocket: 'HHVM Socket', + php70Socket: '7.0 Socket', + php71Socket: '7.1 Socket', + php72Socket: '7.2 Socket', + php73Socket: '7.3 Socket', + php74Socket: '7.4 Socket', + php80Socket: '8.0 Socket', + php81Socket: '8.1 Socket', + php82Socket: '8.2 Socket', + phpSocket: 'PHP Socket', + custom: 'Benutzerdefiniert', + disabled: 'Deaktiviert', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/presets.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/presets.js new file mode 100644 index 00000000..fd77dd69 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/presets.js @@ -0,0 +1,33 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + presets: 'Voreinstellungen', + itLooksLikeYouCustomisedTheConfig: 'Es sieht so aus, als hättest du die Konfiguration für diese Webseite angepasst. Eine neue Voreinstellung zu laden könnte manche deiner Anpassungen zurücksetzen oder ändern.', + frontend: 'Frontend', + nodeJs: 'Node.js', + singlePageApplication: 'Single-Page-Webanwendung', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/python.js new file mode 100644 index 00000000..9a73bdfe --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/python.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonIsDisabled: `${common.python} ist deaktiviert.`, + pythonCannotBeEnabledWithReverseProxy: `${common.python} kann nicht aktiviert werden, während ein Reverse Proxy aktiviert ist.`, + pythonCannotBeEnabledWithPhp: `${common.python} kann nicht aktiviert werden, während ${common.php} aktiviert ist.`, + enablePython: `${common.enable} ${common.python}`, + djangoRules: `${common.django} Regeln`, + enableDjangoRules: `${common.enable} ${common.django}-spezifische Regeln`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/restrict.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/restrict.js new file mode 100644 index 00000000..0fade81a --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/restrict.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + disableForThisDomain: 'Für diese Domain deaktivieren', + responseCode: 'HTTP Antwort-Code', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/reverse_proxy.js new file mode 100644 index 00000000..52d9c662 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/reverse_proxy.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + reverseProxyIsDisabled: `${common.reverseProxy} ist deaktiviert.`, + reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} kann nicht aktiviert werden, während ${common.php} aktiviert ist.`, + reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} kann nicht aktiviert werden, während ${common.python} aktiviert ist.`, + enableReverseProxy: `${common.enable} ${common.reverseProxy}`, + proxyHostHeader: 'Proxy Host header', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/routing.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/routing.js new file mode 100644 index 00000000..219eb7e4 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/routing.js @@ -0,0 +1,35 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + fallbackRouting: 'Fallback Routing', + fallbackRoutingPhpPath: `Fallback Routing ${common.php} Pfad`, + legacyPhpRouting: `Legacy ${common.php} Routing`, + enableLegacyRouting: `${common.enable} Legacy Routing`, + routing: 'Routing', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/server.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/server.js new file mode 100644 index 00000000..dfae2ac1 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/domain_sections/server.js @@ -0,0 +1,37 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + domain: 'Domain', + documentRoot: 'Document Root', + oneOrMoreOtherDomainsAreAlsoNamed: 'Eine oder mehrere Domains lauten ebenfalls', + thisWillCauseIssuesWithConfigGeneration: 'Dies sorgt für Probleme beim Generieren der Konfigurationsdateien.', + wwwSubdomain: 'WWW Subdomain', + cdnSubdomain: 'CDN Subdomain', + redirectSubdomains: 'Subdomains weiterleiten', + server: 'Server', + listen: 'Hören auf', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/footer.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/footer.js new file mode 100644 index 00000000..38f6f354 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/footer.js @@ -0,0 +1,39 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + backToTop: 'Zurück nach oben', + thisToolIs: 'Dieses Tool ist', + openSourceOnGitHub: 'Open-Source auf GitHub', + underThe: 'unter der', + mit: 'MIT', + license: 'Lizenz!', + weWelcomeFeedbackAndContributions: 'Feedback und Beiträge sind willkommen.', + originallyCreatedBy: 'Ursprünglich erstellt von', + balintSzekeres: 'Bálint Szekeres', + maintainedBy: 'gepflegt von', + digitalOcean: 'DigitalOcean', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/docker.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/docker.js new file mode 100644 index 00000000..997b53e6 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/docker.js @@ -0,0 +1,41 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const docker = 'Docker'; +const dockerfile = 'Dockerfile'; + +export default { + docker, + dockerfile, + dockerCompose: `${docker} Compose`, + applyDockerTweaks: `${docker} Optimierungen anwenden`, + applyDockerTweaksForNginx: `Füge Optimierungen für den Betrieb von ${common.nginx} mit ${docker} der Konfigurationsdatei hinzu`, + applyDockerTweaksExplainer: `Setzt den ${common.nginx} Benutzer auf nginx und die PID auf /var/run/nginx.pid`, + includeDockerfile: `${dockerfile} hinzufügen, um ${common.nginx} mit ${docker} zu betreiben`, + includeDockerCompose: `docker-compose.yaml hinzufügen, um ${common.nginx} mit docker-compose zu betreiben`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/https.js new file mode 100644 index 00000000..a3463107 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/https.js @@ -0,0 +1,52 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const mozilla = 'Mozilla'; +const ipv4 = 'IPv4'; +const ipv6 = 'IPv6'; + +export default { + sslProfile: `${common.ssl} Profil`, + httpsMustBeEnabledOnOneSite: `${common.https} muss auf mindestes einer Webseite aktiviert sein, um globale ${common.https} Einstellungen zu konfigurieren.`, + portReuse: 'Reuseport', + enableReuseOfPort: `${common.enable} Reuseport um einen Socket pro Worker zu generieren`, + ocspDnsResolvers: 'OCSP DNS Resolver', + cloudflareResolver: 'Cloudflare Resolver', + googlePublicDns: 'Google Public DNS', + openDns: 'OpenDNS', + quad9: 'Quad9', + verisign: 'Verisign', + letsEncryptWebroot: `${common.letsEncrypt} Web-Root`, + letsEncryptCertRoot: `${common.letsEncrypt} Zertifikats-Verzeichnis`, + mozillaModern: `${mozilla} Modern`, + mozillaIntermediate: `${mozilla} Intermediate`, + mozillaOld: `${mozilla} Old`, + ipv4Only: `nur ${ipv4}`, + ipv6Only: `nur ${ipv6}`, + ipv4AndIpv6: `${ipv4} & ${ipv6}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/index.js new file mode 100644 index 00000000..35eba1d9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/index.js @@ -0,0 +1,37 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import nginx from './nginx'; +import performance from './performance'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import security from './security'; +import tools from './tools'; +import docker from './docker'; + +export default { https, logging, nginx, performance, python, reverseProxy, security, tools, docker }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/logging.js new file mode 100644 index 00000000..351d3c04 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/logging.js @@ -0,0 +1,42 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableFileNotFoundErrorLogging: `${common.enable} "Seite nicht gefunden" Error Logging in`, + logformat: 'log_format', + level: 'logging level', // TODO: translate + enableCloudflare: 'Füge Cloudflare Anfrage-Header dem Standard Log-Format hinzu', + cfRay: 'CF-Ray', + cfConnectingIp: 'CF-Connecting-IP', + xForwardedFor: 'X-Forwarded-For', + xForwardedProto: 'X-Forwarded-Proto', + trueClientIp: 'True-Client-IP', + cfIpCountry: 'CF-IPCountry', + cfVisitor: 'CF-Visitor', + cdnLoop: 'CDN-Loop', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/nginx.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/nginx.js new file mode 100644 index 00000000..b9424aed --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/nginx.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + nginxConfigDirectory: `${common.nginx} Konfigurationsverzeichnis`, + mb: 'MB', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/performance.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/performance.js new file mode 100644 index 00000000..85614985 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/performance.js @@ -0,0 +1,44 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + disableHtmlCaching: 'Disable HTML caching', // TODO: translate + enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate + gzipCompression: 'Gzip Komprimierung', + enableGzipCompression: `${common.enable} Gzip Komprimierung`, + brotliCompression: 'Brotli Komprimierung', + enableBrotliCompression: `${common.enable} Brotli Komprimierung`, + brotliIsANonStandardModule: 'Brotli ist kein Standard NGINX Modul. Besuche das ', + brotliGoogleNgxBrotliProject: 'Google ngx_brotli Projekt', + brotliForBuildingNginxWithBrotli: ' für Informationen, wie man NGINX mit Brotli verwendet!', + expirationForAssets: 'Ablauf von Assets', + expirationForMedia: 'Ablauf von Medien', + expirationForSvgs: 'Ablauf von SVGs', + expirationForFonts: 'Ablauf von Schriften', + performance: 'Performance', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/python.js new file mode 100644 index 00000000..a79a5077 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/python.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonServer: `${common.python} Server`, + pythonMustBeEnabledOnOneSite: `${common.python} muss auf mindestes einer Webseite aktiviert sein, um globale ${common.python} Einstellungen zu konfigurieren.`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/reverse_proxy.js new file mode 100644 index 00000000..0ae7076d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/reverse_proxy.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const legacyXForwarded = 'Legacy X-Forwarded-* Header'; + +export default { + reverseProxyMustBeEnabledOnOneSite: `${common.reverseProxy} muss auf mindestes einer Webseite aktiviert sein, um globale ${common.reverseProxy} Einstellungen zu konfigurieren.`, + seconds: 'Sekunden', + passOn: `${legacyXForwarded} weiterleiten`, + remove: `${legacyXForwarded} aktiv entfernen`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/security.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/security.js new file mode 100644 index 00000000..a67c84a7 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/security.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `Bei der Verwendung von ${common.wordPress} ist es oft nötig, script-src 'self' 'unsafe-inline' 'unsafe-eval'; in die Content Security Policy aufzunehmen, damit der Admin-Bereich korrekt funktioniert.`, + security: 'Security', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/tools.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/tools.js new file mode 100644 index 00000000..b40097af --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/global_sections/tools.js @@ -0,0 +1,53 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + modularizedStructure: 'Modularisierte Struktur', + enableModularizedConfigFiles: `${common.enable} modularisierte Konfigurationsdateien`, + symlinkVhost: 'Symlink VHost', + enableSymLinksFrom: `${common.enable} Symlinks von`, + to: 'zu', + shareConfiguration: 'Konfiguration teilen', + resetConfiguration: 'Konfiguration zurücksetzen', + resetGlobalConfig: 'Globale Konfiguration zurücksetzen', + resetAllDomains: 'Alle Domains zurücksetzen', + removeAllDomains: 'Alle Domains entfernen', + resetAllDomainsConfig: 'Alle Domain-Konfigurationen entfernen', + resetDomainConfig: 'Konfiguration zurücksetzen', + removeDomain: 'Domain entfernen', + yesImSure: 'Ja, ich bin sicher', + noCancel: 'Nein, abbrechen', + tools: 'Tools', + resetGlobalConfigBody: 'Bist du dir sicher, dass du alle Optionen im Bereich "Globale Konfiguration" zurücksetzen möchtest?', + resetAllDomainsConfigBody: 'Bist du dir sicher, dass du die Konfiguration ALLER Domains zurücksetzen möchtest?', + removeAllDomainsBody: 'Bist du dir sicher, dass du ALLE Domains entfernen möchtest?', + areYouSureYouWantToResetAllConfigurationOptionsForThe: 'Bist du dir sicher, dass du die Konfiguration von', + domain: 'zurücksetzen möchtest?', + areYouSureYouWantToRemoveThe: 'Bist du dir sicher, dass du die Domain ', + domainConfiguration: 'entfernen möchtest?', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/index.js new file mode 100644 index 00000000..d9467454 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/index.js @@ -0,0 +1,35 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import app from './app'; +import setup from './setup'; +import footer from './footer'; +import domainSections from './domain_sections'; +import globalSections from './global_sections'; +import setupSections from './setup_sections'; +import callouts from './callouts'; + +export default { app, setup, footer, domainSections, globalSections, setupSections, callouts }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup.js new file mode 100644 index 00000000..643eeff9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + downloadConfig: 'Konfiguration herunterladen', + copyBase64: 'Als Base64 kopieren', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/certbot.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/certbot.js new file mode 100644 index 00000000..15fbbc6a --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/certbot.js @@ -0,0 +1,39 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const certbot = 'Certbot'; + +export default { + commentOutSslDirectivesInConfiguration: `Kommentiere ${common.ssl}-relevante Direktiven in deiner Konfiguration aus:`, + reloadYourNginxServer: `Führe einen reload deines ${common.nginx} Server aus:`, + obtainSslCertificatesFromLetsEncrypt: `Erhalte ${common.ssl} Zertifikate von ${common.letsEncrypt} mittels ${certbot}:`, + uncommentSslDirectivesInConfiguration: `Kommentiere ${common.ssl}-relevante Direktiven in deiner Konfiguration ein:`, + configureCertbotToReloadNginxOnCertificateRenewal: `Konfiguriere ${certbot} um ${common.nginx} neu zu laden, wenn die Zertifikate erfolgreich erneuert wurden:`, + certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} muss für deine ${common.nginx} Konfiguration nicht eingerichtet werden.`, + certbot, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/download.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/download.js new file mode 100644 index 00000000..ffaf9363 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/download.js @@ -0,0 +1,40 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + downloadTheGeneratedConfig: 'Generierte Konfigurationsdateien herunterladen:', + andUploadItToYourServers: 'Auf deinen Server hochladen und ins Verzeichnis ', + directory: 'verschieben.', + or: 'Oder ', + copyBase64StringOfCompressedConfig: 'kopiere einen Base64 String der komprimierten Konfiguration', + pasteItInYourServersCommandLineAndExecute: ', füge ihn auf der Kommandozeile deines Servers ein und führe ihn aus.', + navigateToYourNginxConfigurationDirectoryOnYourServer: `Wechsle in das ${common.nginx} Konfigurationsverzeichnis deines Servers:`, + createABackupOfYourCurrentNginxConfiguration: `Erstelle ein Backup deiner aktuellen ${common.nginx} Konfiguration:`, + extractTheNewCompressedConfigurationArchiveUsingTar: 'Entpacke das komprimierte Konfigurationsverzeichnis mittels tar:', + download: 'Download', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/go_live.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/go_live.js new file mode 100644 index 00000000..212e4014 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/go_live.js @@ -0,0 +1,33 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + letsGoLive: 'Jetzt gehts los!', + reloadNginxToLoadInYourNewConfiguration: `Lade ${common.nginx} neu, um deine neue Konfiguration zu verwenden:`, + goLive: 'Los gehts!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/index.js new file mode 100644 index 00000000..f64fc18e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/index.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import certbot from './certbot'; +import download from './download'; +import goLive from './go_live'; +import ssl from './ssl'; + +export default { certbot, download, goLive, ssl }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/ssl.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/ssl.js new file mode 100644 index 00000000..0aafe4fa --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/de/templates/setup_sections/ssl.js @@ -0,0 +1,34 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + generateDiffieHellmanKeysByRunningThisCommandOnYourServer: 'Erzeuge Diffie-Hellman Schlüssel indem du diesen Befehl auf deinem Server ausführst:', + createACommonAcmeChallengeDirectoryForLetsEncrypt: `Erstelle ein ACME-Challenge Verzeichnis (für ${common.letsEncrypt}):`, + noAdditionalStepsAreNeededToSetUpSslForNginx: `Es sind keine weiteren Schritte nötig, um ${common.ssl} für deine ${common.nginx} Konfiguration einzurichten.`, + sslInit: `${common.ssl} initialisieren`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/common.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/common.js new file mode 100644 index 00000000..00b17868 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/common.js @@ -0,0 +1,48 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + back: 'Back', + next: 'Next', + enable: 'enable', + php: 'PHP', + ssl: 'SSL', + nginx: 'NGINX', + http: 'HTTP', + https: 'HTTPS', + letsEncrypt: 'Let\'s Encrypt', + python: 'Python', + wordPress: 'WordPress', + drupal: 'Drupal', + magento: 'Magento', + joomla: 'Joomla', + django: 'Django', + logging: 'Logging', + reverseProxy: 'Reverse proxy', + reverseProxyLower: 'reverse proxy', + restrict: 'Restrict', + path: 'Path', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/index.js new file mode 100644 index 00000000..01c3f3e9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/index.js @@ -0,0 +1,31 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from './common'; +import languages from './languages'; +import templates from './templates'; + +export default { common, languages, templates }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/languages.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/languages.js new file mode 100644 index 00000000..5cb30600 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/languages.js @@ -0,0 +1,38 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + en: 'English', + es: 'Spanish', + zhCN: 'Chinese (simplified)', + zhTW: 'Chinese (traditional)', + ptBR: 'Portuguese (brazilian)', + fr: 'French', + ru: 'Russian', + pl: 'Polish', + de: 'German', + ja: 'Japanese', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/app.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/app.js new file mode 100644 index 00000000..66fbfc17 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/app.js @@ -0,0 +1,40 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../common'; + +export default { + title: `${common.nginx}Config`, + description: `The easiest way to configure a performant, secure, and stable ${common.nginx} server.`, + singleColumnMode: 'Single column mode', + splitColumnMode: 'Side-by-side mode', + perWebsiteConfig: 'Per-website config', + addSite: 'Add site', + globalConfig: 'Global config', + setup: 'Setup', + configFiles: 'Config files', + copied: 'Copied', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/callouts/contribute.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/callouts/contribute.js new file mode 100644 index 00000000..5eb241a8 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/callouts/contribute.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + wantToContributeChanges: '👋 Want to request new features, contribute changes, or translate the tool into a new language?', + getInvolvedOnGitHub: 'Get involved on GitHub', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/callouts/droplet.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/callouts/droplet.js new file mode 100644 index 00000000..ab78f647 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/callouts/droplet.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + lookingForAPlaceToDeploy: '👋 Looking for a place to deploy your new configuration?', + tryOutDigitalOceansDroplet: 'Try out DigitalOcean\'s LEMP Droplet with NGINX', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/callouts/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/callouts/index.js new file mode 100644 index 00000000..dd68947b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/callouts/index.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import droplet from './droplet'; +import contribute from './contribute'; + +export default { droplet, contribute }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/https.js new file mode 100644 index 00000000..a6511b6a --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/https.js @@ -0,0 +1,48 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableEncryptedSslConnection: `${common.enable} encrypted ${common.ssl} connections`, + http2: `${common.http}/2`, + enableHttp2Connections: `${common.enable} ${common.http}/2 connections`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.enable} ${common.http}/3 connections`, + forceHttps: `Force ${common.https}`, + hsts: 'HSTS', + enableStrictTransportSecurity: `${common.enable} Strict Transport Security, requiring HTTPS connections`, + enableIncludeSubDomains: `${common.enable} includeSubDomains directive, requiring HTTPS connections for ALL subdomains`, + enablePreload: `${common.enable} preload directive, telling browsers to always make HTTPS connections only`, + certificationType: 'Certification type', + customCertificate: 'Custom certificate', + letsEncryptEmail: `${common.letsEncrypt} email`, + http3IsANonStandardModule: 'HTTP/3 isn\'t a standard NGINX module, check the ', + http3NginxQuicReadme: 'NGINX QUIC readme', + http3OrThe: ' or the ', + http3CloudflareQuicheProject: 'Cloudflare quiche project', + http3ForBuildingNginxWithHttp3: ' for how to build NGINX with HTTP/3!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/index.js new file mode 100644 index 00000000..5b2b8177 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/index.js @@ -0,0 +1,38 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import php from './php'; +import presets from './presets'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import routing from './routing'; +import server from './server'; +import restrict from './restrict'; +import onion from './onion'; + +export default { https, logging, php, presets, python, reverseProxy, routing, server, restrict, onion }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/logging.js new file mode 100644 index 00000000..342d4b99 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/logging.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + byDomain: 'by domain', + enableForThisDomain: `${common.enable} for this domain`, + arguments: 'arguments', + level: 'logging level', + forRedirects: 'for redirects', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/onion.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/onion.js new file mode 100644 index 00000000..6ada5a7d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/onion.js @@ -0,0 +1,36 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +const onion = 'Onion'; + +export default { + onion, + onionLocation: `${onion} location`, + provideAnOnionLocationToSetOnionLocationHeader: 'Provide an onion location address to set the Onion-Location header for your site.', + letsVisitorsKnownOnionServicesIsAvailable: 'This lets visitors know that an onion services version of your site is available for Tor browsers.', + learnMoreAboutOnionServices: 'Learn more about Onion services', + onionLocationExpectedToEndWithOnion: 'Onion location addresses normally end with `.onion`.', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/php.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/php.js new file mode 100644 index 00000000..bb8414da --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/php.js @@ -0,0 +1,57 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + phpIsDisabled: `${common.php} is disabled.`, + phpCannotBeEnabledWithReverseProxy: `${common.php} cannot be enabled whilst the reverse proxy is enabled.`, + phpCannotBeEnabledWithPython: `${common.php} cannot be enabled whilst ${common.python} is enabled.`, + enablePhp: `${common.enable} ${common.php}`, + wordPressRules: `${common.wordPress} rules`, + enableWordPressRules: `${common.enable} ${common.wordPress}-specific rules`, + drupalRules: `${common.drupal} rules`, + enableDrupalRules: `${common.enable} ${common.drupal}-specific rules`, + magentoRules: `${common.magento} rules`, + enableMagentoRules: `${common.enable} ${common.magento}-specific rules`, + joomlaRules: `${common.joomla} rules`, + enableJoomlaRules: `${common.enable} ${common.joomla}-specific rules`, + phpServer: `${common.php} server`, + phpBackupServer: `${common.php} backup server`, + tcp: 'TCP', + hhvmSocket: 'HHVM socket', + php70Socket: '7.0 socket', + php71Socket: '7.1 socket', + php72Socket: '7.2 socket', + php73Socket: '7.3 socket', + php74Socket: '7.4 socket', + php80Socket: '8.0 socket', + php81Socket: '8.1 socket', + php82Socket: '8.2 socket', + phpSocket: 'PHP socket', + custom: 'Custom', + disabled: 'Disabled', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/presets.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/presets.js new file mode 100644 index 00000000..864faef3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/presets.js @@ -0,0 +1,33 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + presets: 'Presets', + itLooksLikeYouCustomisedTheConfig: 'It looks like you\'ve customised the configuration for this domain. Choosing a new preset may reset or change some of the settings that you\'ve customised.', + frontend: 'Frontend', + nodeJs: 'Node.js', + singlePageApplication: 'Single-page application', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/python.js new file mode 100644 index 00000000..d04b4128 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/python.js @@ -0,0 +1,36 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonIsDisabled: `${common.python} is disabled.`, + pythonCannotBeEnabledWithReverseProxy: `${common.python} cannot be enabled whilst the reverse proxy is enabled.`, + pythonCannotBeEnabledWithPhp: `${common.python} cannot be enabled whilst ${common.php} is enabled.`, + enablePython: `${common.enable} ${common.python}`, + djangoRules: `${common.django} rules`, + enableDjangoRules: `${common.enable} ${common.django}-specific rules`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/restrict.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/restrict.js new file mode 100644 index 00000000..c509814b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/restrict.js @@ -0,0 +1,30 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + disableForThisDomain: 'disable for this domain', + responseCode: 'Response code', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/reverse_proxy.js new file mode 100644 index 00000000..8cd8ecf3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/reverse_proxy.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + reverseProxyIsDisabled: `${common.reverseProxy} is disabled.`, + reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} cannot be enabled whilst ${common.php} is enabled.`, + reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} cannot be enabled whilst ${common.python} is enabled.`, + enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`, + proxyHostHeader: 'Proxy Host header', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/routing.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/routing.js new file mode 100644 index 00000000..e3bbc81e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/routing.js @@ -0,0 +1,35 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + fallbackRouting: 'Fallback routing', + fallbackRoutingPhpPath: `Fallback routing ${common.php} path`, + legacyPhpRouting: `Legacy ${common.php} routing`, + enableLegacyRouting: `${common.enable} legacy routing`, + routing: 'Routing', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/server.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/server.js new file mode 100644 index 00000000..df0715cd --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/domain_sections/server.js @@ -0,0 +1,37 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + domain: 'Domain', + documentRoot: 'Document root', + oneOrMoreOtherDomainsAreAlsoNamed: 'One or more other domains are also named', + thisWillCauseIssuesWithConfigGeneration: 'This will cause issues with config generation.', + wwwSubdomain: 'www subdomain', + cdnSubdomain: 'CDN subdomain', + redirectSubdomains: 'Redirect subdomains', + server: 'Server', + listen: 'listen', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/footer.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/footer.js new file mode 100644 index 00000000..b8d360d9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/footer.js @@ -0,0 +1,39 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + backToTop: 'Back To Top', + thisToolIs: 'This tool is', + openSourceOnGitHub: 'open-source on GitHub', + underThe: 'under the', + mit: 'MIT', + license: 'license!', + weWelcomeFeedbackAndContributions: 'We welcome feedback and contributions.', + originallyCreatedBy: 'Originally created by', + balintSzekeres: 'Bálint Szekeres', + maintainedBy: 'maintained by', + digitalOcean: 'DigitalOcean', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/docker.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/docker.js new file mode 100644 index 00000000..510111bf --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/docker.js @@ -0,0 +1,41 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const docker = 'Docker'; +const dockerfile = 'Dockerfile'; + +export default { + docker, + dockerfile, + dockerCompose: `${docker} Compose`, + applyDockerTweaks: `Apply ${docker} tweaks`, + applyDockerTweaksForNginx: `Apply configuration tweaks for running ${common.nginx} with ${docker}`, + applyDockerTweaksExplainer: `Updates the ${common.nginx} user to be nginx and the pid to /var/run/nginx.pid`, + includeDockerfile: `Include ${dockerfile} to run ${common.nginx} with ${docker}`, + includeDockerCompose: `Include docker-compose to run ${common.nginx} with docker-compose`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/https.js new file mode 100644 index 00000000..58157687 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/https.js @@ -0,0 +1,52 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const mozilla = 'Mozilla'; +const ipv4 = 'IPv4'; +const ipv6 = 'IPv6'; + +export default { + sslProfile: `${common.ssl} Profile`, + httpsMustBeEnabledOnOneSite: `${common.https} must be enabled on at least one site to configure global ${common.https} settings.`, + portReuse: 'Reuseport', + enableReuseOfPort: `${common.enable} reuseport to generate a listening socket per worker`, + ocspDnsResolvers: 'OCSP DNS Resolvers', + cloudflareResolver: 'Cloudflare Resolver', + googlePublicDns: 'Google Public DNS', + openDns: 'OpenDNS', + quad9: 'Quad9', + verisign: 'Verisign', + letsEncryptWebroot: `${common.letsEncrypt} webroot`, + letsEncryptCertRoot: `${common.letsEncrypt} certificate directory`, + mozillaModern: `${mozilla} Modern`, + mozillaIntermediate: `${mozilla} Intermediate`, + mozillaOld: `${mozilla} Old`, + ipv4Only: `${ipv4} only`, + ipv6Only: `${ipv6} only`, + ipv4AndIpv6: `${ipv4} & ${ipv6}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/index.js new file mode 100644 index 00000000..35eba1d9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/index.js @@ -0,0 +1,37 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import nginx from './nginx'; +import performance from './performance'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import security from './security'; +import tools from './tools'; +import docker from './docker'; + +export default { https, logging, nginx, performance, python, reverseProxy, security, tools, docker }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/logging.js new file mode 100644 index 00000000..d31315aa --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/logging.js @@ -0,0 +1,42 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableFileNotFoundErrorLogging: `${common.enable} file not found error logging in`, + logformat: 'log_format', + level: 'logging level', + enableCloudflare: 'add Cloudflare request headers to the default log format', + cfRay: 'CF-Ray', + cfConnectingIp: 'CF-Connecting-IP', + xForwardedFor: 'X-Forwarded-For', + xForwardedProto: 'X-Forwarded-Proto', + trueClientIp: 'True-Client-IP', + cfIpCountry: 'CF-IPCountry', + cfVisitor: 'CF-Visitor', + cdnLoop: 'CDN-Loop', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/nginx.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/nginx.js new file mode 100644 index 00000000..99b56060 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/nginx.js @@ -0,0 +1,32 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + nginxConfigDirectory: `${common.nginx} config directory`, + mb: 'MB', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/performance.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/performance.js new file mode 100644 index 00000000..0bd4eb9f --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/performance.js @@ -0,0 +1,44 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + disableHtmlCaching: 'Disable HTML caching', + enableDisableHtmlCaching: 'disable HTML caching', + gzipCompression: 'Gzip compression', + enableGzipCompression: `${common.enable} gzip compression`, + brotliCompression: 'Brotli compression', + enableBrotliCompression: `${common.enable} brotli compression`, + brotliIsANonStandardModule: 'Brotli isn\'t a standard NGINX module, check the ', + brotliGoogleNgxBrotliProject: 'Google ngx_brotli project', + brotliForBuildingNginxWithBrotli: ' for how to build NGINX with Brotli!', + expirationForAssets: 'Expiration for assets', + expirationForMedia: 'Expiration for media', + expirationForSvgs: 'Expiration for SVGs', + expirationForFonts: 'Expiration for fonts', + performance: 'Performance', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/python.js new file mode 100644 index 00000000..24b2d306 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/python.js @@ -0,0 +1,32 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonServer: `${common.python} server`, + pythonMustBeEnabledOnOneSite: `${common.python} must be enabled on at least one site to configure global ${common.python} settings.`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/reverse_proxy.js new file mode 100644 index 00000000..1d0d8bd0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/reverse_proxy.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const legacyXForwarded = 'Legacy X-Forwarded-* headers'; + +export default { + reverseProxyMustBeEnabledOnOneSite: `${common.reverseProxy} must be enabled on at least one site to configure global ${common.reverseProxyLower} settings.`, + seconds: 'seconds', + passOn: `${legacyXForwarded} passed on`, + remove: `${legacyXForwarded} actively removed`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/security.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/security.js new file mode 100644 index 00000000..fec968f8 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/security.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `When using ${common.wordPress}, script-src 'self' 'unsafe-inline' 'unsafe-eval'; is often required in the Content Security Policy to allow the admin panel to function correctly.`, + security: 'Security', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/tools.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/tools.js new file mode 100644 index 00000000..13064f7c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/global_sections/tools.js @@ -0,0 +1,53 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + modularizedStructure: 'Modularized structure', + enableModularizedConfigFiles: `${common.enable} modularized config files`, + symlinkVhost: 'Symlink vhost', + enableSymLinksFrom: `${common.enable} symlinks from`, + to: 'to', + shareConfiguration: 'Share configuration', + resetConfiguration: 'Reset configuration', + resetGlobalConfig: 'Reset global config', + resetAllDomains: 'Reset all domains', + removeAllDomains: 'Remove all domains', + resetAllDomainsConfig: 'Reset all domain configs', + resetDomainConfig: 'Reset domain config', + removeDomain: 'Remove domain', + yesImSure: 'Yes, I\'m sure', + noCancel: 'No, cancel', + tools: 'Tools', + resetGlobalConfigBody: 'Are you sure you want to reset all configuration options in the global config section?', + resetAllDomainsConfigBody: 'Are you sure you want to reset the configuration of ALL domains?', + removeAllDomainsBody: 'Are you sure you want to remove ALL domain configurations?', + areYouSureYouWantToResetAllConfigurationOptionsForThe: 'Are you sure you want to reset all configuration options for the', + domain: 'domain?', + areYouSureYouWantToRemoveThe: 'Are you sure you want to remove the ', + domainConfiguration: 'domain configuration?', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/index.js new file mode 100644 index 00000000..d9467454 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/index.js @@ -0,0 +1,35 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import app from './app'; +import setup from './setup'; +import footer from './footer'; +import domainSections from './domain_sections'; +import globalSections from './global_sections'; +import setupSections from './setup_sections'; +import callouts from './callouts'; + +export default { app, setup, footer, domainSections, globalSections, setupSections, callouts }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup.js new file mode 100644 index 00000000..65bfbcba --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup.js @@ -0,0 +1,30 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + downloadConfig: 'Download Config', + copyBase64: 'Copy Base64', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/certbot.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/certbot.js new file mode 100644 index 00000000..bfbc1682 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/certbot.js @@ -0,0 +1,39 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const certbot = 'Certbot'; + +export default { + commentOutSslDirectivesInConfiguration: `Comment out ${common.ssl} related directives in the configuration:`, + reloadYourNginxServer: `Reload your ${common.nginx} server:`, + obtainSslCertificatesFromLetsEncrypt: `Obtain ${common.ssl} certificates from ${common.letsEncrypt} using ${certbot}:`, + uncommentSslDirectivesInConfiguration: `Uncomment ${common.ssl} related directives in the configuration:`, + configureCertbotToReloadNginxOnCertificateRenewal: `Configure ${certbot} to reload ${common.nginx} when it successfully renews certificates:`, + certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} does not need to be set up for your ${common.nginx} configuration.`, + certbot, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/download.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/download.js new file mode 100644 index 00000000..7054baf7 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/download.js @@ -0,0 +1,40 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + downloadTheGeneratedConfig: 'Download the generated config:', + andUploadItToYourServers: 'and upload it to your server\'s', + directory: 'directory.', + or: 'or, ', + copyBase64StringOfCompressedConfig: 'Copy a base64 string of the compressed config', + pasteItInYourServersCommandLineAndExecute: ', paste it in your server\'s command line and execute it.', + navigateToYourNginxConfigurationDirectoryOnYourServer: `Navigate to your ${common.nginx} configuration directory on your server:`, + createABackupOfYourCurrentNginxConfiguration: `Create a backup of your current ${common.nginx} configuration:`, + extractTheNewCompressedConfigurationArchiveUsingTar: 'Extract the new compressed configuration archive using tar:', + download: 'Download', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/go_live.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/go_live.js new file mode 100644 index 00000000..9c023050 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/go_live.js @@ -0,0 +1,33 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + letsGoLive: 'Let\'s go live!', + reloadNginxToLoadInYourNewConfiguration: `Reload ${common.nginx} to load in your new configuration:`, + goLive: 'Go live!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/index.js new file mode 100644 index 00000000..378a5cf3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/index.js @@ -0,0 +1,32 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import certbot from './certbot'; +import download from './download'; +import goLive from './go_live'; +import ssl from './ssl'; + +export default { certbot, download, goLive, ssl }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/ssl.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/ssl.js new file mode 100644 index 00000000..5da83397 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/en/templates/setup_sections/ssl.js @@ -0,0 +1,34 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + generateDiffieHellmanKeysByRunningThisCommandOnYourServer: 'Generate Diffie-Hellman keys by running this command on your server:', + createACommonAcmeChallengeDirectoryForLetsEncrypt: `Create a common ACME-challenge directory (for ${common.letsEncrypt}):`, + noAdditionalStepsAreNeededToSetUpSslForNginx: `No additional steps are needed to set up ${common.ssl} for your ${common.nginx} configuration.`, + sslInit: `${common.ssl} init`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/common.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/common.js new file mode 100644 index 00000000..5cad640b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/common.js @@ -0,0 +1,48 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + back: 'Anterior', + next: 'Siguiente', + enable: 'activar', + php: 'PHP', + ssl: 'SSL', + nginx: 'NGINX', + http: 'HTTP', + https: 'HTTPS', + letsEncrypt: 'Let\'s Encrypt', + python: 'Python', + wordPress: 'WordPress', + drupal: 'Drupal', + magento: 'Magento', + joomla: 'Joomla', + django: 'Django', + logging: 'Registro', + reverseProxy: 'Proxy inverso', + reverseProxyLower: 'proxy inverso', + restrict: 'Restringir', + path: 'Ruta', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/index.js new file mode 100644 index 00000000..15420a11 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/index.js @@ -0,0 +1,31 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from './common'; +import languages from './languages'; +import templates from './templates'; + +export default { common, languages, templates }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/languages.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/languages.js new file mode 100644 index 00000000..1311a5b3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/languages.js @@ -0,0 +1,38 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + en: 'Ingles', + es: 'Español', + zhCN: 'Chino (simplificado)', + zhTW: 'Chino (tradicional)', + ptBR: 'Portugués (brasileño)', + fr: 'Francés', + ru: 'Ruso', + pl: 'Polaco', + de: 'Alemán', + ja: 'Japonés', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/app.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/app.js new file mode 100644 index 00000000..d10755b0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/app.js @@ -0,0 +1,40 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../common'; + +export default { + title: `${common.nginx}Config`, + description: `La forma más fácil de configurar un rendidor, seguro y estable servidor de ${common.nginx}.`, + singleColumnMode: 'Modo de columna única', + splitColumnMode: 'Modo de columna dividida', + perWebsiteConfig: 'Configuración por sitio web', + addSite: 'Agregar sitio', + globalConfig: 'Configuración global', + setup: 'Configuración', + configFiles: 'Archivos de configuración', + copied: 'Copiado', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/callouts/contribute.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/callouts/contribute.js new file mode 100644 index 00000000..1e895ea0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/callouts/contribute.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + wantToContributeChanges: '👋 ¿Quiere solicitar nuevas funciones, contribuir con cambios o traducir la herramienta a un nuevo idioma?', + getInvolvedOnGitHub: 'Involúcrate en GitHub', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/callouts/droplet.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/callouts/droplet.js new file mode 100644 index 00000000..c649c160 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/callouts/droplet.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + lookingForAPlaceToDeploy: '👋 ¿Busca un lugar para desplegar su nueva configuración?', + tryOutDigitalOceansDroplet: 'Pruebe LEMP Droplet de DigitalOcean con NGINX', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/callouts/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/callouts/index.js new file mode 100644 index 00000000..dd68947b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/callouts/index.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import droplet from './droplet'; +import contribute from './contribute'; + +export default { droplet, contribute }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/https.js new file mode 100644 index 00000000..93207021 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/https.js @@ -0,0 +1,48 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableEncryptedSslConnection: `${common.enable} conexiones ${common.ssl} encriptadas`, + http2: `${common.http}/2`, + enableHttp2Connections: `${common.enable} conexiones ${common.http}/2`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.enable} conexiones ${common.http}/3`, + forceHttps: `Forzar ${common.https}`, + hsts: 'HSTS', + enableStrictTransportSecurity: `Para ${common.enable} Strict Transport Security, requiriendo conexiones HTTPS`, + enableIncludeSubDomains: `Para ${common.enable} la directiva includeSubDomains, requiriendo conexiones HTTPS para TODOS los subdominios`, + enablePreload: `Para ${common.enable} la directiva directive, decirle a los navegadores que siempre hagan solo conexiones HTTPS`, + certificationType: 'Tipo de certificado', + customCertificate: 'Certificado personalizado', + letsEncryptEmail: `Correo para ${common.letsEncrypt}`, + http3IsANonStandardModule: 'HTTP/3 no es un modulo estandar de NGINX , verificar el ', + http3NginxQuicReadme: 'Readme de NGINX QUIC', + http3OrThe: ' o el ', + http3CloudflareQuicheProject: 'Projecto quiche de Cloudflare', + http3ForBuildingNginxWithHttp3: ' para saber como construir un NGINX con HTTP/3!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/index.js new file mode 100644 index 00000000..a6da9ab9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/index.js @@ -0,0 +1,38 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import php from './php'; +import presets from './presets'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import routing from './routing'; +import server from './server'; +import restrict from './restrict'; +import onion from './onion'; + +export default { https, logging, php, presets, python, reverseProxy, routing, server, restrict, onion }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/logging.js new file mode 100644 index 00000000..e30750e2 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/logging.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + byDomain: 'por dominio', + enableForThisDomain: `${common.enable} para este dominio`, + arguments: 'arguments', // TODO: translate + level: 'logging level', // TODO: translate + forRedirects: 'for redirects', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/onion.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/onion.js new file mode 100644 index 00000000..5b6706b7 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/onion.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +const onion = 'Onion'; + +export default { + onion, + onionLocation: `Ubicación ${onion}`, + provideAnOnionLocationToSetOnionLocationHeader: 'Proporcione una dirección de ubicación Onion para configurar el encabezado de Onion-Location en su sitio.', + letsVisitorsKnownOnionServicesIsAvailable: 'Esto les permite a los visitantes saber que una versión de servicios Onion de su sitio está disponible para los navegadores Tor.', + learnMoreAboutOnionServices: 'Más información sobre los servicios Onion', + onionLocationExpectedToEndWithOnion: 'Las direcciones de ubicación Onion normalmente terminan con `.onion`.', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/php.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/php.js new file mode 100644 index 00000000..c0f82ac1 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/php.js @@ -0,0 +1,57 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + phpIsDisabled: `${common.php} esta desactivado.`, + phpCannotBeEnabledWithReverseProxy: `${common.php} no se puede habilitar mientras el proxy inverso está habilitado.`, + phpCannotBeEnabledWithPython: `${common.php} no se puede habilitar mientras ${common.python} está habilitado.`, + enablePhp: `${common.enable} ${common.php}`, + wordPressRules: `Reglas de ${common.wordPress}`, + enableWordPressRules: `${common.enable} reglas especificas de ${common.wordPress}`, + drupalRules: `Reglas de ${common.drupal}`, + enableDrupalRules: `${common.enable} reglas especificas de ${common.drupal}`, + magentoRules: `Reglas de ${common.magento}`, + enableMagentoRules: `${common.enable} reglas especificas de ${common.magento}`, + joomlaRules: `Reglas de ${common.joomla}`, + enableJoomlaRules: `${common.enable} reglas especificas de ${common.joomla}`, + phpServer: `Servidor ${common.php}`, + phpBackupServer: `Servidor ${common.php} de respaldo`, + tcp: 'TCP', + hhvmSocket: 'HHVM socket', + php70Socket: '7.0 socket', + php71Socket: '7.1 socket', + php72Socket: '7.2 socket', + php73Socket: '7.3 socket', + php74Socket: '7.4 socket', + php80Socket: '8.0 socket', + php81Socket: '8.1 socket', + php82Socket: '8.2 socket', + phpSocket: 'PHP socket', + custom: 'Personalizado', + disabled: 'Desactivado', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/presets.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/presets.js new file mode 100644 index 00000000..a0bf0679 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/presets.js @@ -0,0 +1,35 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +// Single-page application don't have a good translation in Spanish + +export default { + presets: 'Preajustes', + itLooksLikeYouCustomisedTheConfig: 'Parece que ha personalizado la configuración para este dominio. La elección de un nuevo ajuste preestablecido puede restablecer o cambiar algunas de las configuraciones que ha personalizado.', + frontend: 'Frontend', + nodeJs: 'Node.js', + singlePageApplication: 'Single-page application', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/python.js new file mode 100644 index 00000000..4c575ccd --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/python.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonIsDisabled: `${common.python} esta desactivado.`, + pythonCannotBeEnabledWithReverseProxy: `${common.python} no se puede habilitar mientras el proxy inverso está habilitado.`, + pythonCannotBeEnabledWithPhp: `${common.python} no se puede habilitar mientras ${common.php} está habilitado.`, + enablePython: `${common.enable} ${common.python}`, + djangoRules: `Reglas de ${common.django}`, + enableDjangoRules: `${common.enable} reglas especificas de ${common.django}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/restrict.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/restrict.js new file mode 100644 index 00000000..7756d93b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/restrict.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + disableForThisDomain: 'deshabilitar para este dominio', + responseCode: 'Codigo de respuesta', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/reverse_proxy.js new file mode 100644 index 00000000..b13ca31d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/reverse_proxy.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + reverseProxyIsDisabled: `${common.reverseProxy} esta desactivado.`, + reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} no se puede habilitar mientras ${common.php} está habilitado.`, + reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} no se puede habilitar mientras ${common.python} está habilitado.`, + enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`, + proxyHostHeader: 'Proxy Host header', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/routing.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/routing.js new file mode 100644 index 00000000..96e9ba06 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/routing.js @@ -0,0 +1,35 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + fallbackRouting: 'Enrutamiento alternativo', + fallbackRoutingPhpPath: `Ruta ${common.php} para el enrutamiento alternativo`, + legacyPhpRouting: `Enrutamiento ${common.php} antiguo`, + enableLegacyRouting: `${common.enable} enrutamiento antiguo`, + routing: 'Enrutamiento', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/server.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/server.js new file mode 100644 index 00000000..872b28c0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/domain_sections/server.js @@ -0,0 +1,39 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +// The traslation of "listen" is "escucha" but in informatic that terms is best in English + +export default { + domain: 'Dominio', + documentRoot: 'Raiz del documento', + oneOrMoreOtherDomainsAreAlsoNamed: 'Uno o más dominios tienen también ese mismo nombre', + thisWillCauseIssuesWithConfigGeneration: 'Esto va a causar problemas en la generación de la configuracion.', + wwwSubdomain: 'subdominio www', + cdnSubdomain: 'subdominio CDN', + redirectSubdomains: 'redirección de subdominio', + server: 'Servidor', + listen: 'listen', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/footer.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/footer.js new file mode 100644 index 00000000..e1292467 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/footer.js @@ -0,0 +1,39 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + backToTop: 'Ir al inicio', + thisToolIs: 'Esta herramienta es', + openSourceOnGitHub: 'open-source en GitHub', + underThe: 'bajo la', + mit: 'licencia MIT', + license: '!', + weWelcomeFeedbackAndContributions: 'Agradecemos sus comentarios y contribuciones.', + originallyCreatedBy: 'Originalmente creado por', + balintSzekeres: 'Bálint Szekeres', + maintainedBy: 'mantenido por', + digitalOcean: 'DigitalOcean', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/docker.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/docker.js new file mode 100644 index 00000000..397a46c9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/docker.js @@ -0,0 +1,41 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const docker = 'Docker'; +const dockerfile = 'Dockerfile'; + +export default { + docker, + dockerfile, + dockerCompose: `${docker} Compose`, + applyDockerTweaks: `Aplicar ajustes de ${docker}`, + applyDockerTweaksForNginx: `Aplicar ajuste de configuracion para ejecutar ${common.nginx} con ${docker}`, + applyDockerTweaksExplainer: `Actualizar el usuario de ${common.nginx} a nginx y el pid a /var/run/nginx.pid`, + includeDockerfile: `Incluir ${dockerfile} para ejecutar ${common.nginx} con ${docker}`, + includeDockerCompose: `Incluir docker-compose para ejecutar ${common.nginx} con docker-compose`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/https.js new file mode 100644 index 00000000..5714cf1e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/https.js @@ -0,0 +1,55 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const mozilla = 'Mozilla'; +const ipv4 = 'IPv4'; +const ipv6 = 'IPv6'; + + +// 'Resolvers', 'webroot', 'listening socket' and 'worker' don't have a good translation in Spanish + +export default { + sslProfile: `Perfil ${common.ssl}`, + httpsMustBeEnabledOnOneSite: `${common.https} debe estar habilitado en al menos un sitio para modificar globalmente la configuracion ${common.https}.`, + portReuse: 'Reuseport', + enableReuseOfPort: `${common.enable} reuseport para generar un "listening socket" por "worker"`, + ocspDnsResolvers: 'OCSP DNS Resolvers', + cloudflareResolver: 'Cloudflare Resolver', + googlePublicDns: 'Google Public DNS', + openDns: 'OpenDNS', + quad9: 'Quad9', + verisign: 'Verisign', + letsEncryptWebroot: `${common.letsEncrypt} webroot`, + letsEncryptCertRoot: `directorio del certificado ${common.letsEncrypt}`, + mozillaModern: `${mozilla} Moderno`, + mozillaIntermediate: `${mozilla} Intermedio`, + mozillaOld: `${mozilla} Antiguo`, + ipv4Only: `solo ${ipv4}`, + ipv6Only: `solo ${ipv6}`, + ipv4AndIpv6: `${ipv4} & ${ipv6}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/index.js new file mode 100644 index 00000000..35eba1d9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/index.js @@ -0,0 +1,37 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import nginx from './nginx'; +import performance from './performance'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import security from './security'; +import tools from './tools'; +import docker from './docker'; + +export default { https, logging, nginx, performance, python, reverseProxy, security, tools, docker }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/logging.js new file mode 100644 index 00000000..a9ce17af --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/logging.js @@ -0,0 +1,42 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableFileNotFoundErrorLogging: `${common.enable} el registro de error de archivo no encontrado`, + logformat: 'log_format', + level: 'logging level', // TODO: translate + enableCloudflare: 'agregar cabecera de petición de Cloudflare en el formato por defecto del registro', + cfRay: 'CF-Ray', + cfConnectingIp: 'CF-Connecting-IP', + xForwardedFor: 'X-Forwarded-For', + xForwardedProto: 'X-Forwarded-Proto', + trueClientIp: 'True-Client-IP', + cfIpCountry: 'CF-IPCountry', + cfVisitor: 'CF-Visitor', + cdnLoop: 'CDN-Loop', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/nginx.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/nginx.js new file mode 100644 index 00000000..c1c4efb4 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/nginx.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + nginxConfigDirectory: `Directorio de configuración de ${common.nginx}`, + mb: 'MB', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/performance.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/performance.js new file mode 100644 index 00000000..3b428725 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/performance.js @@ -0,0 +1,44 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + disableHtmlCaching: 'Disable HTML caching', // TODO: translate + enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate + gzipCompression: 'Compresión Gzip', + enableGzipCompression: `${common.enable} compresión gzip`, + brotliCompression: 'Compresión Brotli', + enableBrotliCompression: `${common.enable} compresión brotli`, + brotliIsANonStandardModule: 'Brotli no es un modulo estandar de NGINX , verifica el ', + brotliGoogleNgxBrotliProject: 'Proyecto de Google ngx_brotli', + brotliForBuildingNginxWithBrotli: ' para saber como construir un NGINX con Brotli!', + expirationForAssets: 'Expiración para assets', + expirationForMedia: 'Expiración para media', + expirationForSvgs: 'Expiración para SVGs', + expirationForFonts: 'Expiración para fuentes', + performance: 'Rendimiento', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/python.js new file mode 100644 index 00000000..6541528a --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/python.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonServer: `Servidor ${common.python}`, + pythonMustBeEnabledOnOneSite: `${common.python} debe estar habilitado en al menos un sitio para modificar globalmente la configuración ${common.python}.`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/reverse_proxy.js new file mode 100644 index 00000000..785033c9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/reverse_proxy.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const legacyXForwarded = 'Cabeceras X-Forwarded-* Legacy'; + +export default { + reverseProxyMustBeEnabledOnOneSite: `${common.reverseProxy} debe estar habilitado en al menos un sitio para modificar globalmente la configuración ${common.reverseProxyLower}.`, + seconds: 'segundos', + passOn: `${legacyXForwarded} transmitido`, + remove: `${legacyXForwarded} removido`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/security.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/security.js new file mode 100644 index 00000000..38ae35a8 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/security.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `Cuando usan ${common.wordPress}, script-src 'self' 'unsafe-inline' 'unsafe-eval'; es usualmente requerido en el Content Security Policy para permitir que el panel de administrador funcione correctamente.`, + security: 'Seguridad', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/tools.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/tools.js new file mode 100644 index 00000000..9f70323e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/global_sections/tools.js @@ -0,0 +1,53 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + modularizedStructure: 'Estructura modularizada', + enableModularizedConfigFiles: `${common.enable} archivos de configuración modularizado`, + symlinkVhost: 'Enlaces simbólicos de vhost', + enableSymLinksFrom: `${common.enable} enlaces simbólicos de`, + to: 'para', + shareConfiguration: 'Compartir configuración', + resetConfiguration: 'Reiniciar configuración', + resetGlobalConfig: 'Reiniciar configuración global', + resetAllDomains: 'Reiniciar todos los dominios', + removeAllDomains: 'Quitar todos los dominios', + resetAllDomainsConfig: 'Reiniciar todas las configuraciones de los dominions', + resetDomainConfig: 'Reiniciar la configuración del dominio', + removeDomain: 'Quitar dominio', + yesImSure: 'Si, Estoy seguro', + noCancel: 'No, cancelar', + tools: 'Herramientas', + resetGlobalConfigBody: '¿Estás seguro de que desea reiniciar todas las opciones de configuración en la sección de configuración global?', + resetAllDomainsConfigBody: '¿Estás seguro de que desea reiniciar la configuración de TODOS los dominios?', + removeAllDomainsBody: '¿Estás seguro de que desea quitar TODAS las configuraciones de dominio?', + areYouSureYouWantToResetAllConfigurationOptionsForThe: '¿Estás seguro de que desea reiniciar todas las opciones de configuración del', + domain: 'dominio?', + areYouSureYouWantToRemoveThe: '¿Estás seguro de que quieres quitar la ', + domainConfiguration: 'configuración de dominio?', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/index.js new file mode 100644 index 00000000..d9467454 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/index.js @@ -0,0 +1,35 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import app from './app'; +import setup from './setup'; +import footer from './footer'; +import domainSections from './domain_sections'; +import globalSections from './global_sections'; +import setupSections from './setup_sections'; +import callouts from './callouts'; + +export default { app, setup, footer, domainSections, globalSections, setupSections, callouts }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup.js new file mode 100644 index 00000000..6278ddfb --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + downloadConfig: 'Descargar configuración', + copyBase64: 'Copiar Base64', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/certbot.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/certbot.js new file mode 100644 index 00000000..9bee1b51 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/certbot.js @@ -0,0 +1,39 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const certbot = 'Certbot'; + +export default { + commentOutSslDirectivesInConfiguration: `Comente las directivas relacionadas con ${common.ssl} en la configuración:`, + reloadYourNginxServer: `Recargar el ${common.nginx}:`, + obtainSslCertificatesFromLetsEncrypt: `Obtenga los certificados ${common.ssl} de ${common.letsEncrypt} usando ${certbot}:`, + uncommentSslDirectivesInConfiguration: `Comente las directivas relacionadas con ${common.ssl} en la configuración:`, + configureCertbotToReloadNginxOnCertificateRenewal: `Configure ${certbot} para recargar ${common.nginx} cuando renueve los certificados exitosamente:`, + certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} no es necesario configurarlo para su configuracion de ${common.nginx}.`, + certbot, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/download.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/download.js new file mode 100644 index 00000000..ad91a069 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/download.js @@ -0,0 +1,43 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +// Here is a HACK, because the real traslation is: "y subirla en la carpeta '/etc/nginx' de tu servidor. " +// but the HTML order of the templates are wrong: "y subirla en el servidor '/etc/nginx' carpeta." + +export default { + downloadTheGeneratedConfig: 'Descargar la configuracion generada:', + andUploadItToYourServers: 'y subirla en', + directory: '.', + or: 'o, ', + copyBase64StringOfCompressedConfig: 'Copiar el texto comprimido en base64 de la configuracion', + pasteItInYourServersCommandLineAndExecute: ', péguelo en la línea de comando de su servidor y ejecútelo.', + navigateToYourNginxConfigurationDirectoryOnYourServer: `Navega en la carpeta de configuracion de ${common.nginx} de tu servidor:`, + createABackupOfYourCurrentNginxConfiguration: `Crea un respaldo de tu configuracion actual de ${common.nginx}:`, + extractTheNewCompressedConfigurationArchiveUsingTar: 'Extraer el nuevo archivo de configuracion comprimido usando tar:', + download: 'Descargar', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/go_live.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/go_live.js new file mode 100644 index 00000000..f3b271bc --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/go_live.js @@ -0,0 +1,33 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + letsGoLive: '¡Vamos a desplegar!', + reloadNginxToLoadInYourNewConfiguration: `Reiniciar ${common.nginx} para cargar tu nueva configuracion:`, + goLive: 'A desplegar!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/index.js new file mode 100644 index 00000000..f64fc18e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/index.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import certbot from './certbot'; +import download from './download'; +import goLive from './go_live'; +import ssl from './ssl'; + +export default { certbot, download, goLive, ssl }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/ssl.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/ssl.js new file mode 100644 index 00000000..0fc85a21 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/es/templates/setup_sections/ssl.js @@ -0,0 +1,34 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + generateDiffieHellmanKeysByRunningThisCommandOnYourServer: 'Genera llaves Diffie-Hellman ejecutando este comando en su servidor:', + createACommonAcmeChallengeDirectoryForLetsEncrypt: `Crear una simple carpeta ACME-challenge (para ${common.letsEncrypt}):`, + noAdditionalStepsAreNeededToSetUpSslForNginx: `No se necesitan pasos adicionales para configurar ${common.ssl} en tu configuracion de ${common.nginx}.`, + sslInit: `Preparar el ${common.ssl}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/common.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/common.js new file mode 100644 index 00000000..77b88567 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/common.js @@ -0,0 +1,48 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + back: 'Précédent', + next: 'Suivant', + enable: 'activer', + php: 'PHP', + ssl: 'SSL', + nginx: 'NGINX', + http: 'HTTP', + https: 'HTTPS', + letsEncrypt: 'Let\'s Encrypt', + python: 'Python', + wordPress: 'WordPress', + drupal: 'Drupal', + magento: 'Magento', + joomla: 'Joomla', + django: 'Django', + logging: 'Logs', + reverseProxy: 'Proxy Inverse', + reverseProxyLower: 'proxy inverse', + restrict: 'Restreindre', + path: 'Chemin', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/index.js new file mode 100644 index 00000000..15420a11 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/index.js @@ -0,0 +1,31 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from './common'; +import languages from './languages'; +import templates from './templates'; + +export default { common, languages, templates }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/languages.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/languages.js new file mode 100644 index 00000000..4316d64d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/languages.js @@ -0,0 +1,38 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + en: 'Anglais', + es: 'Espanol', + zhCN: 'Chinois (simplifié)', + zhTW: 'Chinois (traditionnel)', + ptBR: 'Portugais (brésilien)', + fr: 'Français', + ru: 'Russe', + pl: 'Polonais', + de: 'Allemand', + ja: 'Japonais', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/app.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/app.js new file mode 100644 index 00000000..3d516512 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/app.js @@ -0,0 +1,40 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../common'; + +export default { + title: `${common.nginx}Config`, + description: `La manière la plus simple de configurer un serveur ${common.nginx} performant, sécurisé et stable.`, + singleColumnMode: 'Mode simple colonne', + splitColumnMode: 'Mode double colonne', + perWebsiteConfig: 'Configuration par site', + addSite: 'Ajouter un site', + globalConfig: 'Configuration globale', + setup: 'Configurer', + configFiles: 'Fichiers de configuration', + copied: 'Copié', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/callouts/contribute.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/callouts/contribute.js new file mode 100644 index 00000000..a1e0bfbd --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/callouts/contribute.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + wantToContributeChanges: '👋 Vous souhaitez demander de nouvelles fonctionnalités, apporter des modifications, ou traduire l\'outil dans une nouvelle langue?', + getInvolvedOnGitHub: 'Participez sur GitHub', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/callouts/droplet.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/callouts/droplet.js new file mode 100644 index 00000000..cd123891 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/callouts/droplet.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + lookingForAPlaceToDeploy: '👋 Vous cherchez à déployer votre nouvelle configuration?', + tryOutDigitalOceansDroplet: 'Essayez les Droplets LEMP de DigitalOcean avec NGINX', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/callouts/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/callouts/index.js new file mode 100644 index 00000000..dd68947b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/callouts/index.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import droplet from './droplet'; +import contribute from './contribute'; + +export default { droplet, contribute }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/https.js new file mode 100644 index 00000000..76c55e97 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/https.js @@ -0,0 +1,48 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableEncryptedSslConnection: `${common.enable} les connexions ${common.ssl}`, + http2: `${common.http}/2`, + enableHttp2Connections: `${common.enable} les connexions ${common.http}/2`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.enable} les connexions ${common.http}/3`, + forceHttps: `Forcer ${common.https}`, + hsts: 'HSTS', + enableStrictTransportSecurity: `${common.enable} Strict Transport Security, exigeant HTTPS`, + enableIncludeSubDomains: `${common.enable} la directive includeSubDomains, exigeant une connexion HTTPS pour tous les sous-domaines.`, + enablePreload: `${common.enable} la directive de préchargement, indiquant aux navigateurs de toujours utiliser une connexion HTTPS`, + certificationType: 'Type de certification', + customCertificate: 'Certificat personnalisé', + letsEncryptEmail: `E-mail ${common.letsEncrypt}`, + http3IsANonStandardModule: 'HTTP/3 n\'est pas un module standard de NGINX, veuillez lire ', + http3NginxQuicReadme: 'le Readme de NGINX QUIC', + http3OrThe: ' ou le ', + http3CloudflareQuicheProject: 'projet Cloudflare quiche', + http3ForBuildingNginxWithHttp3: ' pour compiler NGINX avec le support HTTP/3!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/index.js new file mode 100644 index 00000000..a6da9ab9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/index.js @@ -0,0 +1,38 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import php from './php'; +import presets from './presets'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import routing from './routing'; +import server from './server'; +import restrict from './restrict'; +import onion from './onion'; + +export default { https, logging, php, presets, python, reverseProxy, routing, server, restrict, onion }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/logging.js new file mode 100644 index 00000000..9b46e2cc --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/logging.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + byDomain: 'par domaine', + enableForThisDomain: `${common.enable} pour ce domaine`, + arguments: 'arguments', // TODO: translate + level: 'logging level', // TODO: translate + forRedirects: 'for redirects', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/onion.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/onion.js new file mode 100644 index 00000000..6290bf9b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/onion.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +const onion = 'Onion'; + +export default { + onion, + onionLocation: `Adresse ${onion}`, + provideAnOnionLocationToSetOnionLocationHeader: 'Fournir une adresse Onion pour définir le header Onion-Location pour votre site.', + letsVisitorsKnownOnionServicesIsAvailable: 'Indique aux visiteurs qu\'une version onion du site est disponible pour les navigateurs Tor.', + learnMoreAboutOnionServices: 'En apprendre plus sur les services Onion', + onionLocationExpectedToEndWithOnion: 'Une adresse onion se termine normalement avec `.onion`.', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/php.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/php.js new file mode 100644 index 00000000..41e89df9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/php.js @@ -0,0 +1,57 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + phpIsDisabled: `${common.php} est désactivé.`, + phpCannotBeEnabledWithReverseProxy: `${common.php} ne peut pas être activé en même temps que le ${common.reverseProxyLower}.`, + phpCannotBeEnabledWithPython: `${common.php} ne peut pas être activé en même temps que ${common.python}.`, + enablePhp: `${common.enable} ${common.php}`, + wordPressRules: `Règles ${common.wordPress}`, + enableWordPressRules: `${common.enable} les règles spécifiques à ${common.wordPress}`, + drupalRules: `Règles ${common.drupal}`, + enableDrupalRules: `${common.enable} les règles spécifiques à ${common.drupal}`, + magentoRules: `Règles ${common.magento}`, + enableMagentoRules: `${common.enable} les règles spécifiques à ${common.magento}`, + joomlaRules: `Règles ${common.joomla}`, + enableJoomlaRules: `${common.enable} les règles spécifiques à ${common.joomla}`, + phpServer: `Serveur ${common.php}`, + phpBackupServer: `Serveur de sauvegarde ${common.php}`, + tcp: 'TCP', + hhvmSocket: 'Socket HHVM', + php70Socket: 'Socket 7.0', + php71Socket: 'Socket 7.1', + php72Socket: 'Socket 7.2', + php73Socket: 'Socket 7.3', + php74Socket: 'Socket 7.4', + php80Socket: 'Socket 8.0', + php81Socket: 'Socket 8.1', + php82Socket: 'Socket 8.2', + phpSocket: 'Socket PHP', + custom: 'Custom', + disabled: 'Désactivé', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/presets.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/presets.js new file mode 100644 index 00000000..c448d60c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/presets.js @@ -0,0 +1,33 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + presets: 'Préconfigurations', + itLooksLikeYouCustomisedTheConfig: 'Il semblerait que vous ayez customisé la configuration de ce domaine. Utiliser une nouvelle préconfiguration peut réinitialiser ou changer certains paramètres que vous avez définis.', + frontend: 'Frontend', + nodeJs: 'Node.js', + singlePageApplication: 'Application monopage', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/python.js new file mode 100644 index 00000000..2d7debc3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/python.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonIsDisabled: `${common.python} est désactivé.`, + pythonCannotBeEnabledWithReverseProxy: `${common.python} ne peut pas être activé en même temps que le ${common.reverseProxyLower}.`, + pythonCannotBeEnabledWithPhp: `${common.python} ne peut pas être activé en même temps que ${common.php}.`, + enablePython: `${common.enable} ${common.python}`, + djangoRules: `Règles de ${common.django}`, + enableDjangoRules: `${common.enable} les règles spécifiques à ${common.django}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/restrict.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/restrict.js new file mode 100644 index 00000000..e0c82503 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/restrict.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + disableForThisDomain: 'désactiver pour ce domaine', + responseCode: 'Code de réponse', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/reverse_proxy.js new file mode 100644 index 00000000..566c7fc0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/reverse_proxy.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + reverseProxyIsDisabled: `Le ${common.reverseProxyLower} est désactivé.`, + reverseProxyCannotBeEnabledWithPhp: `Le ${common.reverseProxyLower} ne peut pas être activé en même temps que ${common.php}.`, + reverseProxyCannotBeEnabledWithPython: `Le ${common.reverseProxyLower} ne peut pas être activé en même temps que ${common.python}.`, + enableReverseProxy: `${common.enable} le ${common.reverseProxyLower}`, + proxyHostHeader: 'Proxy Host header', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/routing.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/routing.js new file mode 100644 index 00000000..cd95dd5d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/routing.js @@ -0,0 +1,35 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + fallbackRouting: 'Routes par défaut', + fallbackRoutingPhpPath: `Chemin par défaut ${common.php}`, + legacyPhpRouting: `Routage ${common.php} legacy`, + enableLegacyRouting: `${common.enable} le routage legacy`, + routing: 'Routage', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/server.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/server.js new file mode 100644 index 00000000..afa5e61b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/domain_sections/server.js @@ -0,0 +1,37 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + domain: 'Domaine', + documentRoot: 'Dossier racine', + oneOrMoreOtherDomainsAreAlsoNamed: 'Un ou plusieurs autres domaines sont aussi nommés', + thisWillCauseIssuesWithConfigGeneration: 'Cela causera des problèmes lors de la génération de la configuration.', + wwwSubdomain: 'Sous-domaine www', + cdnSubdomain: 'Sous-domaine CDN', + redirectSubdomains: 'Rediriger les sous-domaines', + server: 'Serveur', + listen: 'écouter', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/footer.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/footer.js new file mode 100644 index 00000000..ad12ffaf --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/footer.js @@ -0,0 +1,39 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + backToTop: 'Retour en haut', + thisToolIs: 'Cet outil est', + openSourceOnGitHub: 'open-source sur GitHub', + underThe: 'sous', + mit: 'licence MIT', + license: '!', + weWelcomeFeedbackAndContributions: 'Nous apprécions les retours et les contributions.', + originallyCreatedBy: 'Initialement créé par', + balintSzekeres: 'Bálint Szekeres', + maintainedBy: 'maintenu par', + digitalOcean: 'DigitalOcean', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/docker.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/docker.js new file mode 100644 index 00000000..57862299 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/docker.js @@ -0,0 +1,41 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const docker = 'Docker'; +const dockerfile = 'Dockerfile'; + +export default { + docker, + dockerfile, + dockerCompose: `${docker} Compose`, + applyDockerTweaks: `Configurer pour ${docker}`, + applyDockerTweaksForNginx: `Applique des ajustements pour exécuter ${common.nginx} avec ${docker}`, + applyDockerTweaksExplainer: `Définit l'utilisateur ${common.nginx} comme nginx et le pid comme /var/run/nginx.pid`, + includeDockerfile: `Inclure un ${dockerfile} pour exécuter ${common.nginx} avec ${docker}`, + includeDockerCompose: `Inclure un docker-compose pour exécuter ${common.nginx} avec docker-compose`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/https.js new file mode 100644 index 00000000..23576239 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/https.js @@ -0,0 +1,52 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const mozilla = 'Mozilla'; +const ipv4 = 'IPv4'; +const ipv6 = 'IPv6'; + +export default { + sslProfile: `Profil ${common.ssl}`, + httpsMustBeEnabledOnOneSite: `${common.https} doit être activé sur au moins un site pour configurer les paramètres ${common.https} globaux.`, + portReuse: 'Reuseport', + enableReuseOfPort: `${common.enable} reuseport pour générer un socket passif par worker`, + ocspDnsResolvers: 'Résolveur DNS OCSP', + cloudflareResolver: 'Résolveur Cloudflare', + googlePublicDns: 'Google Public DNS', + openDns: 'OpenDNS', + quad9: 'Quad9', + verisign: 'Verisign', + letsEncryptWebroot: `${common.letsEncrypt} dossier racine`, + letsEncryptCertRoot: `Dossier du certificat ${common.letsEncrypt}`, + mozillaModern: `${mozilla} Moderne`, + mozillaIntermediate: `${mozilla} Intermédiaire`, + mozillaOld: `${mozilla} Ancien`, + ipv4Only: `${ipv4} seulement`, + ipv6Only: `${ipv6} seulement`, + ipv4AndIpv6: `${ipv4} & ${ipv6}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/index.js new file mode 100644 index 00000000..35eba1d9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/index.js @@ -0,0 +1,37 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import nginx from './nginx'; +import performance from './performance'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import security from './security'; +import tools from './tools'; +import docker from './docker'; + +export default { https, logging, nginx, performance, python, reverseProxy, security, tools, docker }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/logging.js new file mode 100644 index 00000000..a401765a --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/logging.js @@ -0,0 +1,42 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableFileNotFoundErrorLogging: `${common.enable} les erreurs de fichiers introuvables lors de la journalisation`, + logformat: 'log_format', + level: 'logging level', // TODO: translate + enableCloudflare: 'ajouter les en-têtes de requête CloudFlare au format de journal par défaut', + cfRay: 'CF-Ray', + cfConnectingIp: 'CF-Connecting-IP', + xForwardedFor: 'X-Forwarded-For', + xForwardedProto: 'X-Forwarded-Proto', + trueClientIp: 'True-Client-IP', + cfIpCountry: 'CF-IPCountry', + cfVisitor: 'CF-Visitor', + cdnLoop: 'CDN-Loop', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/nginx.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/nginx.js new file mode 100644 index 00000000..f71543a0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/nginx.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + nginxConfigDirectory: `Dossier de configuration ${common.nginx}`, + mb: 'MB', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/performance.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/performance.js new file mode 100644 index 00000000..40a75f93 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/performance.js @@ -0,0 +1,44 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + disableHtmlCaching: 'Disable HTML caching', // TODO: translate + enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate + gzipCompression: 'Compression Gzip', + enableGzipCompression: `${common.enable} la compression gzip`, + brotliCompression: 'Compression Brotli', + enableBrotliCompression: `${common.enable} la compression brotli`, + brotliIsANonStandardModule: 'Brotli n\'est pas un module standard de NGINX, veuillez lire le ', + brotliGoogleNgxBrotliProject: 'projet Google ngx_brotli', + brotliForBuildingNginxWithBrotli: ' pour compiler NGINX avec le support Brotli!', + expirationForAssets: 'Expiration des assets', + expirationForMedia: 'Expiration des medias', + expirationForSvgs: 'Expiration des SVGs', + expirationForFonts: 'Expiration des fonts', + performance: 'Performances', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/python.js new file mode 100644 index 00000000..c9834204 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/python.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonServer: `Serveur ${common.python}`, + pythonMustBeEnabledOnOneSite: `${common.python} doit être activé sur au moins un site pour configurer les paramètres globaux de ${common.python}.`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/reverse_proxy.js new file mode 100644 index 00000000..f0ac2aa5 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/reverse_proxy.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const legacyXForwarded = 'En-têtes dépréciés X-Forwarded-*'; + +export default { + reverseProxyMustBeEnabledOnOneSite: `Le ${common.reverseProxyLower} doit être activé sur au moins un site pour configurer les paramètres globaux du ${common.reverseProxyLower}.`, + seconds: 'secondes', + passOn: `${legacyXForwarded} transmis`, + remove: `${legacyXForwarded} supprimés`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/security.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/security.js new file mode 100644 index 00000000..3ddc4af4 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/security.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `Lors de l'utilisation de ${common.wordPress}, script-src 'self' 'unsafe-inline' 'unsafe-eval'; est fréquemment exigé par la Politique de Sécurité du Contenu pour assurer le bon fonctionnement du panneau d'administration.`, + security: 'Sécurité', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/tools.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/tools.js new file mode 100644 index 00000000..52318b17 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/global_sections/tools.js @@ -0,0 +1,53 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + modularizedStructure: 'Structure modulaire', + enableModularizedConfigFiles: `${common.enable} les fichiers de configuration modulaires`, + symlinkVhost: 'Lien symbolique pour vhost', + enableSymLinksFrom: `${common.enable} les liens symboliques depuis`, + to: 'vers', + shareConfiguration: 'Partager la configuration', + resetConfiguration: 'Réinitialiser la configuration', + resetGlobalConfig: 'Réinitialiser la configuration globale', + resetAllDomains: 'Réinitialiser tous les domaines', + removeAllDomains: 'Supprimer tous les domaines', + resetAllDomainsConfig: 'Réinitialiser la configuration de tous les domaines', + resetDomainConfig: 'Réinitialiser la configuration du domaine', + removeDomain: 'Supprimer le domaine', + yesImSure: 'Oui, je suis sûr(e)', + noCancel: 'Non, annuler', + tools: 'Outils', + resetGlobalConfigBody: 'Voulez-vous vraiment réinitialiser toutes les options de configuration globales?', + resetAllDomainsConfigBody: 'Voulez-vous vraiment réinitialiser les configurations de TOUS les domaines?', + removeAllDomainsBody: 'Voulez-vous vraiment supprimer les configurations de TOUS les domaines?', + areYouSureYouWantToResetAllConfigurationOptionsForThe: 'Voulez-vous vraiment réinitialiser toutes les options de configuration pour', + domain: '?', + areYouSureYouWantToRemoveThe: 'Voulez-vous vraiment supprimer', + domainConfiguration: '?', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/index.js new file mode 100644 index 00000000..d9467454 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/index.js @@ -0,0 +1,35 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import app from './app'; +import setup from './setup'; +import footer from './footer'; +import domainSections from './domain_sections'; +import globalSections from './global_sections'; +import setupSections from './setup_sections'; +import callouts from './callouts'; + +export default { app, setup, footer, domainSections, globalSections, setupSections, callouts }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup.js new file mode 100644 index 00000000..1c7c5c78 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + downloadConfig: 'Télécharger la configuration', + copyBase64: 'Copier en Base64', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/certbot.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/certbot.js new file mode 100644 index 00000000..dad4e8c1 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/certbot.js @@ -0,0 +1,39 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const certbot = 'Certbot'; + +export default { + commentOutSslDirectivesInConfiguration: `Commentez les directives relatives à ${common.ssl}:`, + reloadYourNginxServer: `Relancez le serveur ${common.nginx}:`, + obtainSslCertificatesFromLetsEncrypt: `Obtenez les certificats ${common.ssl} de ${common.letsEncrypt} à l'aide de ${certbot}:`, + uncommentSslDirectivesInConfiguration: `Décommentez les directives relatives à ${common.ssl}:`, + configureCertbotToReloadNginxOnCertificateRenewal: `Configurez ${certbot} pour relancer ${common.nginx} lors du renouvellement des certificats:`, + certbotDoesNotNeedToBeSetupForYourConfiguration: `Il est inutile de configurer ${certbot} pour votre configuration ${common.nginx}.`, + certbot, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/download.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/download.js new file mode 100644 index 00000000..e1176609 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/download.js @@ -0,0 +1,40 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + downloadTheGeneratedConfig: 'Téléchargez la configuration générée:', + andUploadItToYourServers: 'et uploadez-la vers le répertoire', + directory: 'de votre serveur.', + or: 'ou, ', + copyBase64StringOfCompressedConfig: 'copiez la configuration compressée et encodée en base64', + pasteItInYourServersCommandLineAndExecute: ', puis collez-la et exécutez-la en ligne de commande sur votre serveur.', + navigateToYourNginxConfigurationDirectoryOnYourServer: `Sur votre serveur, naviguez vers le dossier de configuration de ${common.nginx}:`, + createABackupOfYourCurrentNginxConfiguration: `Créez un backup de votre configuration ${common.nginx} actuelle:`, + extractTheNewCompressedConfigurationArchiveUsingTar: 'Décompressez la nouvelle configuration en utilisant Tar:', + download: 'Téléchargement', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/go_live.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/go_live.js new file mode 100644 index 00000000..9b39dd39 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/go_live.js @@ -0,0 +1,33 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + letsGoLive: 'C\'est en ligne!', + reloadNginxToLoadInYourNewConfiguration: `Relancez ${common.nginx} pour charger la nouvelle configuration:`, + goLive: 'C\'est en ligne!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/index.js new file mode 100644 index 00000000..f64fc18e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/index.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import certbot from './certbot'; +import download from './download'; +import goLive from './go_live'; +import ssl from './ssl'; + +export default { certbot, download, goLive, ssl }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/ssl.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/ssl.js new file mode 100644 index 00000000..7fe82f54 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/fr/templates/setup_sections/ssl.js @@ -0,0 +1,34 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + generateDiffieHellmanKeysByRunningThisCommandOnYourServer: 'Générez des clefs de Diffie-Hellman en exécutant cette commande sur votre serveur:', + createACommonAcmeChallengeDirectoryForLetsEncrypt: `Créez un répertoire commun ACME-challenge (pour ${common.letsEncrypt}):`, + noAdditionalStepsAreNeededToSetUpSslForNginx: `Aucune étape additionnelle n'est nécessaire pour configurer ${common.ssl} pour ${common.nginx}.`, + sslInit: `${common.ssl} init`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/common.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/common.js new file mode 100644 index 00000000..17904e6c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/common.js @@ -0,0 +1,48 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + back: '戻る', + next: '次へ', + enable: '有効にする', + php: 'PHP', + ssl: 'SSL', + nginx: 'NGINX', + http: 'HTTP', + https: 'HTTPS', + letsEncrypt: 'Let\'s Encrypt', + python: 'Python', + wordPress: 'WordPress', + drupal: 'Drupal', + magento: 'Magento', + joomla: 'Joomla', + django: 'Django', + logging: 'ログ', + reverseProxy: 'リバースプロキシ', + reverseProxyLower: 'リバースプロキシ', + restrict: '制限', + path: 'パス', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/index.js new file mode 100644 index 00000000..997a0b99 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/index.js @@ -0,0 +1,31 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from './common'; +import languages from './languages'; +import templates from './templates'; + +export default { common, languages, templates }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/languages.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/languages.js new file mode 100644 index 00000000..c1645183 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/languages.js @@ -0,0 +1,38 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + en: '英語', + es: 'スペイン語', + zhCN: '中国語 (簡体字)', + zhTW: '中国語 (繁体字)', + ptBR: 'ポルトガル語 (ブラジル)', + fr: 'フランス語', + ru: 'ロシア語', + pl: 'ポーランド語', + de: 'ドイツ語', + ja: '日本語', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/app.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/app.js new file mode 100644 index 00000000..b5d24670 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/app.js @@ -0,0 +1,40 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../common'; + +export default { + title: `${common.nginx}設定`, + description: `パフォーマンス、安全性、安定性に優れた ${common.nginx} サーバーを簡単に構成できます。`, + singleColumnMode: 'シングルカラムモード', + splitColumnMode: '並列表示モード', + perWebsiteConfig: 'Webサイトごとの設定', + addSite: 'サイトを追加する', + globalConfig: 'グローバル設定', + setup: 'セットアップ', + configFiles: '設定ファイル', + copied: 'コピーしました', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/callouts/contribute.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/callouts/contribute.js new file mode 100644 index 00000000..63127493 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/callouts/contribute.js @@ -0,0 +1,30 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + wantToContributeChanges: '👋 新機能や変更の提案や実装、翻訳をしてみませんか?', + getInvolvedOnGitHub: 'GitHub で参加しよう', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/callouts/droplet.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/callouts/droplet.js new file mode 100644 index 00000000..a7a00325 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/callouts/droplet.js @@ -0,0 +1,30 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + lookingForAPlaceToDeploy: '👋 この新しい設定のデプロイ先をお探しですか?', + tryOutDigitalOceansDroplet: 'DigitalOceanの NGINXを使ったLEMP Droplet を試してみましょう', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/callouts/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/callouts/index.js new file mode 100644 index 00000000..af823bb2 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/callouts/index.js @@ -0,0 +1,30 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import droplet from './droplet'; +import contribute from './contribute'; + +export default { droplet, contribute }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/https.js new file mode 100644 index 00000000..966066f5 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/https.js @@ -0,0 +1,48 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableEncryptedSslConnection: `暗号化された ${common.ssl} 接続を${common.enable}`, + http2: `${common.http}/2`, + enableHttp2Connections: `${common.http}/2 接続を${common.enable}`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.http}/3 接続を${common.enable}`, + forceHttps: `${common.https}を強制する`, + hsts: 'HSTS', + enableStrictTransportSecurity: `Strict Transport Security を${common.enable}, HTTPS接続が必要`, + enableIncludeSubDomains: `includeSubDomains ディレクティブを${common.enable}, 全てのサブドメインでHTTPS接続が必要`, + enablePreload: `プリロードディレクティブを${common.enable}, HTTPS接続のみを常に行うようブラウザに指示します`, + certificationType: '証明書', + customCertificate: 'カスタム証明書', + letsEncryptEmail: `${common.letsEncrypt} Eメールアドレス`, + http3IsANonStandardModule: 'HTTP/3 は NGINX の標準モジュールではありません, くわしくは ', + http3NginxQuicReadme: 'NGINX QUIC readme', + http3OrThe: ' もしくは ', + http3CloudflareQuicheProject: 'Cloudflare quicheプロジェクト', + http3ForBuildingNginxWithHttp3: ' のHTTP/3を使ったNGINXの構築方法を確認してください!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/index.js new file mode 100644 index 00000000..070501d5 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/index.js @@ -0,0 +1,38 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import php from './php'; +import presets from './presets'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import routing from './routing'; +import server from './server'; +import restrict from './restrict'; +import onion from './onion'; + +export default { https, logging, php, presets, python, reverseProxy, routing, server, restrict, onion }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/logging.js new file mode 100644 index 00000000..bcefbefa --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/logging.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + byDomain: '(ドメインごと)', + enableForThisDomain: `このドメインで${common.enable}`, + arguments: 'arguments', // TODO: translate + level: 'logging level', // TODO: translate + forRedirects: 'for redirects', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/onion.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/onion.js new file mode 100644 index 00000000..decd6fdb --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/onion.js @@ -0,0 +1,36 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +const onion = 'Onion'; + +export default { + onion, + onionLocation: `${onion} location`, + provideAnOnionLocationToSetOnionLocationHeader: 'サイトのOnion-Locationヘッダを設定するために、Onion locationアドレスを提供する。', + letsVisitorsKnownOnionServicesIsAvailable: 'これにより、あなたのサイトのオニオンサービス版がTorブラウザで利用可能であることをサイト訪問者に知らせます。', + learnMoreAboutOnionServices: 'Onion サービスについて詳しくはこちら', + onionLocationExpectedToEndWithOnion: 'Onion location アドレスは通常 `.onion` で終わります。', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/php.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/php.js new file mode 100644 index 00000000..12238b9b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/php.js @@ -0,0 +1,57 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + phpIsDisabled: `${common.php} は無効です。`, + phpCannotBeEnabledWithReverseProxy: `リバースプロキシが有効な場合は、${common.php} を有効にすることはできません。`, + phpCannotBeEnabledWithPython: `${common.python} が有効な場合は、 ${common.php} を有効にすることはできません。`, + enablePhp: `${common.php} を${common.enable}`, + wordPressRules: `${common.wordPress} ルール`, + enableWordPressRules: `${common.wordPress} 用ルールを${common.enable}`, + drupalRules: `${common.drupal} ルール`, + enableDrupalRules: `${common.drupal} 用ルールを${common.enable}`, + magentoRules: `${common.magento} ルール`, + enableMagentoRules: `${common.magento} 用ルールを${common.enable}`, + joomlaRules: `${common.joomla} ルール`, + enableJoomlaRules: `${common.joomla} 用ルールを${common.enable}`, + phpServer: `${common.php} サーバ`, + phpBackupServer: `${common.php} バックアップサーバ`, + tcp: 'TCP', + hhvmSocket: 'HHVM socket', + php70Socket: '7.0 socket', + php71Socket: '7.1 socket', + php72Socket: '7.2 socket', + php73Socket: '7.3 socket', + php74Socket: '7.4 socket', + php80Socket: '8.0 socket', + php81Socket: '8.1 socket', + php82Socket: '8.2 socket', + phpSocket: 'PHP socket', + custom: 'カスタム', + disabled: '無効', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/presets.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/presets.js new file mode 100644 index 00000000..9d3785ac --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/presets.js @@ -0,0 +1,33 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + presets: 'プリセット', + itLooksLikeYouCustomisedTheConfig: 'このドメインの設定をカスタマイズしているようです。新しいプリセットを選択すると、カスタマイズした設定の一部がリセットまたは変更される場合があります。', + frontend: 'フロントエンド', + nodeJs: 'Node.js', + singlePageApplication: 'シングルページアプリケーション(SPA)', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/python.js new file mode 100644 index 00000000..ebe13422 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/python.js @@ -0,0 +1,36 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonIsDisabled: `${common.python} は無効です。`, + pythonCannotBeEnabledWithReverseProxy: `リバースプロキシが有効な場合は、${common.python} を有効にすることはできません。`, + pythonCannotBeEnabledWithPhp: `${common.php} が有効な場合は、 ${common.python} を有効にすることはできません。`, + enablePython: `${common.python}を${common.enable}`, + djangoRules: `${common.django} ルール`, + enableDjangoRules: `${common.django} 用ルールを${common.enable}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/restrict.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/restrict.js new file mode 100644 index 00000000..119fc20d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/restrict.js @@ -0,0 +1,30 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + disableForThisDomain: 'このドメインで無効にする', + responseCode: 'レスポンスコード', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/reverse_proxy.js new file mode 100644 index 00000000..e4dcedff --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/reverse_proxy.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + reverseProxyIsDisabled: `${common.reverseProxy} は無効です。`, + reverseProxyCannotBeEnabledWithPhp: `${common.php} が有効な場合は、 ${common.reverseProxy} を有効にすることはできません。`, + reverseProxyCannotBeEnabledWithPython: `${common.python} が有効な場合は、 ${common.reverseProxy} を有効にすることはできません。`, + enableReverseProxy: `${common.reverseProxyLower}を${common.enable}`, + proxyHostHeader: 'Proxy Host header', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/routing.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/routing.js new file mode 100644 index 00000000..719fe113 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/routing.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + fallbackRouting: 'フォールバックルーティング', + fallbackRoutingPhpPath: `フォールバックルーティング ${common.php} パス`, + legacyPhpRouting: `レガシーな ${common.php} ルーティング`, + enableLegacyRouting: `レガシーなルーティングを${common.enable}`, + routing: 'ルーティング', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/server.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/server.js new file mode 100644 index 00000000..c6073cb4 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/domain_sections/server.js @@ -0,0 +1,37 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + domain: 'ドメイン', + documentRoot: 'ドキュメントルート', + oneOrMoreOtherDomainsAreAlsoNamed: 'このドメインは別の設定で利用されています', + thisWillCauseIssuesWithConfigGeneration: 'これは、設定ファイル生成で問題を引き起こします。', + wwwSubdomain: 'www サブドメイン', + cdnSubdomain: 'CDN サブドメイン', + redirectSubdomains: 'リダイレクトサブドメイン', + server: 'サーバ', + listen: 'リッスン', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/footer.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/footer.js new file mode 100644 index 00000000..c2db52b7 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/footer.js @@ -0,0 +1,39 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + backToTop: 'TOPへ戻る', + thisToolIs: 'このツールは', + openSourceOnGitHub: 'オープンソースとしてGitHub上に', + underThe: '', + mit: 'MIT', + license: 'ライセンスで公開されています。', + weWelcomeFeedbackAndContributions: 'リードバックやコントリビュートは大歓迎です。', + originallyCreatedBy: 'オリジナル開発者: ', + balintSzekeres: 'Bálint Szekeres', + maintainedBy: 'メンテナンス: ', + digitalOcean: 'DigitalOcean', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/docker.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/docker.js new file mode 100644 index 00000000..f51bb0e3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/docker.js @@ -0,0 +1,41 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const docker = 'Docker'; +const dockerfile = 'Dockerfile'; + +export default { + docker, + dockerfile, + dockerCompose: `${docker} Compose`, + applyDockerTweaks: `${docker} の調整を適用する`, + applyDockerTweaksForNginx: `${common.nginx} を ${docker} 上で動作させるため、設定の微調整を適用します。`, + applyDockerTweaksExplainer: `${common.nginx} ユーザを nginx に、 pid を /var/run/nginx.pid に変更してください。`, + includeDockerfile: `${common.nginx} を ${docker} 上で動作させるための ${dockerfile} を含む`, + includeDockerCompose: `${common.nginx} with docker-compose で動作させるための docker-compose.yaml を含む`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/https.js new file mode 100644 index 00000000..4d8d494d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/https.js @@ -0,0 +1,52 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const mozilla = 'Mozilla'; +const ipv4 = 'IPv4'; +const ipv6 = 'IPv6'; + +export default { + sslProfile: `${common.ssl} プロファイル`, + httpsMustBeEnabledOnOneSite: `グローバルな ${common.https} の設定を行うには、少なくとも1つのサイトで ${common.https} が有効になっている必要があります。`, + portReuse: 'Reuseport', + enableReuseOfPort: `ワーカーごとにリスニングソケットを生成するために reuseport を${common.enable}`, + ocspDnsResolvers: 'OCSP DNS Resolvers', + cloudflareResolver: 'Cloudflare Resolver', + googlePublicDns: 'Google Public DNS', + openDns: 'OpenDNS', + quad9: 'Quad9', + verisign: 'Verisign', + letsEncryptWebroot: `${common.letsEncrypt} webrootディレクトリ`, + letsEncryptCertRoot: `${common.letsEncrypt} 証明書ディレクトリ`, + mozillaModern: `${mozilla} Modern`, + mozillaIntermediate: `${mozilla} Intermediate`, + mozillaOld: `${mozilla} Old`, + ipv4Only: `${ipv4} のみ`, + ipv6Only: `${ipv6} のみ`, + ipv4AndIpv6: `${ipv4} と ${ipv6}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/index.js new file mode 100644 index 00000000..e87a3b32 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/index.js @@ -0,0 +1,37 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import nginx from './nginx'; +import performance from './performance'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import security from './security'; +import tools from './tools'; +import docker from './docker'; + +export default { https, logging, nginx, performance, python, reverseProxy, security, tools, docker }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/logging.js new file mode 100644 index 00000000..990d68a4 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/logging.js @@ -0,0 +1,42 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableFileNotFoundErrorLogging: `FILE NOT FOUND エラーのロギングを${common.enable}`, + logformat: 'log_format', + level: 'logging level', // TODO: translate + enableCloudflare: 'デフォルトのログフォーマットに Cloudflare のリクエストヘッダを追加する', + cfRay: 'CF-Ray', + cfConnectingIp: 'CF-Connecting-IP', + xForwardedFor: 'X-Forwarded-For', + xForwardedProto: 'X-Forwarded-Proto', + trueClientIp: 'True-Client-IP', + cfIpCountry: 'CF-IPCountry', + cfVisitor: 'CF-Visitor', + cdnLoop: 'CDN-Loop', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/nginx.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/nginx.js new file mode 100644 index 00000000..cbb6ae40 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/nginx.js @@ -0,0 +1,32 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + nginxConfigDirectory: `${common.nginx} 設定ディレクトリ`, + mb: 'MB', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/performance.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/performance.js new file mode 100644 index 00000000..1445c97d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/performance.js @@ -0,0 +1,44 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + disableHtmlCaching: 'HTML キャッシュの無効化', + enableDisableHtmlCaching: 'HTML キャッシュを無効にする', + gzipCompression: 'Gzip 圧縮', + enableGzipCompression: `gzip 圧縮を${common.enable}`, + brotliCompression: 'Brotli 圧縮', + enableBrotliCompression: `brotli 圧縮を${common.enable}`, + brotliIsANonStandardModule: 'Brotli はNGINXの標準モジュールではありません, くわしくは ', + brotliGoogleNgxBrotliProject: 'Google ngx_brotli プロジェクト', + brotliForBuildingNginxWithBrotli: ' のBrotliを使ったNGINXの構築方法を確認してください!', + expirationForAssets: 'アセットの有効期限', + expirationForMedia: 'メディアの有効期限', + expirationForSvgs: 'SVG の有効期限', + expirationForFonts: 'フォントの有効期限', + performance: 'パフォーマンス', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/python.js new file mode 100644 index 00000000..e2eba652 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/python.js @@ -0,0 +1,32 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonServer: `${common.python} サーバ`, + pythonMustBeEnabledOnOneSite: `グローバルな ${common.python} の設定を行うには、少なくとも1つのサイトで ${common.python} が有効になっている必要があります。`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/reverse_proxy.js new file mode 100644 index 00000000..ede7c875 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/reverse_proxy.js @@ -0,0 +1,36 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const legacyXForwarded = 'Legacy X-Forwarded-* headers'; + +export default { + reverseProxyMustBeEnabledOnOneSite: `グローバルな ${common.reverseProxyLower} の設定を行うには、少なくとも1つのサイトで ${common.reverseProxy} が有効になっている必要があります。`, + seconds: '秒', + passOn: `${legacyXForwarded} が渡されます`, + remove: `${legacyXForwarded} は積極的に削除されます`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/security.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/security.js new file mode 100644 index 00000000..2ff55936 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/security.js @@ -0,0 +1,32 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `${common.wordPress} を利用している場合、 script-src 'self' 'unsafe-inline' 'unsafe-eval'; は、管理画面を正しく機能させるために、コンテンツセキュリティポリシーで要求されることが多いようです。`, + security: 'セキュリティ', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/tools.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/tools.js new file mode 100644 index 00000000..ad1fb521 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/global_sections/tools.js @@ -0,0 +1,53 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + modularizedStructure: 'モジュール化された構造', + enableModularizedConfigFiles: `モジュール化された設定ファイルを${common.enable}`, + symlinkVhost: 'Symlink vhost', + enableSymLinksFrom: `シンボリックリンク を${common.enable} from`, + to: 'to', + shareConfiguration: '設定を共有する', + resetConfiguration: '設定をリセットする', + resetGlobalConfig: 'グローバル設定をリセットする', + resetAllDomains: '全てのドメインをリセットする', + removeAllDomains: '全てのドメインを削除する', + resetAllDomainsConfig: '全てのドメインの設定をリセットする', + resetDomainConfig: 'ドメインの設定をリセットする', + removeDomain: 'ドメインを削除する', + yesImSure: 'はい、大丈夫です', + noCancel: 'いいえ、キャンセルします', + tools: 'ツール', + resetGlobalConfigBody: 'グローバル設定の全ての設定をリセットします、よろしいですか?', + resetAllDomainsConfigBody: '全てのドメインの設定をリセットします、よろしいですか?', + removeAllDomainsBody: '全てのドメインを削除します、よろしいですか?', + areYouSureYouWantToResetAllConfigurationOptionsForThe: '次のドメインの設定をリセットします、よろしいですか?', + domain: '', + areYouSureYouWantToRemoveThe: '次のドメインの設定を削除します、よろしいですか?', + domainConfiguration: '', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/index.js new file mode 100644 index 00000000..f74847de --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/index.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import app from './app'; +import setup from './setup'; +import footer from './footer'; +import domainSections from './domain_sections'; +import globalSections from './global_sections'; +import setupSections from './setup_sections'; +import callouts from './callouts'; + +export default { app, setup, footer, domainSections, globalSections, setupSections, callouts }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup.js new file mode 100644 index 00000000..6c98b57f --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup.js @@ -0,0 +1,30 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + downloadConfig: '設定をダウンロードする', + copyBase64: 'Base64でコピーする', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/certbot.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/certbot.js new file mode 100644 index 00000000..fdfa4589 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/certbot.js @@ -0,0 +1,39 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const certbot = 'Certbot'; + +export default { + commentOutSslDirectivesInConfiguration: `設定中の ${common.ssl} 関連ディレクティブをコメントアウトします:`, + reloadYourNginxServer: `${common.nginx} サーバをリロードします:`, + obtainSslCertificatesFromLetsEncrypt: `${certbot} を利用して、 ${common.ssl} 証明書を ${common.letsEncrypt} から取得します:`, + uncommentSslDirectivesInConfiguration: `設定中の ${common.ssl} 関連ディレクティブのコメントアウトを外します:`, + configureCertbotToReloadNginxOnCertificateRenewal: `証明書の更新に成功したら ${certbot} が ${common.nginx} をリロードするように設定します:`, + certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} は、${common.nginx}の設定に合わせて設定する必要はありません。`, + certbot, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/download.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/download.js new file mode 100644 index 00000000..721a3b36 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/download.js @@ -0,0 +1,40 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + downloadTheGeneratedConfig: '生成された設定ファイルをダウンロードします:', + andUploadItToYourServers: 'そして、ご利用のサーバの以下のディレクトリに設定ファイルを アップロードします', + directory: '。', + or: 'もしくは、', + copyBase64StringOfCompressedConfig: '設定が圧縮されたbase64文字列をコピーし', + pasteItInYourServersCommandLineAndExecute: '、 サーバのコマンドラインにペーストして実行します', + navigateToYourNginxConfigurationDirectoryOnYourServer: `サーバの ${common.nginx} の設定ディレクトリへ移動します:`, + createABackupOfYourCurrentNginxConfiguration: `現在の ${common.nginx} の設定をバックアップします:`, + extractTheNewCompressedConfigurationArchiveUsingTar: 'tar を使って、新しい設定の入った圧縮ファイルを展開します:', + download: 'ダウンロード', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/go_live.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/go_live.js new file mode 100644 index 00000000..39623f52 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/go_live.js @@ -0,0 +1,33 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + letsGoLive: '起動しよう!', + reloadNginxToLoadInYourNewConfiguration: `${common.nginx} をリロードして新しい設定を反映します:`, + goLive: '起動!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/index.js new file mode 100644 index 00000000..8008ab48 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/index.js @@ -0,0 +1,32 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import certbot from './certbot'; +import download from './download'; +import goLive from './go_live'; +import ssl from './ssl'; + +export default { certbot, download, goLive, ssl }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/ssl.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/ssl.js new file mode 100644 index 00000000..ff3a2fd0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ja/templates/setup_sections/ssl.js @@ -0,0 +1,34 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + generateDiffieHellmanKeysByRunningThisCommandOnYourServer: 'サーバでこのコマンドを実行して Diffie-Hellman keys を生成します:', + createACommonAcmeChallengeDirectoryForLetsEncrypt: `共通の ACME-challenge ディレクトリを作成します (${common.letsEncrypt} の場合):`, + noAdditionalStepsAreNeededToSetUpSslForNginx: `${common.ssl} を ${common.nginx} の構成に設定するための追加の手順は必要ありません。`, + sslInit: `${common.ssl} 初期設定`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/common.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/common.js new file mode 100644 index 00000000..0a4dd27c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/common.js @@ -0,0 +1,48 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + back: 'Wstecz', + next: 'Dalej', + enable: 'włącz', + php: 'PHP', + ssl: 'SSL', + nginx: 'NGINX', + http: 'HTTP', + https: 'HTTPS', + letsEncrypt: 'Let\'s Encrypt', + python: 'Python', + wordPress: 'WordPress', + drupal: 'Drupal', + magento: 'Magento', + joomla: 'Joomla', + django: 'Django', + logging: 'Logi', + reverseProxy: 'Reverse proxy', + reverseProxyLower: 'reverse proxy', + restrict: 'Ogranicz', + path: 'Ścieżka', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/index.js new file mode 100644 index 00000000..15420a11 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/index.js @@ -0,0 +1,31 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from './common'; +import languages from './languages'; +import templates from './templates'; + +export default { common, languages, templates }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/languages.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/languages.js new file mode 100644 index 00000000..e6beb159 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/languages.js @@ -0,0 +1,38 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + en: 'Angielski', + es: 'Hiszpański', + zhCN: 'Chiński (uproszczony)', + zhTW: 'Chiński (tradycyjny)', + ptBR: 'Portugalski (brazylijski)', + fr: 'Francuski', + ru: 'Rosyjski', + pl: 'Polski', + de: 'Niemiecki', + ja: 'Japoński', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/app.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/app.js new file mode 100644 index 00000000..137fe143 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/app.js @@ -0,0 +1,40 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../common'; + +export default { + title: `${common.nginx}Config`, + description: `Najłatwiejszy sposób aby skonfigurować zoptymalizowany, bezpieczny i stabilny serwer ${common.nginx}.`, + singleColumnMode: 'Tryb jednokolumnowy', + splitColumnMode: 'Tryb wielokolumnowy', + perWebsiteConfig: 'Konfiguracja per strona', + addSite: 'Dodaj stronę', + globalConfig: 'Konfiguracja globalna', + setup: 'Setup', + configFiles: 'Pliki konfiguracyjne', + copied: 'Skopiowane', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/callouts/contribute.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/callouts/contribute.js new file mode 100644 index 00000000..c7d2b987 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/callouts/contribute.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + wantToContributeChanges: '👋 Chcesz zapropnować nowe funkcje, wprowadzić zmiany lub przetłumaczyć narzędzie na inny język?', + getInvolvedOnGitHub: 'Zaangażuj się na GitHub', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/callouts/droplet.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/callouts/droplet.js new file mode 100644 index 00000000..6ca9af4e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/callouts/droplet.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + lookingForAPlaceToDeploy: '👋 Szukasz miejsca do wdrożenia nowej konfiguracji? ', + tryOutDigitalOceansDroplet: 'Wypróbuj LEMP Droplet z NGINX od DigitalOcean', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/callouts/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/callouts/index.js new file mode 100644 index 00000000..dd68947b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/callouts/index.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import droplet from './droplet'; +import contribute from './contribute'; + +export default { droplet, contribute }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/https.js new file mode 100644 index 00000000..7e233b0a --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/https.js @@ -0,0 +1,48 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableEncryptedSslConnection: `${common.enable} szyfrowane połączenie ${common.ssl}`, + http2: `${common.http}/2`, + enableHttp2Connections: `${common.enable} połączenia ${common.http}/2`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.enable} połączenia ${common.http}/3`, + forceHttps: `Wymuś ${common.https}`, + hsts: 'HSTS', + enableStrictTransportSecurity: `${common.enable} Strict Transport Security, wymaga połaczenia HTTPS`, + enableIncludeSubDomains: `${common.enable} dyrektywę includeSubDomains, wymaga połaczenia HTTPS dla WSZYSTKICH subdomen`, + enablePreload: `${common.enable} dyrektywę preload, aby przekazać przeglądarce by wykonywała wyłącznie połączenia HTTPS`, + certificationType: 'Typ certyfikacji', + customCertificate: 'Własny certyfikat', + letsEncryptEmail: `email ${common.letsEncrypt}`, + http3IsANonStandardModule: 'HTTP/3 nie jest standardowym modułem NGINX, sprawdź ', + http3NginxQuicReadme: 'NGINX QUIC readme', + http3OrThe: ' lub ', + http3CloudflareQuicheProject: 'Cloudflare quiche project', + http3ForBuildingNginxWithHttp3: ' aby dowiedzieć się o NGINX z HTTP/3!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/index.js new file mode 100644 index 00000000..a6da9ab9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/index.js @@ -0,0 +1,38 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import php from './php'; +import presets from './presets'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import routing from './routing'; +import server from './server'; +import restrict from './restrict'; +import onion from './onion'; + +export default { https, logging, php, presets, python, reverseProxy, routing, server, restrict, onion }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/logging.js new file mode 100644 index 00000000..2bab9ee8 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/logging.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + byDomain: 'wg. domen', + enableForThisDomain: `${common.enable} dla tej domeny`, + arguments: 'arguments', // TODO: translate + level: 'logging level', // TODO: translate + forRedirects: 'for redirects', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/onion.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/onion.js new file mode 100644 index 00000000..1ad49aa9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/onion.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +const onion = 'Onion'; + +export default { + onion, + onionLocation: `lokalizacja ${onion}`, + provideAnOnionLocationToSetOnionLocationHeader: 'Podaj adres lokalizacji onion aby ustawić nagłówek Onion-Location dla Twojej strony.', + letsVisitorsKnownOnionServicesIsAvailable: 'Inforuje Twoich odiwedzających, że dostępna jest wersja onion Twojego serwisu dla przeglądarek Tor.', + learnMoreAboutOnionServices: 'Dowiedz się więcej o serwisach Onion', + onionLocationExpectedToEndWithOnion: 'Adres lokalizacji Onion zwykle kończy się na `.onion`.', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/php.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/php.js new file mode 100644 index 00000000..e0d60eac --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/php.js @@ -0,0 +1,57 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + phpIsDisabled: `${common.php} jest wyłączony.`, + phpCannotBeEnabledWithReverseProxy: `${common.php} nie może zostać włączony dopóki włączony jest reverse proxy.`, + phpCannotBeEnabledWithPython: `${common.php} nie może zostać włączony dopóki włączony jest ${common.python}.`, + enablePhp: `${common.enable} ${common.php}`, + wordPressRules: `reguły ${common.wordPress}`, + enableWordPressRules: `${common.enable} reguły specyficzne dla ${common.wordPress}`, + drupalRules: `reguły ${common.drupal}`, + enableDrupalRules: `${common.enable} reguły specyficzne dla ${common.drupal}`, + magentoRules: `reguły ${common.magento}`, + enableMagentoRules: `${common.enable} reguły specyficzne dla ${common.magento}`, + joomlaRules: `reguły ${common.joomla}`, + enableJoomlaRules: `${common.enable} reguły specyficzne dla ${common.joomla}`, + phpServer: `serwer ${common.php}`, + phpBackupServer: `serwer backupowy ${common.php}`, + tcp: 'TCP', + hhvmSocket: 'HHVM socket', + php70Socket: '7.0 socket', + php71Socket: '7.1 socket', + php72Socket: '7.2 socket', + php73Socket: '7.3 socket', + php74Socket: '7.4 socket', + php80Socket: '8.0 socket', + php81Socket: '8.1 socket', + php82Socket: '8.2 socket', + phpSocket: 'PHP socket', + custom: 'Własny', + disabled: 'Wyłączony', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/presets.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/presets.js new file mode 100644 index 00000000..ba15ad3c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/presets.js @@ -0,0 +1,33 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + presets: 'Ustawienia wstępne', + itLooksLikeYouCustomisedTheConfig: 'Wygląda na to, że dostosowałeś konfigurację dla tej domeny. Wybranie nowego ustawienia wstępnego może spowodować zresetowanie lub zmianę niektórych dostosowanych ustawień.', + frontend: 'Frontend', + nodeJs: 'Node.js', + singlePageApplication: 'Aplikacja Single-page (SPA)', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/python.js new file mode 100644 index 00000000..8a4d6ed5 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/python.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonIsDisabled: `${common.python} jest wyłączony.`, + pythonCannotBeEnabledWithReverseProxy: `${common.python} nie może zostać włączony dopóki włączony jest reverse proxy.`, + pythonCannotBeEnabledWithPhp: `${common.python} nie może zostać włączony dopóki włączony jest ${common.php}.`, + enablePython: `${common.enable} ${common.python}`, + djangoRules: `reguły ${common.django}`, + enableDjangoRules: `${common.enable} reguły specyficzne dla ${common.django}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/restrict.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/restrict.js new file mode 100644 index 00000000..4b699f6a --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/restrict.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + disableForThisDomain: 'wyłącz dla tej domeny', + responseCode: 'Kod odpowiedzi', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/reverse_proxy.js new file mode 100644 index 00000000..fb6e2ce1 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/reverse_proxy.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + reverseProxyIsDisabled: `${common.reverseProxy} jest wyłączone.`, + reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} nie może zostać włączony dopóki włączony jest ${common.php}.`, + reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} nie może zostać włączony dopóki włączony jest ${common.python}.`, + enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`, + proxyHostHeader: 'Proxy Host header', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/routing.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/routing.js new file mode 100644 index 00000000..b9c9bd61 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/routing.js @@ -0,0 +1,35 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + fallbackRouting: 'Routing rezerwowy', + fallbackRoutingPhpPath: `Ścieżka routingu rezerwowego dla ${common.php}`, + legacyPhpRouting: `Routing starego typu dla ${common.php}`, + enableLegacyRouting: `${common.enable} routing starego typu`, + routing: 'Routing', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/server.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/server.js new file mode 100644 index 00000000..1654da41 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/domain_sections/server.js @@ -0,0 +1,37 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + domain: 'Domena', + documentRoot: 'Document root', + oneOrMoreOtherDomainsAreAlsoNamed: 'Jedna lub więej domen ma również nazwę', + thisWillCauseIssuesWithConfigGeneration: 'Spowoduje to problem z generowaniem pliku konfiguracyjnego.', + wwwSubdomain: 'subdomena dla www', + cdnSubdomain: 'subdomena dla CDN', + redirectSubdomains: 'Przekieruj subdomeny', + server: 'Serwer', + listen: 'nasłuchuj', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/footer.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/footer.js new file mode 100644 index 00000000..82c8a143 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/footer.js @@ -0,0 +1,39 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + backToTop: 'Wróć na górę', + thisToolIs: 'To narzędzie jest', + openSourceOnGitHub: 'open-source\'owane na GitHub', + underThe: 'na', + mit: 'licencji MIT', + license: '!', + weWelcomeFeedbackAndContributions: 'Mile widziane opinie oraz kontrybucje.', + originallyCreatedBy: 'Oryginalnie stworzone przez', + balintSzekeres: 'Bálint Szekeres', + maintainedBy: 'utrzymywane przez', + digitalOcean: 'DigitalOcean', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/docker.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/docker.js new file mode 100644 index 00000000..484dbe46 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/docker.js @@ -0,0 +1,41 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const docker = 'Docker'; +const dockerfile = 'Dockerfile'; + +export default { + docker, + dockerfile, + dockerCompose: `${docker} Compose`, + applyDockerTweaks: `Zastosuj poprawki pod ${docker}a`, + applyDockerTweaksForNginx: `Zastosuj poprawki konfiguracyjne pod ${common.nginx} z ${docker}em`, + applyDockerTweaksExplainer: `Aktualizuje użytkownika ${common.nginx} na nginx oraz ustawia pid na /var/run/nginx.pid`, + includeDockerfile: `Dołącz ${dockerfile}, aby uruchomić ${common.nginx} z ${docker}`, + includeDockerCompose: `Dołącz docker-compose, aby uruchomić ${common.nginx} z docker-compose`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/https.js new file mode 100644 index 00000000..9c029c4f --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/https.js @@ -0,0 +1,52 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const mozilla = 'Mozilla'; +const ipv4 = 'IPv4'; +const ipv6 = 'IPv6'; + +export default { + sslProfile: `Profil ${common.ssl}`, + httpsMustBeEnabledOnOneSite: `${common.https} musi być włączony na conajmniej jednej stronie, aby móc zastosować globalną konfigurację ${common.https}.`, + portReuse: 'Reuseport', + enableReuseOfPort: `${common.enable} reuseport aby generować listening socket per worker`, + ocspDnsResolvers: 'OCSP DNS Resolvers', + cloudflareResolver: 'Cloudflare Resolver', + googlePublicDns: 'Google Public DNS', + openDns: 'OpenDNS', + quad9: 'Quad9', + verisign: 'Verisign', + letsEncryptWebroot: `${common.letsEncrypt} webroot`, + letsEncryptCertRoot: `ścieżka certyfikatów ${common.letsEncrypt}`, + mozillaModern: `${mozilla} Modern`, + mozillaIntermediate: `${mozilla} Intermediate`, + mozillaOld: `${mozilla} Old`, + ipv4Only: `tylko ${ipv4}`, + ipv6Only: `tylko ${ipv6}`, + ipv4AndIpv6: `${ipv4} oraz ${ipv6}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/index.js new file mode 100644 index 00000000..35eba1d9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/index.js @@ -0,0 +1,37 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import nginx from './nginx'; +import performance from './performance'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import security from './security'; +import tools from './tools'; +import docker from './docker'; + +export default { https, logging, nginx, performance, python, reverseProxy, security, tools, docker }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/logging.js new file mode 100644 index 00000000..f830ca13 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/logging.js @@ -0,0 +1,42 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableFileNotFoundErrorLogging: `${common.enable} logowanie błędów o nieznalezionych plikach`, + logformat: 'log_format', + level: 'logging level', // TODO: translate + enableCloudflare: 'dodaj nagłówki żądań Cloudflare do domyślnego formatu dziennika ', + cfRay: 'CF-Ray', + cfConnectingIp: 'CF-Connecting-IP', + xForwardedFor: 'X-Forwarded-For', + xForwardedProto: 'X-Forwarded-Proto', + trueClientIp: 'True-Client-IP', + cfIpCountry: 'CF-IPCountry', + cfVisitor: 'CF-Visitor', + cdnLoop: 'CDN-Loop', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/nginx.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/nginx.js new file mode 100644 index 00000000..63d351fb --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/nginx.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + nginxConfigDirectory: `ścieżka konfiguracji ${common.nginx}`, + mb: 'MB', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/performance.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/performance.js new file mode 100644 index 00000000..45429f84 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/performance.js @@ -0,0 +1,44 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + disableHtmlCaching: 'Disable HTML caching', // TODO: translate + enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate + gzipCompression: 'Kompresja gzip', + enableGzipCompression: `${common.enable} kompresję gzip`, + brotliCompression: 'Kompresja brotli', + enableBrotliCompression: `${common.enable} kompresję brotli`, + brotliIsANonStandardModule: 'Brotli nie jest standardowym modułem NGINX, sprawdź ', + brotliGoogleNgxBrotliProject: 'projekt Google ngx_brotli', + brotliForBuildingNginxWithBrotli: ' aby dowiedzieć się jak korzystać z NGINX z Brotli!', + expirationForAssets: 'Wygaśnięcie assetów', + expirationForMedia: 'Wygaśnięcie mediów', + expirationForSvgs: 'Wygaśnięcie SVG', + expirationForFonts: 'Wygaśnięcie czcionek', + performance: 'Wydajność', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/python.js new file mode 100644 index 00000000..d2351bf5 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/python.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonServer: `Serwer ${common.python}`, + pythonMustBeEnabledOnOneSite: `${common.python} musi być włączony na conajmniej jednej stronie, aby móc utworzyć konfigurację globalną dla ${common.python}a.`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/reverse_proxy.js new file mode 100644 index 00000000..b098b90f --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/reverse_proxy.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const legacyXForwarded = 'nagłówka X-Forwarded-* starego typu'; + +export default { + reverseProxyMustBeEnabledOnOneSite: `${common.reverseProxy} musi być włączony na conajmniej jednej stronie, aby móc zastosować globalną konfigurację ${common.reverseProxyLower}.`, + seconds: 'sekund(y)', + passOn: `Przekazywanie ${legacyXForwarded}`, + remove: `Aktywne usuwanie ${legacyXForwarded}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/security.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/security.js new file mode 100644 index 00000000..d65e2475 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/security.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `Korzystając z ${common.wordPress}, script-src 'self' 'unsafe-inline' 'unsafe-eval'; jest często wymagany w Content Security Policy aby panel administracyjny działał poprawnie.`, + security: 'Bezpieczeństwo', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/tools.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/tools.js new file mode 100644 index 00000000..a5484c74 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/global_sections/tools.js @@ -0,0 +1,53 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + modularizedStructure: 'Struktura modułowa', + enableModularizedConfigFiles: `${common.enable} pliki w strukturze modułowej`, + symlinkVhost: 'Symlink vhost', + enableSymLinksFrom: `${common.enable} symlinki z`, + to: 'do', + shareConfiguration: 'Udostępnij konfigurację', + resetConfiguration: 'Zresetuj konfigurację', + resetGlobalConfig: 'Zresetuj globalną konfigurację', + resetAllDomains: 'Zresetuj wszystkie domeny', + removeAllDomains: 'Usuń wszystkie domeny', + resetAllDomainsConfig: 'Zresetuj wszystkie konfiguracje domen', + resetDomainConfig: 'Zresetuj konfigurację domeny', + removeDomain: 'Usuń domenę', + yesImSure: 'Tak, jestem pewien', + noCancel: 'Nie, poniechaj', + tools: 'Narzędzia', + resetGlobalConfigBody: 'Czy na pewno chcesz zresetować wszystkie opcje konfiguracji w sekcji konfiguracji globalnej?', + resetAllDomainsConfigBody: 'Czy na pewno chcesz zresetować konfigurację WSZYSTKICH domen?', + removeAllDomainsBody: 'Czy na pewno chcesz usunąć WSZYSTKIE konfiguracje domeny?', + areYouSureYouWantToResetAllConfigurationOptionsForThe: 'Czy na pewno chcesz zresetować wszystkie opcje konfiguracji domeny', + domain: '?', + areYouSureYouWantToRemoveThe: 'Czy napewno chcesz usunąć konfigurację dla domeny ', + domainConfiguration: '?', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/index.js new file mode 100644 index 00000000..d9467454 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/index.js @@ -0,0 +1,35 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import app from './app'; +import setup from './setup'; +import footer from './footer'; +import domainSections from './domain_sections'; +import globalSections from './global_sections'; +import setupSections from './setup_sections'; +import callouts from './callouts'; + +export default { app, setup, footer, domainSections, globalSections, setupSections, callouts }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup.js new file mode 100644 index 00000000..a51a1c0d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + downloadConfig: 'Pobierz konfigurację', + copyBase64: 'Kopiuj Base64', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/certbot.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/certbot.js new file mode 100644 index 00000000..c16e2e06 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/certbot.js @@ -0,0 +1,39 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const certbot = 'Certbot'; + +export default { + commentOutSslDirectivesInConfiguration: `Zakomentuj dyrektywy związane z ${common.ssl} w pliku konfiguracyjnym:`, + reloadYourNginxServer: `Przeładuj usługę ${common.nginx}:`, + obtainSslCertificatesFromLetsEncrypt: `Uzysjak certyfikat ${common.ssl} od ${common.letsEncrypt} za pomocą ${certbot}:`, + uncommentSslDirectivesInConfiguration: `Odkomentuj dyrektywy związane z ${common.ssl} w pliku konfiguracyjnym:`, + configureCertbotToReloadNginxOnCertificateRenewal: `Skonfiguruj ${certbot} aby przeładował ${common.nginx} kiedy poprawnie odnowi certyfikat:`, + certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} nie musi być skonfigurowany dla Twojej konfiguracji ${common.nginx}.`, + certbot, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/download.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/download.js new file mode 100644 index 00000000..e16ca410 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/download.js @@ -0,0 +1,40 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + downloadTheGeneratedConfig: 'Pobierz wygenerowany konfig:', + andUploadItToYourServers: 'oraz wyślij go na serwer do katalogu', + directory: '', + or: 'lub ', + copyBase64StringOfCompressedConfig: 'Skopiuj skompresowny do base64, plik konfiguracyjny', + pasteItInYourServersCommandLineAndExecute: ', wklej go w terminalu na serwerze i uruchom go.', + navigateToYourNginxConfigurationDirectoryOnYourServer: `Nawiguj do ścieżki konfiguracyjnej ${common.nginx} na swoim serwerze:`, + createABackupOfYourCurrentNginxConfiguration: `Utrwórz kopię zapasową swojego obecnego pliku konfiguracyjnego ${common.nginx}:`, + extractTheNewCompressedConfigurationArchiveUsingTar: 'Wypakuj skompresowane archiwum z konfiguracją, korzystając z tar:', + download: 'Pobierz', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/go_live.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/go_live.js new file mode 100644 index 00000000..6002d1d2 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/go_live.js @@ -0,0 +1,33 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + letsGoLive: 'Do dzieła!', + reloadNginxToLoadInYourNewConfiguration: `Przeładuj ${common.nginx} aby załadować nową konfigurację:`, + goLive: 'Do dzieła!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/index.js new file mode 100644 index 00000000..f64fc18e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/index.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import certbot from './certbot'; +import download from './download'; +import goLive from './go_live'; +import ssl from './ssl'; + +export default { certbot, download, goLive, ssl }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/ssl.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/ssl.js new file mode 100644 index 00000000..0693fb8e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pl/templates/setup_sections/ssl.js @@ -0,0 +1,34 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + generateDiffieHellmanKeysByRunningThisCommandOnYourServer: 'Wygeneruj klucze Diffie-Hellman uruchamiając te komendę na swoim serwerze:', + createACommonAcmeChallengeDirectoryForLetsEncrypt: `Utwórz powszechny katalog ACME-challenge (dla ${common.letsEncrypt}):`, + noAdditionalStepsAreNeededToSetUpSslForNginx: `Nie potrzeba żadnych dodatkowych kroków dla ${common.ssl} w Twojej konfiguracji ${common.nginx}.`, + sslInit: `${common.ssl} init`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/common.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/common.js new file mode 100644 index 00000000..b8a8a7b3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/common.js @@ -0,0 +1,48 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + back: 'Voltar', + next: 'Próximo', + enable: 'habilitar', + php: 'PHP', + ssl: 'SSL', + nginx: 'NGINX', + http: 'HTTP', + https: 'HTTPS', + letsEncrypt: 'Let\'s Encrypt', + python: 'Python', + wordPress: 'WordPress', + drupal: 'Drupal', + magento: 'Magento', + joomla: 'Joomla', + django: 'Django', + logging: 'Logs', + reverseProxy: 'Proxy reverso', + reverseProxyLower: 'proxy reverso', + restrict: 'Restringir', + path: 'Caminho', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/index.js new file mode 100644 index 00000000..01c3f3e9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/index.js @@ -0,0 +1,31 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from './common'; +import languages from './languages'; +import templates from './templates'; + +export default { common, languages, templates }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/languages.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/languages.js new file mode 100644 index 00000000..345efa81 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/languages.js @@ -0,0 +1,38 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + en: 'Inglês', + es: 'Espanhol', + zhCN: 'Chinês (simplificado)', + zhTW: 'Chinês (tradicional)', + ptBR: 'Português (brasileiro)', + fr: 'Francês', + ru: 'Russa', + pl: 'Polonês', + de: 'Alemão', + ja: 'Japonês', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/app.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/app.js new file mode 100644 index 00000000..03002232 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/app.js @@ -0,0 +1,40 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../common'; + +export default { + title: `${common.nginx}Configuração`, + description: `A maneira mais fácil de configurar um servidor ${common.nginx} de alto desempenho, seguro e estável.`, + singleColumnMode: 'Modo de coluna única', + splitColumnMode: 'Modo com divisão de colunas', + perWebsiteConfig: 'Configuração por site', + addSite: 'Adicionar site', + globalConfig: 'Configuração global', + setup: 'Configurar', + configFiles: 'Arquivos de configuração', + copied: 'Copiado', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/callouts/contribute.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/callouts/contribute.js new file mode 100644 index 00000000..75a9e752 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/callouts/contribute.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + wantToContributeChanges: '👋 Want to request new features, contribute changes, or translate the tool into a new language?', // TODO: translate + getInvolvedOnGitHub: 'Get involved on GitHub', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/callouts/droplet.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/callouts/droplet.js new file mode 100644 index 00000000..676e584d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/callouts/droplet.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + lookingForAPlaceToDeploy: '👋 Looking for a place to deploy your new configuration?', // TODO: translate + tryOutDigitalOceansDroplet: 'Try out DigitalOcean\'s LEMP Droplet with NGINX', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/callouts/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/callouts/index.js new file mode 100644 index 00000000..dd68947b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/callouts/index.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import droplet from './droplet'; +import contribute from './contribute'; + +export default { droplet, contribute }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/https.js new file mode 100644 index 00000000..5d1ebef2 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/https.js @@ -0,0 +1,48 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableEncryptedSslConnection: `${common.enable} conexões ${common.ssl} criptografadas`, + http2: `${common.http}/2`, + enableHttp2Connections: `${common.enable} conexões ${common.http}/2`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.enable} conexões ${common.http}/3`, + forceHttps: `Forçar ${common.https}`, + hsts: 'HSTS', + enableStrictTransportSecurity: `${common.enable} Strict Transport Security, requerendo conexões HTTPS`, + enableIncludeSubDomains: `${common.enable} a diretiva includeSubDomains, requerendo conexões HTTPS para TODOS os subdomínios`, + enablePreload: `${common.enable} a diretiva preload, dizendo aos navegadores para sempre fazer conexões HTTPS apenas`, + certificationType: 'Tipo de certificação', + customCertificate: 'Certificado personalizado', + letsEncryptEmail: `E-mail do ${common.letsEncrypt}`, + http3IsANonStandardModule: 'HTTP/3 isn\'t a standard NGINX module, check the ', // TODO: translate + http3NginxQuicReadme: 'NGINX QUIC readme', // TODO: translate + http3OrThe: ' or the ', // TODO: translate + http3CloudflareQuicheProject: 'Cloudflare quiche project', // TODO: translate + http3ForBuildingNginxWithHttp3: ' for how to build NGINX with HTTP/3!', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/index.js new file mode 100644 index 00000000..5b2b8177 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/index.js @@ -0,0 +1,38 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import php from './php'; +import presets from './presets'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import routing from './routing'; +import server from './server'; +import restrict from './restrict'; +import onion from './onion'; + +export default { https, logging, php, presets, python, reverseProxy, routing, server, restrict, onion }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/logging.js new file mode 100644 index 00000000..378acad1 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/logging.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + byDomain: 'por domínio', + enableForThisDomain: `${common.enable} para este domínio`, + arguments: 'arguments', // TODO: translate + level: 'logging level', // TODO: translate + forRedirects: 'for redirects', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/onion.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/onion.js new file mode 100644 index 00000000..1d1b5096 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/onion.js @@ -0,0 +1,36 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +const onion = 'Onion'; + +export default { + onion, + onionLocation: `${onion} location`, // TODO: translate + provideAnOnionLocationToSetOnionLocationHeader: 'Provide an onion location address to set the Onion-Location header for your site.', // TODO: translate + letsVisitorsKnownOnionServicesIsAvailable: 'This lets visitors know that an onion services version of your site is available for Tor browsers.', // TODO: translate + learnMoreAboutOnionServices: 'Learn more about Onion services', // TODO: translate + onionLocationExpectedToEndWithOnion: 'Onion location addresses normally end with `.onion`.', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/php.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/php.js new file mode 100644 index 00000000..0fcff9dc --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/php.js @@ -0,0 +1,57 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + phpIsDisabled: `O ${common.php} está desabilitado.`, + phpCannotBeEnabledWithReverseProxy: `O ${common.php} não pode ser habilitado enquanto o proxy reverso estiver habilitado.`, + phpCannotBeEnabledWithPython: `O ${common.php} não pode ser habilitado enquanto o ${common.python} estiver habilitado.`, + enablePhp: `${common.enable} ${common.php}`, + wordPressRules: `Regras do ${common.wordPress}`, + enableWordPressRules: `${common.enable} regras específicas do ${common.wordPress}`, + drupalRules: `Regras do ${common.drupal}`, + enableDrupalRules: `${common.enable} regras específicas do ${common.drupal}`, + magentoRules: `Regras do ${common.magento}`, + enableMagentoRules: `${common.enable} regras específicas do ${common.magento}`, + joomlaRules: `Regras do ${common.joomla}`, + enableJoomlaRules: `${common.enable} regras específicas do ${common.joomla}`, + phpServer: `Servidor ${common.php}`, + phpBackupServer: `Servidor de backup ${common.php}`, + tcp: 'TCP', + hhvmSocket: 'Socket HHVM', + php70Socket: 'Socket 7.0', + php71Socket: 'Socket 7.1', + php72Socket: 'Socket 7.2', + php73Socket: 'Socket 7.3', + php74Socket: 'Socket 7.4', + php80Socket: 'Socket 8.0', + php81Socket: 'Socket 8.1', + php82Socket: 'Socket 8.2', + phpSocket: 'Socket PHP', + custom: 'Custom', // TODO: translate + disabled: 'Desabilitado', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/presets.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/presets.js new file mode 100644 index 00000000..b3e33806 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/presets.js @@ -0,0 +1,33 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + presets: 'Predefinições', + itLooksLikeYouCustomisedTheConfig: 'Parece que você personalizou a configuração para este domínio. A escolha de uma nova predefinição pode redefinir ou alterar algumas das configurações que você personalizou.', + frontend: 'Frontend', + nodeJs: 'Node.js', + singlePageApplication: 'Aplicação de página única', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/python.js new file mode 100644 index 00000000..179590af --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/python.js @@ -0,0 +1,36 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonIsDisabled: `O ${common.python} está desabilitado.`, + pythonCannotBeEnabledWithReverseProxy: `O ${common.python} não pode ser habilitado enquanto o proxy reverso estiver habilitado.`, + pythonCannotBeEnabledWithPhp: `O ${common.python} não pode ser habilitado enquanto o ${common.php} estiver habilitado.`, + enablePython: `${common.enable} ${common.python}`, + djangoRules: `Regras do ${common.django}`, + enableDjangoRules: `${common.enable} regras específicas do ${common.django}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/restrict.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/restrict.js new file mode 100644 index 00000000..8ae72ed9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/restrict.js @@ -0,0 +1,30 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + disableForThisDomain: 'desabilitar para este domínio', + responseCode: 'Código de resposta', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/reverse_proxy.js new file mode 100644 index 00000000..1234f5eb --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/reverse_proxy.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + reverseProxyIsDisabled: `O ${common.reverseProxy} está desabilitado.`, + reverseProxyCannotBeEnabledWithPhp: `O ${common.reverseProxy} não pode ser habilitado enquanto o ${common.php} estiver habilitado.`, + reverseProxyCannotBeEnabledWithPython: `O ${common.reverseProxy} não pode ser habilitado enquanto o ${common.python} estiver habilitado.`, + enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`, + proxyHostHeader: 'Proxy Host header', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/routing.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/routing.js new file mode 100644 index 00000000..4a2eaef8 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/routing.js @@ -0,0 +1,35 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + fallbackRouting: 'Roteamento alternativo', + fallbackRoutingPhpPath: `Caminho para roteamento alternativo ${common.php}`, + legacyPhpRouting: `Roteamento ${common.php} legado`, + enableLegacyRouting: `${common.enable} roteamento legado`, + routing: 'Roteamento', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/server.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/server.js new file mode 100644 index 00000000..c2694d96 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/domain_sections/server.js @@ -0,0 +1,37 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + domain: 'Domínio', + documentRoot: 'Raiz dos documentos', + oneOrMoreOtherDomainsAreAlsoNamed: 'Um ou mais outros domínios também são nomeados', + thisWillCauseIssuesWithConfigGeneration: 'Isso causará problemas com a geração da configuração.', + wwwSubdomain: 'Subdomínio www', + cdnSubdomain: 'Subdomínio CDN', + redirectSubdomains: 'Redirecionar subdomínios', + server: 'Servidor', + listen: 'escutar', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/footer.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/footer.js new file mode 100644 index 00000000..6f72ca20 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/footer.js @@ -0,0 +1,39 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + backToTop: 'Voltar ao topo', + thisToolIs: 'Esta ferramenta é', + openSourceOnGitHub: 'de código aberto no GitHub', + underThe: 'sob a', + mit: 'licença MIT', + license: '!', + weWelcomeFeedbackAndContributions: 'Agradecemos comentários e contribuições.', + originallyCreatedBy: 'Originalmente criado por', + balintSzekeres: 'Bálint Szekeres', + maintainedBy: 'mantido por', + digitalOcean: 'DigitalOcean', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/docker.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/docker.js new file mode 100644 index 00000000..43de9ba6 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/docker.js @@ -0,0 +1,41 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const docker = 'Docker'; +const dockerfile = 'Dockerfile'; + +export default { + docker, + dockerfile, + dockerCompose: `${docker} Compose`, + applyDockerTweaks: `Aplicar ajustes do ${docker}`, + applyDockerTweaksForNginx: `Aplicar ajustes de configuração para executar o ${common.nginx} com ${docker}`, + applyDockerTweaksExplainer: `Atualiza o usuário ${common.nginx} para ser nginx e o pid para /var/run/nginx.pid`, + includeDockerfile: `Incluir o ${dockerfile} para executar o ${common.nginx} com ${docker}`, + includeDockerCompose: `Incluir o docker-compose para executar o ${common.nginx} com docker-compose`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/https.js new file mode 100644 index 00000000..e9a33e9f --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/https.js @@ -0,0 +1,52 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const mozilla = 'Mozilla'; +const ipv4 = 'IPv4'; +const ipv6 = 'IPv6'; + +export default { + sslProfile: `Perfil ${common.ssl}`, + httpsMustBeEnabledOnOneSite: `O ${common.https} deve estar habilitado em pelo menos um site para definir as configurações globais de ${common.https}.`, + portReuse: 'Reuseport', // TODO: translate + enableReuseOfPort: `${common.enable} reuseport to generate a listening socket per worker`, // TODO: translate + ocspDnsResolvers: 'Resolvedores de DNS OCSP', + cloudflareResolver: 'Resolvedor Cloudflare', + googlePublicDns: 'DNS público do Google', + openDns: 'OpenDNS', + quad9: 'Quad9', + verisign: 'Verisign', + letsEncryptWebroot: `Diretório raiz do ${common.letsEncrypt}`, + letsEncryptCertRoot: `Diretório de certificado do ${common.letsEncrypt}`, + mozillaModern: `${mozilla} Modern`, + mozillaIntermediate: `${mozilla} Intermediate`, + mozillaOld: `${mozilla} Old`, + ipv4Only: `${ipv4} apenas`, + ipv6Only: `${ipv6} apenas`, + ipv4AndIpv6: `${ipv4} & ${ipv6}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/index.js new file mode 100644 index 00000000..35eba1d9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/index.js @@ -0,0 +1,37 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import nginx from './nginx'; +import performance from './performance'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import security from './security'; +import tools from './tools'; +import docker from './docker'; + +export default { https, logging, nginx, performance, python, reverseProxy, security, tools, docker }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/logging.js new file mode 100644 index 00000000..418578b8 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/logging.js @@ -0,0 +1,42 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableFileNotFoundErrorLogging: `${common.enable} erro de arquivo não encontrado ao fazer login`, + logformat: 'log_format', + level: 'logging level', // TODO: translate + enableCloudflare: 'adicionar cabeçalhos de solicitação Cloudflare ao formato de log padrão', + cfRay: 'CF-Ray', + cfConnectingIp: 'CF-Connecting-IP', + xForwardedFor: 'X-Forwarded-For', + xForwardedProto: 'X-Forwarded-Proto', + trueClientIp: 'True-Client-IP', + cfIpCountry: 'CF-IPCountry', + cfVisitor: 'CF-Visitor', + cdnLoop: 'CDN-Loop', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/nginx.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/nginx.js new file mode 100644 index 00000000..d6601d99 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/nginx.js @@ -0,0 +1,32 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + nginxConfigDirectory: `Diretório de configuração do ${common.nginx}`, + mb: 'MB', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/performance.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/performance.js new file mode 100644 index 00000000..abbb9ad8 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/performance.js @@ -0,0 +1,44 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + disableHtmlCaching: 'Disable HTML caching', // TODO: translate + enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate + gzipCompression: 'Compressão Gzip', + enableGzipCompression: `${common.enable} compressão gzip`, + brotliCompression: 'Compressão Brotli', + enableBrotliCompression: `${common.enable} compressão brotli`, + brotliIsANonStandardModule: 'Brotli isn\'t a standard NGINX module, check the ', // TODO: translate + brotliGoogleNgxBrotliProject: 'Google ngx_brotli project', // TODO: translate + brotliForBuildingNginxWithBrotli: ' for how to build NGINX with Brotli!', // TODO: translate + expirationForAssets: 'Expiração de ativos', + expirationForMedia: 'Expiração de mídia', + expirationForSvgs: 'Expiração de SVGs', + expirationForFonts: 'Expiração de fontes', + performance: 'Desempenho', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/python.js new file mode 100644 index 00000000..e04f7b0e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/python.js @@ -0,0 +1,32 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonServer: `Servidor ${common.python}`, + pythonMustBeEnabledOnOneSite: `O ${common.python} deve estar habilitado em pelo menos um site para definir as configurações globais do ${common.python}.`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/reverse_proxy.js new file mode 100644 index 00000000..3784f64b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/reverse_proxy.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const legacyXForwarded = 'Legacy X-Forwarded-* headers'; // TODO: translate + +export default { + reverseProxyMustBeEnabledOnOneSite: `O ${common.reverseProxy} deve estar habilitado em pelo menos um site para definir as configurações globais do ${common.reverseProxyLower}.`, + seconds: 'segundos', + passOn: `${legacyXForwarded} passed on`, // TODO: translate + remove: `${legacyXForwarded} actively removed`, // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/security.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/security.js new file mode 100644 index 00000000..14bd1d16 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/security.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `Ao utilizar o ${common.wordPress}, script-src 'self' 'unsafe-inline' 'unsafe-eval'; é frequentemente exigido na Política de Segurança de Conteúdo para permitir que o painel de administração funcione corretamente.`, + security: 'Segurança', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/tools.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/tools.js new file mode 100644 index 00000000..be2b8a60 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/global_sections/tools.js @@ -0,0 +1,53 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + modularizedStructure: 'Estrutura modularizada', + enableModularizedConfigFiles: `${common.enable} arquivos de configuração modularizada`, + symlinkVhost: 'Symlink para vhost', + enableSymLinksFrom: `${common.enable} symlinks de`, + to: 'para', + shareConfiguration: 'Compartilhar configuração', + resetConfiguration: 'Redefinir configuração', + resetGlobalConfig: 'Redefinir configuração global', + resetAllDomains: 'Redefinir todos os domínios', + removeAllDomains: 'Remover todos os domínios', + resetAllDomainsConfig: 'Redefinir todas as configurações de domínios', + resetDomainConfig: 'Redefinir configuração de domínio', + removeDomain: 'Remover domínio', + yesImSure: 'Sim, tenho certeza', + noCancel: 'Não, cancelar', + tools: 'Ferramentas', + resetGlobalConfigBody: 'Tem certeza de que deseja redefinir todas as opções de configuração na seção de configuração global?', + resetAllDomainsConfigBody: 'Tem certeza de que deseja redefinir a configuração de TODOS os domínios?', + removeAllDomainsBody: 'Tem certeza de que deseja remover TODAS as configurações de domínio?', + areYouSureYouWantToResetAllConfigurationOptionsForThe: 'Tem certeza de que deseja redefinir todas as opções de configuração para o', + domain: 'domínio?', + areYouSureYouWantToRemoveThe: 'Tem certeza de que deseja remover a ', + domainConfiguration: 'configuração do domínio?', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/index.js new file mode 100644 index 00000000..d9467454 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/index.js @@ -0,0 +1,35 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import app from './app'; +import setup from './setup'; +import footer from './footer'; +import domainSections from './domain_sections'; +import globalSections from './global_sections'; +import setupSections from './setup_sections'; +import callouts from './callouts'; + +export default { app, setup, footer, domainSections, globalSections, setupSections, callouts }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup.js new file mode 100644 index 00000000..2b1e794f --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup.js @@ -0,0 +1,30 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + downloadConfig: 'Baixar a configuração', + copyBase64: 'Cópia Base64', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/certbot.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/certbot.js new file mode 100644 index 00000000..7fe37c11 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/certbot.js @@ -0,0 +1,39 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const certbot = 'Certbot'; + +export default { + commentOutSslDirectivesInConfiguration: `Comente as diretivas relacionadas ao ${common.ssl} na configuração:`, + reloadYourNginxServer: `Recarregue seu servidor ${common.nginx}:`, + obtainSslCertificatesFromLetsEncrypt: `Obtenha certificados ${common.ssl} de ${common.letsEncrypt} usando o ${certbot}:`, + uncommentSslDirectivesInConfiguration: `Descomente as diretivas relacionadas ao ${common.ssl} na configuração:`, + configureCertbotToReloadNginxOnCertificateRenewal: `Configure o ${certbot} para recarregar o ${common.nginx} quando ele renovar certificados com sucesso:`, + certbotDoesNotNeedToBeSetupForYourConfiguration: `O ${certbot} não precisa ser definido para sua configuração ${common.nginx}.`, + certbot, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/download.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/download.js new file mode 100644 index 00000000..2aab5ccf --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/download.js @@ -0,0 +1,40 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + downloadTheGeneratedConfig: 'Baixe a configuração gerada:', + andUploadItToYourServers: 'e carregue-a para o', + directory: 'diretórioi do seu servidor.', + or: 'ou, ', + copyBase64StringOfCompressedConfig: 'Copie uma string base64 da configuração compactado', + pasteItInYourServersCommandLineAndExecute: ', cole-a na linha de comando do seu servidor e execute-a.', + navigateToYourNginxConfigurationDirectoryOnYourServer: `Navegue até o diretório de configuração do ${common.nginx} em seu servidor:`, + createABackupOfYourCurrentNginxConfiguration: `Crie um backup da sua configuração atual do ${common.nginx}:`, + extractTheNewCompressedConfigurationArchiveUsingTar: 'Extraia o novo arquivo de configuração compactado usando tar:', + download: 'Baixar', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/go_live.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/go_live.js new file mode 100644 index 00000000..859bc78a --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/go_live.js @@ -0,0 +1,33 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + letsGoLive: 'Vamos colocar no ar!', + reloadNginxToLoadInYourNewConfiguration: `Recarregue o ${common.nginx} para carregar a sua nova configuração:`, + goLive: 'Está no ar!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/index.js new file mode 100644 index 00000000..378a5cf3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/index.js @@ -0,0 +1,32 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import certbot from './certbot'; +import download from './download'; +import goLive from './go_live'; +import ssl from './ssl'; + +export default { certbot, download, goLive, ssl }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/ssl.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/ssl.js new file mode 100644 index 00000000..01a0ba87 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/pt-br/templates/setup_sections/ssl.js @@ -0,0 +1,34 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + generateDiffieHellmanKeysByRunningThisCommandOnYourServer: 'Gere chaves Diffie-Hellman executando este comando em seu servidor:', + createACommonAcmeChallengeDirectoryForLetsEncrypt: `Crie um diretório comum ACME-challenge (para o ${common.letsEncrypt}):`, + noAdditionalStepsAreNeededToSetUpSslForNginx: `Nenhuma etapa adicional é necessária para configurar o ${common.ssl} para a sua configuração ${common.nginx}.`, + sslInit: `${common.ssl} init`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/common.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/common.js new file mode 100644 index 00000000..2feeb03b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/common.js @@ -0,0 +1,48 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + back: 'Назад', + next: 'Дальше', + enable: 'включить', + php: 'PHP', + ssl: 'SSL', + nginx: 'NGINX', + http: 'HTTP', + https: 'HTTPS', + letsEncrypt: 'Let\'s Encrypt', + python: 'Python', + wordPress: 'WordPress', + drupal: 'Drupal', + magento: 'Magento', + joomla: 'Joomla', + django: 'Django', + logging: 'Логирование', + reverseProxy: 'Обратный прокси', + reverseProxyLower: 'обратный прокси', + restrict: 'Ограничить', + path: 'Путь', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/index.js new file mode 100644 index 00000000..01c3f3e9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/index.js @@ -0,0 +1,31 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from './common'; +import languages from './languages'; +import templates from './templates'; + +export default { common, languages, templates }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/languages.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/languages.js new file mode 100644 index 00000000..b883074b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/languages.js @@ -0,0 +1,38 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + en: 'Английский', + es: 'испанский', + zhCN: 'Китайский (упрощённый)', + zhTW: 'Китайский (традиционный)', + ptBR: 'Португальский (бразильский)', + fr: 'Французский', + ru: 'Русский', + pl: 'Польский', + de: 'Немецкий', + ja: 'Японский', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/app.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/app.js new file mode 100644 index 00000000..119b77fb --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/app.js @@ -0,0 +1,40 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../common'; + +export default { + title: `${common.nginx}Config`, + description: `Самый простой способ настроить производительный, безопасный и стабильный ${common.nginx} сервер.`, + singleColumnMode: 'Одноколоночный режим', + splitColumnMode: 'Режим разделения столбца', + perWebsiteConfig: 'Конфигурация для каждого сайта', + addSite: 'Добавить сайт', + globalConfig: 'Глобальная конфигурация', + setup: 'Настройка', + configFiles: 'Файлы конфигурации', + copied: 'Скопировано', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/callouts/contribute.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/callouts/contribute.js new file mode 100644 index 00000000..b7916c2c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/callouts/contribute.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + wantToContributeChanges: '👋 Хотите запросить новые функции, внести изменения или перевести инструмент на новый язык?', + getInvolvedOnGitHub: 'Посмотреть на GitHub', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/callouts/droplet.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/callouts/droplet.js new file mode 100644 index 00000000..75950e85 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/callouts/droplet.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + lookingForAPlaceToDeploy: '👋 Ищете место для развертывания новой конфигурации?', + tryOutDigitalOceansDroplet: 'Попробуйте LEMP Droplet от DigitalOcean с NGINX', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/callouts/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/callouts/index.js new file mode 100644 index 00000000..dd68947b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/callouts/index.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import droplet from './droplet'; +import contribute from './contribute'; + +export default { droplet, contribute }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/https.js new file mode 100644 index 00000000..5c8a6242 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/https.js @@ -0,0 +1,48 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableEncryptedSslConnection: `${common.enable} зашифрованные ${common.ssl} соединения`, + http2: `${common.http}/2`, + enableHttp2Connections: `${common.enable} ${common.http}/2 соединения`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.enable} ${common.http}/3 соединения`, + forceHttps: `Использовать только ${common.https}`, + hsts: 'HSTS', + enableStrictTransportSecurity: `${common.enable} Strict Transport Security, требующая HTTPS соединения`, + enableIncludeSubDomains: `${common.enable} includeSubDomains директиву, требующая HTTPS соединения для ВСЕХ поддоменов`, + enablePreload: `${common.enable} preload директиву, указывающая браузерам всегда устанавливать только HTTPS-соединения`, + certificationType: 'Тип сертификации', + customCertificate: 'Другой сертификат', + letsEncryptEmail: `${common.letsEncrypt} email`, + http3IsANonStandardModule: 'HTTP/3 не является стандартным модулем NGINX, ознакомьтесь с ', + http3NginxQuicReadme: 'readme NGINX QUIC', + http3OrThe: ' или с ', + http3CloudflareQuicheProject: 'проектом Cloudflare quiche', + http3ForBuildingNginxWithHttp3: ' чтобы узнать как собрать NGINX с HTTP/3!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/index.js new file mode 100644 index 00000000..5b2b8177 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/index.js @@ -0,0 +1,38 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import php from './php'; +import presets from './presets'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import routing from './routing'; +import server from './server'; +import restrict from './restrict'; +import onion from './onion'; + +export default { https, logging, php, presets, python, reverseProxy, routing, server, restrict, onion }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/logging.js new file mode 100644 index 00000000..596f8657 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/logging.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + byDomain: 'по домену', + enableForThisDomain: `${common.enable} для этого домена`, + arguments: 'arguments', // TODO: translate + level: 'logging level', // TODO: translate + forRedirects: 'for redirects', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/onion.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/onion.js new file mode 100644 index 00000000..994acb7e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/onion.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +const onion = 'Onion'; + +export default { + onion, + onionLocation: `Расположение ${onion}`, + provideAnOnionLocationToSetOnionLocationHeader: `Укажите расположение ${onion}, чтобы задать заголовок Onion-Location для Вашего сайта.`, + letsVisitorsKnownOnionServicesIsAvailable: `Это позволит узнать посетителям, что у Вашего сайта есть ${onion}-версия, доступная в браузере Tor.`, + learnMoreAboutOnionServices: `Узнайте больше об ${onion}`, + onionLocationExpectedToEndWithOnion: `Адреса ${onion} обычно оканчиваются на \`.onion\`.`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/php.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/php.js new file mode 100644 index 00000000..5b72943c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/php.js @@ -0,0 +1,57 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + phpIsDisabled: `${common.php} выключен.`, + phpCannotBeEnabledWithReverseProxy: `${common.php} не может быть включен, пока включен обратный прокси.`, + phpCannotBeEnabledWithPython: `${common.php} не может быть включен, пока включен ${common.python}.`, + enablePhp: `${common.enable} ${common.php}`, + wordPressRules: `${common.wordPress} правила`, + enableWordPressRules: `${common.enable} ${common.wordPress}-специфичные правила`, + drupalRules: `${common.drupal} правила`, + enableDrupalRules: `${common.enable} ${common.drupal}-специфичные правила`, + magentoRules: `${common.magento} правила`, + enableMagentoRules: `${common.enable} ${common.magento}-специфичные правила`, + joomlaRules: `${common.joomla} правила`, + enableJoomlaRules: `${common.enable} ${common.joomla}-специфичные правила`, + phpServer: `${common.php} сервер`, + phpBackupServer: `${common.php} бекап сервер`, + tcp: 'TCP', + hhvmSocket: 'HHVM сокет', + php70Socket: '7.0 сокет', + php71Socket: '7.1 сокет', + php72Socket: '7.2 сокет', + php73Socket: '7.3 сокет', + php74Socket: '7.4 сокет', + php80Socket: '8.0 сокет', + php81Socket: '8.1 сокет', + php82Socket: '8.2 сокет', + phpSocket: 'PHP сокет', + custom: 'Другой', + disabled: 'Выключено', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/presets.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/presets.js new file mode 100644 index 00000000..b623f842 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/presets.js @@ -0,0 +1,33 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + presets: 'Пресеты', + itLooksLikeYouCustomisedTheConfig: 'Похоже, вы уже настроили конфигурацию для этого домена. Выбор нового пресета может привести к сбросу или изменению некоторых настроек, которые Вы настроили ранее.', + frontend: 'Фронтенд', + nodeJs: 'Node.js', + singlePageApplication: 'Одностраничное приложение', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/python.js new file mode 100644 index 00000000..0866f3ce --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/python.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonIsDisabled: `${common.python} выключен.`, + pythonCannotBeEnabledWithReverseProxy: `${common.python} не может быть включен, пока включен обратный прокси.`, + pythonCannotBeEnabledWithPhp: `${common.python} не может быть включен, пока включен ${common.php}.`, + enablePython: `${common.enable} ${common.python}`, + djangoRules: `${common.django} правила`, + enableDjangoRules: `${common.enable} ${common.django}-специфичные правила`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/restrict.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/restrict.js new file mode 100644 index 00000000..e462b7b7 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/restrict.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + disableForThisDomain: 'выключено для этого домена', + responseCode: 'Код ответа', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/reverse_proxy.js new file mode 100644 index 00000000..728aa5a1 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/reverse_proxy.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + reverseProxyIsDisabled: `${common.reverseProxy} выключено.`, + reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} не может быть включен, пока включен ${common.php}.`, + reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} не может быть включен, пока включен ${common.python}.`, + enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`, + proxyHostHeader: 'Proxy Host header', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/routing.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/routing.js new file mode 100644 index 00000000..5faf415c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/routing.js @@ -0,0 +1,35 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + fallbackRouting: 'Fallback маршрутизация', + fallbackRoutingPhpPath: `Путь к Fallback ${common.php}`, + legacyPhpRouting: `Устаревшая маршрутизация ${common.php}`, + enableLegacyRouting: `${common.enable} устаревшую маршрутизацию`, + routing: 'Маршрутизация', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/server.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/server.js new file mode 100644 index 00000000..15492cde --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/domain_sections/server.js @@ -0,0 +1,37 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + domain: 'Домен', + documentRoot: 'Корневая директория', + oneOrMoreOtherDomainsAreAlsoNamed: 'Один или несколько других доменов также названы', + thisWillCauseIssuesWithConfigGeneration: 'Это вызовет проблемы с генерацией конфигурации.', + wwwSubdomain: 'WWW поддомен', + cdnSubdomain: 'CDN поддомен', + redirectSubdomains: 'Перенаправлять поддомены', + server: 'Сервер', + listen: 'Слушать от адреса', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/footer.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/footer.js new file mode 100644 index 00000000..2f8c1192 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/footer.js @@ -0,0 +1,39 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + backToTop: 'Вернуться в начало', + thisToolIs: 'Этот инструмент', + openSourceOnGitHub: 'с открытым исходным кодом на GitHub', + underThe: 'под', + mit: 'MIT', + license: 'лицензией!', + weWelcomeFeedbackAndContributions: 'Мы приветствуем обратную связь и поддержку.', + originallyCreatedBy: 'Начало проекта положил', + balintSzekeres: 'Bálint Szekeres', + maintainedBy: 'при поддержке', + digitalOcean: 'DigitalOcean', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/docker.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/docker.js new file mode 100644 index 00000000..89fbc844 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/docker.js @@ -0,0 +1,41 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const docker = 'Docker'; +const dockerfile = 'Dockerfile'; + +export default { + docker, + dockerfile, + dockerCompose: `${docker} Compose`, + applyDockerTweaks: `Применить настройки ${docker}`, + applyDockerTweaksForNginx: `Примените настройки конфигурации для запуска ${common.nginx} с ${docker}`, + applyDockerTweaksExplainer: `Обновляет пользователя ${common.nginx} на nginx и pid на /var/run/nginx.pid`, + includeDockerfile: `Добавить ${dockerfile}, чтобы запустить ${common.nginx} с ${docker}`, + includeDockerCompose: `Добавить docker-compose, чтобы запустить ${common.nginx} с docker-compose`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/https.js new file mode 100644 index 00000000..140c2507 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/https.js @@ -0,0 +1,52 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const mozilla = 'Mozilla'; +const ipv4 = 'IPv4'; +const ipv6 = 'IPv6'; + +export default { + sslProfile: `${common.ssl} Профиль`, + httpsMustBeEnabledOnOneSite: `${common.https} должен быть включен хотя бы на одном сайте, чтобы сконфигурировать глобальные ${common.https} настройки.`, + portReuse: 'Reuseport', + enableReuseOfPort: `${common.enable} reuseport чтобы создавать отдельный слушающий сокет для каждого рабочего процесса`, + ocspDnsResolvers: 'OCSP DNS Преобразователи', + cloudflareResolver: 'Cloudflare Преобразователь', + googlePublicDns: 'Публичные Google DNS', + openDns: 'OpenDNS', + quad9: 'Quad9', + verisign: 'Verisign', + letsEncryptWebroot: `Директория ${common.letsEncrypt}`, + letsEncryptCertRoot: `Директория сертификата ${common.letsEncrypt}`, + mozillaModern: `${mozilla} Modern`, + mozillaIntermediate: `${mozilla} Intermediate`, + mozillaOld: `${mozilla} Old`, + ipv4Only: `только ${ipv4}`, + ipv6Only: `только ${ipv6}`, + ipv4AndIpv6: `${ipv4} & ${ipv6}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/index.js new file mode 100644 index 00000000..7653a47e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/index.js @@ -0,0 +1,37 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import nginx from './nginx'; +import performance from './performance'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import security from './security'; +import tools from './tools'; +import docker from './docker'; + +export default { https, logging, nginx, performance, python, reverseProxy, security, tools, docker }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/logging.js new file mode 100644 index 00000000..5936a217 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/logging.js @@ -0,0 +1,42 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableFileNotFoundErrorLogging: `${common.enable} логирование ошибок для файлов, которые не были найдены при запросе`, + logformat: 'log_format', + level: 'logging level', // TODO: translate + enableCloudflare: 'добавить Cloudflare хедеры запроса в дефолтный формат логов', + cfRay: 'CF-Ray', + cfConnectingIp: 'CF-Connecting-IP', + xForwardedFor: 'X-Forwarded-For', + xForwardedProto: 'X-Forwarded-Proto', + trueClientIp: 'True-Client-IP', + cfIpCountry: 'CF-IPCountry', + cfVisitor: 'CF-Visitor', + cdnLoop: 'CDN-Loop', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/nginx.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/nginx.js new file mode 100644 index 00000000..b1adea7d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/nginx.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + nginxConfigDirectory: `Директория конфигурации ${common.nginx}`, + mb: 'MB', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/performance.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/performance.js new file mode 100644 index 00000000..95f8c7e3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/performance.js @@ -0,0 +1,44 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + disableHtmlCaching: 'Disable HTML caching', // TODO: translate + enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate + gzipCompression: 'Gzip сжатие', + enableGzipCompression: `${common.enable} gzip сжатие`, + brotliCompression: 'Brotli сжатие', + enableBrotliCompression: `${common.enable} brotli сжатие`, + brotliIsANonStandardModule: 'Brotli isn\'t a standard NGINX module, check the ', // TODO: translate + brotliGoogleNgxBrotliProject: 'Google ngx_brotli project', // TODO: translate + brotliForBuildingNginxWithBrotli: ' for how to build NGINX with Brotli!', // TODO: translate + expirationForAssets: 'Истечение срока для ассетов', + expirationForMedia: 'Истечение срока для медиа файлов', + expirationForSvgs: 'Истечение срока для SVG файлов', + expirationForFonts: 'Истечение срока для шрифтов', + performance: 'Производительность', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/python.js new file mode 100644 index 00000000..01e68023 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/python.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonServer: `${common.python} сервер`, + pythonMustBeEnabledOnOneSite: `${common.python} должен быть включен как минимум на одном сайте, чтобы сконфигурировать глобальные настройки ${common.python}.`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/reverse_proxy.js new file mode 100644 index 00000000..e227e2c0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/reverse_proxy.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const legacyXForwarded = 'Legacy X-Forwarded-* headers'; // TODO: translate + +export default { + reverseProxyMustBeEnabledOnOneSite: `${common.reverseProxy} должен быть включен как минимум на одном сайте, чтобы сконфигурировать глобальные настройки ${common.reverseProxyLower}.`, + seconds: 'секунд', + passOn: `${legacyXForwarded} passed on`, // TODO: translate + remove: `${legacyXForwarded} actively removed`, // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/security.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/security.js new file mode 100644 index 00000000..6ad03dc4 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/security.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `Во время использования ${common.wordPress}, script-src 'self' 'unsafe-inline' 'unsafe-eval'; часто требуется в Content Security Policy, чтобы панель администратора работала исправно.`, + security: 'Безопасность', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/tools.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/tools.js new file mode 100644 index 00000000..32a58b7c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/global_sections/tools.js @@ -0,0 +1,53 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + modularizedStructure: 'Модульная структура', + enableModularizedConfigFiles: `${common.enable} модульную структуру для файлов конфигурации`, + symlinkVhost: 'Symlink vhost', + enableSymLinksFrom: `${common.enable} symlinks из`, + to: 'в', + shareConfiguration: 'Поделиться конфигурацией', + resetConfiguration: 'Сбросить конфигурацию', + resetGlobalConfig: 'Сбросить глобальную конфигурацию', + resetAllDomains: 'Сбросить все домены', + removeAllDomains: 'Удалить все домены', + resetAllDomainsConfig: 'Сбросить конфигурации всех доменов', + resetDomainConfig: 'Сбросить конфигурацию домена', + removeDomain: 'Удалить домен', + yesImSure: 'Да, я уверен', + noCancel: 'Нет, отменить', + tools: 'Инструменты', + resetGlobalConfigBody: 'Вы уверены, что хотите сбросить все параметры конфигурации в разделе глобальной конфигурации?', + resetAllDomainsConfigBody: 'Вы уверены, что хотите сбросить конфигурацию ВСЕХ доменов?', + removeAllDomainsBody: 'Вы действительно хотите удалить ВСЕ конфигурации домена?', + areYouSureYouWantToResetAllConfigurationOptionsForThe: 'Вы действительно хотите сбросить все параметры конфигурации для', + domain: 'домена?', + areYouSureYouWantToRemoveThe: 'Вы уверены, что желаете удалить ', + domainConfiguration: 'конфигурацию домена?', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/index.js new file mode 100644 index 00000000..d9467454 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/index.js @@ -0,0 +1,35 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import app from './app'; +import setup from './setup'; +import footer from './footer'; +import domainSections from './domain_sections'; +import globalSections from './global_sections'; +import setupSections from './setup_sections'; +import callouts from './callouts'; + +export default { app, setup, footer, domainSections, globalSections, setupSections, callouts }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup.js new file mode 100644 index 00000000..ab995942 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + downloadConfig: 'Скачать конфигурацию', + copyBase64: 'Копировать Base64', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/certbot.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/certbot.js new file mode 100644 index 00000000..7f478cec --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/certbot.js @@ -0,0 +1,39 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const certbot = 'Certbot'; + +export default { + commentOutSslDirectivesInConfiguration: `Закомментируйте директивы, связанные с ${common.ssl} в конфигурации:`, + reloadYourNginxServer: `Перезагрузите свой ${common.nginx} сервер:`, + obtainSslCertificatesFromLetsEncrypt: `Получите ${common.ssl} сертификат ${common.letsEncrypt} используя ${certbot}:`, + uncommentSslDirectivesInConfiguration: `Раскомментируйте директивы, связанные с ${common.ssl} в конфигурации:`, + configureCertbotToReloadNginxOnCertificateRenewal: `Настройте ${certbot}, чтобы перезагрузить ${common.nginx}, когда сертификаты успешно обновятся:`, + certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} не нужно настраивать для вашей ${common.nginx} конфигурации.`, + certbot, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/download.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/download.js new file mode 100644 index 00000000..e957a67b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/download.js @@ -0,0 +1,40 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + downloadTheGeneratedConfig: 'Скачать сгенерированную конфигурацию:', + andUploadItToYourServers: 'и загрузить её на Ваш сервер', + directory: 'директория.', + or: 'или, ', + copyBase64StringOfCompressedConfig: 'Скопируйте Base64 c сжатой конфигурацией', + pasteItInYourServersCommandLineAndExecute: ', вставьте это в Вашу командную строку на сервере и запустите.', + navigateToYourNginxConfigurationDirectoryOnYourServer: `Перейдите в папку конфигурации ${common.nginx} на Вашем сервере:`, + createABackupOfYourCurrentNginxConfiguration: `Сделайте резервную копию Вашей нынешней ${common.nginx} конфигурации:`, + extractTheNewCompressedConfigurationArchiveUsingTar: 'Извлеките архив с новой конфигурацией с помощью использованием tar:', + download: 'Скачать', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/go_live.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/go_live.js new file mode 100644 index 00000000..46b667a5 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/go_live.js @@ -0,0 +1,33 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + letsGoLive: 'Время запуска!', + reloadNginxToLoadInYourNewConfiguration: `Перезагрузите ${common.nginx}, чтобы запустить его с новой конфигурацией:`, + goLive: 'Запустить!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/index.js new file mode 100644 index 00000000..378a5cf3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/index.js @@ -0,0 +1,32 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import certbot from './certbot'; +import download from './download'; +import goLive from './go_live'; +import ssl from './ssl'; + +export default { certbot, download, goLive, ssl }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/ssl.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/ssl.js new file mode 100644 index 00000000..3d39c393 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/ru/templates/setup_sections/ssl.js @@ -0,0 +1,34 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + generateDiffieHellmanKeysByRunningThisCommandOnYourServer: 'Сгенерируйте ключи Диффи-Хеллмана, запустив следующую команду на своем сервере:', + createACommonAcmeChallengeDirectoryForLetsEncrypt: `Создайте директорию хранения ACME-challenge (для ${common.letsEncrypt}):`, + noAdditionalStepsAreNeededToSetUpSslForNginx: `Больше ничего не требуется, чтобы настроить ${common.ssl} в Вашей ${common.nginx} конфигурации.`, + sslInit: `${common.ssl} init`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/setup.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/setup.js new file mode 100644 index 00000000..c0bb8c27 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/setup.js @@ -0,0 +1,89 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import { createI18n } from 'vue-i18n'; +import { defaultPack, defaultPackData, toSep, availablePacks } from '../util/language_packs'; + +// Load in the full default pack +const i18nPacks = {}; +i18nPacks[defaultPack] = defaultPackData; +const loadedI18nPacks = [defaultPack]; + +// Cache the i18n instance +let i18n = null; + +export const getI18n = async () => { + // Use cached if available + if (i18n) return i18n; + + // Load in languages data from other packs + // Use webpack magic to only build chunks for lang/languages.js + // These are eagerly loaded by Webpack, so don't generate extra chunks, and return an already resolved Promise + for (const availablePack of availablePacks) { + if (availablePack === defaultPack) continue; + if (i18nPacks[availablePack]) continue; + const { default: languageData } = await import( + /* webpackInclude: /i18n\/[^/]+\/languages\.js$/ */ + /* webpackMode: "eager" */ + `./${toSep(availablePack, '-')}/languages.js` + ); + i18nPacks[availablePack] = { languages: languageData }; + } + + // Store and return the i18n instance with the loaded packs + i18n = createI18n({ + locale: defaultPack, + fallbackLocale: defaultPack, + messages: i18nPacks, + }); + return i18n; +}; + +const loadLanguagePack = async pack => { + // If same language, do nothing + if (i18n.locale === pack) return; + + // If language already loaded, do nothing + if (loadedI18nPacks.includes(pack)) return; + + // Load in the full pack + // Use webpack magic to only build chunks for lang/index.js + const { default: packData } = await import( + /* webpackInclude: /i18n\/[^/]+\/index\.js$/ */ + /* webpackMode: "lazy" */ + `./${toSep(pack, '-')}/index.js` + ); + i18nPacks[pack] = packData; +}; + +export const setLanguagePack = async pack => { + // If i18n not loaded, do nothing + if (!i18n) return; + + // Load the pack if not already loaded, and set it as active + await loadLanguagePack(pack); + i18n.global.locale = pack; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/verify.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/verify.js new file mode 100644 index 00000000..b5c386ca --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/verify.js @@ -0,0 +1,184 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import { readdirSync, readFileSync } from 'fs'; +import { join, sep } from 'path'; +import { URL } from 'url'; +import chalk from 'chalk'; +import { defaultPack, availablePacks, toSep, fromSep } from '../util/language_packs'; +import snakeToCamel from '../util/snake_to_camel'; + +// Recursively get all keys in a i18n pack object fragment +const explore = packFragment => { + const foundKeys = new Set(); + + for (const [key, value] of Object.entries(packFragment)) { + // If this is an actual translation, store the key + if (typeof value === 'string') { + foundKeys.add(key); + continue; + } + + // Otherwise, assume this is another fragment and explore it recursively + explore(packFragment[key]).forEach(exploreKey => foundKeys.add(`${key}.${exploreKey}`)); + } + + return foundKeys; +}; + +// Recursively get all the files in a i18n pack directory +const files = directory => { + const foundFiles = new Set(); + + for (const dirent of readdirSync(new URL(`./${directory}`, import.meta.url), { withFileTypes: true })) { + const base = join(directory, dirent.name); + + // If this is a file, store it + if (dirent.isFile()) { + foundFiles.add(base); + continue; + } + + // If this is a directory, recurse + if (dirent.isDirectory()) { + files(base).forEach(recurseFile => foundFiles.add(recurseFile)); + } + + // Otherwise, ignore this + } + + return foundFiles; +}; + +// Get all the todo items in a file +const todos = file => { + const content = readFileSync(new URL(`./${file}`, import.meta.url), 'utf8'); + const lines = content.split('\n'); + const items = []; + + for (let i = 0; i < lines.length; i++) { + const line = lines[i]; + const match = line.match(/\/\/\s*todo([([].*?[)\]])?\s*:?\s*(.*)/i); + if (match) items.push([i + 1, line, match[0], match[1], match[2]]); + } + + return items; +}; + +// Convert a pack file to a pack object key +const fileToObject = file => file + // Drop language pack prefix + .split(sep).slice(1).join(sep) + // Drop js extension + .split('.').slice(0, -1).join('.') + // Replace sep with period and use camelCase + .split(sep).map(dir => snakeToCamel(dir)).join('.'); + +const main = async () => { + // Load all the packs in + const packs = {}; + const packDirectories = readdirSync(new URL('./', import.meta.url), { withFileTypes: true }) + .filter(dirent => dirent.isDirectory()) + .map(dirent => dirent.name); + for (const packDirectory of packDirectories) + packs[fromSep(packDirectory, '-')] = await import(`./${packDirectory}/index.js`).then(pack => pack.default); + + // Get all the keys for the default "source" language pack + const defaultKeys = explore(packs[defaultPack]); + + // Track if we need to exit with an error + let hadError = false; + + // Work through all the packs and compare to default + for (const [pack, packData] of Object.entries(packs)) { + console.log(chalk.underline(`Language pack \`${pack}\``)); + + // Get the base data + const packKeys = explore(packData); + const packFiles = files(toSep(pack, '-')); + console.log(` Found ${packKeys.size.toLocaleString()} keys, ${packFiles.size.toLocaleString()} files`); + + // Track all our errors and warnings + const errors = [], warnings = []; + + // Get all the keys and the set differences + const missingKeys = [...defaultKeys].filter(x => !packKeys.has(x)); + const extraKeys = [...packKeys].filter(x => !defaultKeys.has(x)); + + // Missing keys and extra keys are errors + missingKeys.forEach(key => errors.push(`Missing key \`${key}\``)); + extraKeys.forEach(key => errors.push(`Unexpected key \`${key}\``)); + + // Get all the files in the pack directory + const packKeyFiles = new Set([...packFiles].filter(file => file.split(sep).slice(-1)[0] !== 'index.js')); + + // Get the objects from the pack keys + const packKeyObjects = new Set([...packKeys] + .map(key => key.split('.').slice(0, -1).join('.'))); + + // Warn for any files that aren't used as pack objects + [...packKeyFiles].filter(file => !packKeyObjects.has(fileToObject(file))) + .forEach(file => warnings.push(`Unused file \`${file}\``)); + + // Locate any todos in each file as a warning + for (const file of packFiles) + todos(file).forEach(todo => warnings.push(`TODO in \`${file}\` on line ${todo[0]}`)); + + // Output the pack results + if (warnings.length) + for (const warning of warnings) + console.warn(` ${chalk.yellow('warning')} ${warning}`); + if (errors.length) + for (const error of errors) + console.error(` ${chalk.red('error')} ${error}`); + if (!errors.length && !warnings.length) + console.log(` ${chalk.green('No issues')}`); + + // If we had errors, script should exit 1 + if (errors.length) hadError = true; + + // Linebreak before next pack or exit + console.log(chalk.reset()); + } + + // Check available language packs + const packKeys = Object.keys(packs); + const missingPacks = packKeys.filter(x => !availablePacks.includes(x)); + const extraPacks = availablePacks.filter(x => !packKeys.includes(x)); + + // Missing packs and extra packs are errors + missingPacks.forEach(pack => console.error(`${chalk.red('error')} Language pack \`${pack}\` not included in \`availablePacks\``)); + extraPacks.forEach(pack => console.error(`${chalk.red('error')} Language pack \`${pack}\` included in \`availablePacks\` but not found`)); + if (missingPacks.length || extraPacks.length) hadError = true; + + // Exit 1 if we had errors + if (hadError) process.exit(1); +}; + +main().then(() => {}).catch(err => { + console.error(err); + process.exit(1); +}); diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/common.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/common.js new file mode 100644 index 00000000..579b395a --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/common.js @@ -0,0 +1,48 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + back: '返回', + next: '下一个', + enable: '启用', + php: 'PHP', + ssl: 'SSL', + nginx: 'NGINX', + http: 'HTTP', + https: 'HTTPS', + letsEncrypt: 'Let\'s Encrypt', + python: 'Python', + wordPress: 'WordPress', + drupal: 'Drupal', + magento: 'Magento', + joomla: 'Joomla', + django: 'Django', + logging: '日志记录', + reverseProxy: '反向代理', + reverseProxyLower: '反向代理', + restrict: '限制', + path: '路径', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/index.js new file mode 100644 index 00000000..01c3f3e9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/index.js @@ -0,0 +1,31 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from './common'; +import languages from './languages'; +import templates from './templates'; + +export default { common, languages, templates }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/languages.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/languages.js new file mode 100644 index 00000000..6c9a5fec --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/languages.js @@ -0,0 +1,38 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + en: '英语', + es: '西班牙语', + zhCN: '简体中文', + zhTW: '繁体中文', + ptBR: '葡萄牙语 (巴西)', + fr: '法语', + ru: '俄语', + pl: '波兰语', + de: '德语', + ja: '日语', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/app.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/app.js new file mode 100644 index 00000000..14b37bcb --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/app.js @@ -0,0 +1,40 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../common'; + +export default { + title: `${common.nginx} 配置`, + description: `配置高性能、安全、稳定的${common.nginx}服务器的最简单方法。`, + singleColumnMode: '垂直模式', + splitColumnMode: '水平模式', + perWebsiteConfig: '站点配置', + addSite: '添加站点', + globalConfig: '全局配置', + setup: '使用配置', + configFiles: '配置文件', + copied: '已复制', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/callouts/contribute.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/callouts/contribute.js new file mode 100644 index 00000000..350f4eca --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/callouts/contribute.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + wantToContributeChanges: '👋 想要申请新的功能,提出修改意见,或将该工具翻译成新的语言?', + getInvolvedOnGitHub: '欢迎在 Github 中参与本项目', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/callouts/droplet.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/callouts/droplet.js new file mode 100644 index 00000000..3fe745fe --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/callouts/droplet.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + lookingForAPlaceToDeploy: '👋 在寻找部署新配置的地方?', + tryOutDigitalOceansDroplet: '试用已安装 NGINX 的 DigitalOcean LEMP Droplet。', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/callouts/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/callouts/index.js new file mode 100644 index 00000000..dd68947b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/callouts/index.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import droplet from './droplet'; +import contribute from './contribute'; + +export default { droplet, contribute }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/https.js new file mode 100644 index 00000000..7f959903 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/https.js @@ -0,0 +1,48 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableEncryptedSslConnection: `${common.enable}加密的${common.ssl}连接`, + http2: `${common.http}/2`, + enableHttp2Connections: `${common.enable} ${common.http}/2 连接`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.enable} ${common.http}/3 连接`, + forceHttps: `强制 ${common.https}`, + hsts: 'HSTS', + enableStrictTransportSecurity: `${common.enable}HSTS(强制客户端、浏览器等使用 HTTPS 与服务器创建链接),需要HTTPS连接`, + enableIncludeSubDomains: `${common.enable}includeSubDomains指令,HSTS对所有子域生效`, + enablePreload: `${common.enable}preload指令, 强制客户端只可以使用https连接`, + certificationType: '证书类型', + customCertificate: '本地证书', + letsEncryptEmail: `${common.letsEncrypt} 邮箱`, + http3IsANonStandardModule: 'HTTP/3 并不是一个标准的 NGINX 模块, 请查看 ', + http3NginxQuicReadme: 'NGINX QUIC 使用文档', + http3OrThe: ' 或者 ', + http3CloudflareQuicheProject: 'Cloudflare quiche 项目', + http3ForBuildingNginxWithHttp3: ' 以构建支持 HTTP/3 的 NGINX!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/index.js new file mode 100644 index 00000000..5b2b8177 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/index.js @@ -0,0 +1,38 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import php from './php'; +import presets from './presets'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import routing from './routing'; +import server from './server'; +import restrict from './restrict'; +import onion from './onion'; + +export default { https, logging, php, presets, python, reverseProxy, routing, server, restrict, onion }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/logging.js new file mode 100644 index 00000000..1e69b697 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/logging.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + byDomain: '在此站点', + enableForThisDomain: `为此站点${common.enable}`, + arguments: 'arguments', // TODO: translate + level: 'logging level', // TODO: translate + forRedirects: 'for redirects', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/onion.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/onion.js new file mode 100644 index 00000000..ec48c22d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/onion.js @@ -0,0 +1,36 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +const onion = '洋葱'; + +export default { + onion, + onionLocation: `${onion}位置`, + provideAnOnionLocationToSetOnionLocationHeader: '提供一个洋葱位置地址,为您的站点设置洋葱协议头。', + letsVisitorsKnownOnionServicesIsAvailable: '这可以让访问者知道你的网站的洋葱服务版本可用于Tor浏览器。', + learnMoreAboutOnionServices: '了解有关洋葱服务的更多信息', + onionLocationExpectedToEndWithOnion: '洋葱位置地址通常以.onion结尾。', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/php.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/php.js new file mode 100644 index 00000000..72ab7973 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/php.js @@ -0,0 +1,57 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + phpIsDisabled: `${common.php}已禁用。`, + phpCannotBeEnabledWithReverseProxy: `${common.php}在启用${common.reverseProxy}时无法启用。`, + phpCannotBeEnabledWithPython: `${common.php} 在启用${common.python}时无法启用。`, + enablePhp: `${common.enable} ${common.php}`, + wordPressRules: `${common.wordPress} 规则`, + enableWordPressRules: `${common.enable} ${common.wordPress}专属规则`, + drupalRules: `${common.drupal} 规则`, + enableDrupalRules: `${common.enable} ${common.drupal}专属规则`, + magentoRules: `${common.magento} 规则`, + enableMagentoRules: `${common.enable} ${common.magento}专属规则`, + joomlaRules: `${common.joomla} 规则`, + enableJoomlaRules: `${common.enable} ${common.joomla}专属规则`, + phpServer: `${common.php} 服务`, + phpBackupServer: `${common.php}备份服务器`, + tcp: 'TCP', + hhvmSocket: 'HHVM socket', + php70Socket: '7.0 socket', + php71Socket: '7.1 socket', + php72Socket: '7.2 socket', + php73Socket: '7.3 socket', + php74Socket: '7.4 socket', + php80Socket: '8.0 socket', + php81Socket: '8.1 socket', + php82Socket: '8.2 socket', + phpSocket: 'PHP socket', + custom: '自定义', + disabled: '禁用', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/presets.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/presets.js new file mode 100644 index 00000000..312e7be5 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/presets.js @@ -0,0 +1,33 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + presets: '预设', + itLooksLikeYouCustomisedTheConfig: '看起来您已经为这个站点定制了配置。选择新的预设可能会重置或更改一些您已经定制的设置。', + frontend: '前端', + nodeJs: 'Node.js', + singlePageApplication: '单页面应用', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/python.js new file mode 100644 index 00000000..5a0867f9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/python.js @@ -0,0 +1,36 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonIsDisabled: `${common.python}已禁用。`, + pythonCannotBeEnabledWithReverseProxy: `${common.python}在启用${common.reverseProxy}时无法启用。`, + pythonCannotBeEnabledWithPhp: `${common.python}在启用${common.php}时无法启用。`, + enablePython: `${common.enable} ${common.python}`, + djangoRules: `${common.django} 规则`, + enableDjangoRules: `${common.enable} ${common.django}专属规则`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/restrict.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/restrict.js new file mode 100644 index 00000000..907f5db1 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/restrict.js @@ -0,0 +1,30 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + disableForThisDomain: '在此站点上禁用', + responseCode: '响应代码', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/reverse_proxy.js new file mode 100644 index 00000000..f5c161fd --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/reverse_proxy.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + reverseProxyIsDisabled: `${common.reverseProxy}已禁用。`, + reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy}在启用${common.php}时无法启用。`, + reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy}在启用${common.python}时无法启用。`, + enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`, + proxyHostHeader: 'Proxy Host header', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/routing.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/routing.js new file mode 100644 index 00000000..026926cb --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/routing.js @@ -0,0 +1,35 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + fallbackRouting: '后备路由', + fallbackRoutingPhpPath: `后备路由${common.php}路径`, + legacyPhpRouting: `传统${common.php}路由`, + enableLegacyRouting: `${common.enable}传统路由`, + routing: '路由设置', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/server.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/server.js new file mode 100644 index 00000000..e275e498 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/domain_sections/server.js @@ -0,0 +1,37 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + domain: '站点', + documentRoot: '运行目录', + oneOrMoreOtherDomainsAreAlsoNamed: '发现了重复的域名', + thisWillCauseIssuesWithConfigGeneration: '这将导致生成配置出现问题。', + wwwSubdomain: 'www 子域名', + cdnSubdomain: 'CDN 子域名', + redirectSubdomains: '子域名重定向', + server: '服务', + listen: '监听', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/footer.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/footer.js new file mode 100644 index 00000000..d6a8b943 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/footer.js @@ -0,0 +1,39 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + backToTop: '返回顶部', + thisToolIs: '这个工具', + openSourceOnGitHub: '开源在GitHub上', + underThe: '是', + mit: 'MIT', + license: '许可!', + weWelcomeFeedbackAndContributions: '我们欢迎您提供反馈和意见。', + originallyCreatedBy: '最初创建者', + balintSzekeres: 'Bálint Szekeres', + maintainedBy: '维护者', + digitalOcean: 'DigitalOcean', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/docker.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/docker.js new file mode 100644 index 00000000..fafa6606 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/docker.js @@ -0,0 +1,41 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const docker = 'Docker'; +const dockerfile = 'Dockerfile'; + +export default { + docker, + dockerfile, + dockerCompose: `${docker} 编排服务`, + applyDockerTweaks: `应用${docker}调整`, + applyDockerTweaksForNginx: `为使用${docker}运行${common.nginx}进行配置调整。`, + applyDockerTweaksExplainer: `将${common.nginx}用户更新为nginx,将pid更新为/var/run/nginx.pid`, + includeDockerfile: `生成${dockerfile}运行${common.nginx}与${docker}`, + includeDockerCompose: `生成docker-compose.yaml来运行${common.nginx} docker-compose`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/https.js new file mode 100644 index 00000000..c5592369 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/https.js @@ -0,0 +1,52 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const mozilla = 'Mozilla'; +const ipv4 = 'IPv4'; +const ipv6 = 'IPv6'; + +export default { + sslProfile: `${common.ssl}配置`, + httpsMustBeEnabledOnOneSite: `必须在至少一个站点上启用${common.https}才能配置全局${common.https}设置。`, + portReuse: '端口重用', + enableReuseOfPort: `${common.enable} 重用端口 为每个 NGINX Worker 单独生成一个监听套接字`, + ocspDnsResolvers: 'OCSP DNS解析器', + cloudflareResolver: 'Cloudflare解析器', + googlePublicDns: '谷歌公共DNS', + openDns: 'OpenDNS', + quad9: 'Quad9', + verisign: 'Verisign', + letsEncryptWebroot: `${common.letsEncrypt} Web根目录`, + letsEncryptCertRoot: `${common.letsEncrypt}证书目录`, + mozillaModern: `${mozilla} Modern`, + mozillaIntermediate: `${mozilla} Intermediate`, + mozillaOld: `${mozilla} Old`, + ipv4Only: `${ipv4}`, + ipv6Only: `${ipv6}`, + ipv4AndIpv6: `${ipv4} & ${ipv6}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/index.js new file mode 100644 index 00000000..35eba1d9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/index.js @@ -0,0 +1,37 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import nginx from './nginx'; +import performance from './performance'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import security from './security'; +import tools from './tools'; +import docker from './docker'; + +export default { https, logging, nginx, performance, python, reverseProxy, security, tools, docker }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/logging.js new file mode 100644 index 00000000..019dea7b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/logging.js @@ -0,0 +1,42 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableFileNotFoundErrorLogging: `${common.enable}“文件未找到”错误日志:`, + logformat: 'log_format', + level: 'logging level', // TODO: translate + enableCloudflare: '将Cloudflare请求头部添加到默认日志格式', + cfRay: 'CF-Ray', + cfConnectingIp: 'CF-Connecting-IP', + xForwardedFor: 'X-Forwarded-For', + xForwardedProto: 'X-Forwarded-Proto', + trueClientIp: 'True-Client-IP', + cfIpCountry: 'CF-IPCountry', + cfVisitor: 'CF-Visitor', + cdnLoop: 'CDN-Loop', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/nginx.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/nginx.js new file mode 100644 index 00000000..8f59cdc4 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/nginx.js @@ -0,0 +1,32 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + nginxConfigDirectory: `${common.nginx}配置目录`, + mb: 'MB', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/performance.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/performance.js new file mode 100644 index 00000000..5b493ae9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/performance.js @@ -0,0 +1,44 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + disableHtmlCaching: '禁用 HTML 缓存', + enableDisableHtmlCaching: '禁用 HTML 缓存', + gzipCompression: 'Gzip 压缩', + enableGzipCompression: `${common.enable} Gzip 压缩`, + brotliCompression: 'Brotli 压缩', + enableBrotliCompression: `${common.enable} Brotli 压缩`, + brotliIsANonStandardModule: 'Brotli 并不是一个 standard NGINX 模块, 请查看 ', + brotliGoogleNgxBrotliProject: 'Google ngx_brotli 项目', + brotliForBuildingNginxWithBrotli: ' 以构建支持 Brotli 的 NGINX!', + expirationForAssets: '资源有效期', + expirationForMedia: '媒体资源有效期', + expirationForSvgs: 'SVGs有效期', + expirationForFonts: '字体有效期', + performance: '性能', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/python.js new file mode 100644 index 00000000..01ec9fa1 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/python.js @@ -0,0 +1,32 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonServer: `${common.python} 服务`, + pythonMustBeEnabledOnOneSite: `必须在至少一个站点上启用${common.python}才能配置全局${common.python}设置。`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/reverse_proxy.js new file mode 100644 index 00000000..23491c09 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/reverse_proxy.js @@ -0,0 +1,36 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const legacyXForwarded = '传统 X-Forwarded-* 请求头'; + +export default { + reverseProxyMustBeEnabledOnOneSite: `必须在至少一个站点上启用${common.reverseProxy}才能配置全局${common.reverseProxy}设置。`, + seconds: '秒', + passOn: `转发 ${legacyXForwarded}`, + remove: `自动删除 ${legacyXForwarded}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/security.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/security.js new file mode 100644 index 00000000..4b2844d7 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/security.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `当使用${common.wordPress}时,script-src 'self' 'unsafe-inline' 'unsafe-eval'; 通常需要置于内容安全策略中,以确保管理面板的正常运行。`, + security: '安全', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/tools.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/tools.js new file mode 100644 index 00000000..9ffee0e7 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/global_sections/tools.js @@ -0,0 +1,53 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + modularizedStructure: '模块化结构', + enableModularizedConfigFiles: `${common.enable}模块化的配置文件`, + symlinkVhost: '符号链接 vhost', + enableSymLinksFrom: `${common.enable}符号链接`, + to: '到', + shareConfiguration: '分享配置', + resetConfiguration: '重置配置', + resetGlobalConfig: '重置全局配置', + resetAllDomains: '重置所有站点', + resetAllDomainsConfig: '重置所有站点', + removeAllDomains: '删除所有站点', + resetDomainConfig: '重置站点配置', + removeDomain: '删除站点', + yesImSure: '好的', + noCancel: '取消', + tools: '工具', + resetGlobalConfigBody: '您确定要重置全局配置部分中的所有配置选项吗?', + resetAllDomainsConfigBody: '您确定要重置所有站点的配置吗?', + removeAllDomainsBody: '您确定要删除所有站点的配置吗?', + areYouSureYouWantToResetAllConfigurationOptionsForThe: '您确定要重置', + domain: '站点的所有配置选项吗?', + areYouSureYouWantToRemoveThe: '你确定要删除', + domainConfiguration: '的站点配置吗?', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/index.js new file mode 100644 index 00000000..d9467454 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/index.js @@ -0,0 +1,35 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import app from './app'; +import setup from './setup'; +import footer from './footer'; +import domainSections from './domain_sections'; +import globalSections from './global_sections'; +import setupSections from './setup_sections'; +import callouts from './callouts'; + +export default { app, setup, footer, domainSections, globalSections, setupSections, callouts }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup.js new file mode 100644 index 00000000..083db1c2 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup.js @@ -0,0 +1,30 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + downloadConfig: '下载配置', + copyBase64: '复制Base64', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/certbot.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/certbot.js new file mode 100644 index 00000000..cdd08410 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/certbot.js @@ -0,0 +1,39 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const certbot = 'Certbot'; + +export default { + commentOutSslDirectivesInConfiguration: `注释掉配置中的${common.ssl}相关指令:`, + reloadYourNginxServer: `重新加载你的${common.nginx}服务器:`, + obtainSslCertificatesFromLetsEncrypt: `使用${certbot}从 ${common.letsEncrypt} 获得${common.ssl}证书:`, + uncommentSslDirectivesInConfiguration: `在配置中取消注释${common.ssl}相关指令:`, + configureCertbotToReloadNginxOnCertificateRenewal: `配置${certbot},当${common.nginx}成功更新证书时重新加载:`, + certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot}不需要为您的${common.nginx}配置进行设置。 `, + certbot, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/download.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/download.js new file mode 100644 index 00000000..4b0d61ce --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/download.js @@ -0,0 +1,40 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + downloadTheGeneratedConfig: '下载 生成的配置:', + andUploadItToYourServers: '然后 上传 到你的服务器的', + directory: '目录.', + or: '或, ', + copyBase64StringOfCompressedConfig: '复制压缩配置的base64字符串', + pasteItInYourServersCommandLineAndExecute: ',将其粘贴到服务器的命令行并执行。', + navigateToYourNginxConfigurationDirectoryOnYourServer: `进入你的 ${common.nginx}服务器上的配置目录:`, + createABackupOfYourCurrentNginxConfiguration: `创建当前${common.nginx}配置的备份:`, + extractTheNewCompressedConfigurationArchiveUsingTar: '使用tar解压新的压缩配置', + download: '下载', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/go_live.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/go_live.js new file mode 100644 index 00000000..433af617 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/go_live.js @@ -0,0 +1,33 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + letsGoLive: '让我们开始吧!', + reloadNginxToLoadInYourNewConfiguration: `重新加载${common.nginx}以载入新的配置:`, + goLive: '上线!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/index.js new file mode 100644 index 00000000..378a5cf3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/index.js @@ -0,0 +1,32 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import certbot from './certbot'; +import download from './download'; +import goLive from './go_live'; +import ssl from './ssl'; + +export default { certbot, download, goLive, ssl }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/ssl.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/ssl.js new file mode 100644 index 00000000..8cc059ed --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-cn/templates/setup_sections/ssl.js @@ -0,0 +1,34 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + generateDiffieHellmanKeysByRunningThisCommandOnYourServer: '在您的服务器上运行此命令生成Diffie-Hellman keys:', + createACommonAcmeChallengeDirectoryForLetsEncrypt: `创建一个通用的ACME-challenge目录(用于 ${common.letsEncrypt}):`, + noAdditionalStepsAreNeededToSetUpSslForNginx: `无需任何操作,即可为您的${common.nginx}完成${common.ssl}配置`, + sslInit: `${common.ssl} 初始化`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/common.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/common.js new file mode 100644 index 00000000..30228662 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/common.js @@ -0,0 +1,48 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + back: '返回', + next: '下一步', + enable: '啟用', + php: 'PHP', + ssl: 'SSL', + nginx: 'NGINX', + http: 'HTTP', + https: 'HTTPS', + letsEncrypt: 'Let\'s Encrypt', + python: 'Python', + wordPress: 'WordPress', + drupal: 'Drupal', + magento: 'Magento', + joomla: 'Joomla', + django: 'Django', + logging: '日誌', + reverseProxy: '反向 Proxy', + reverseProxyLower: '反向 Proxy', + restrict: '限制', + path: '路徑', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/index.js new file mode 100644 index 00000000..01c3f3e9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/index.js @@ -0,0 +1,31 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from './common'; +import languages from './languages'; +import templates from './templates'; + +export default { common, languages, templates }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/languages.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/languages.js new file mode 100644 index 00000000..9355d98c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/languages.js @@ -0,0 +1,38 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + en: '英語', + es: '西班牙語', + zhCN: '簡體中文', + zhTW: '繁體中文', + ptBR: '葡萄牙語(巴西)', + fr: '法語', + ru: '俄語', + pl: '波蘭語', + de: '德語', + ja: '日語', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/app.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/app.js new file mode 100644 index 00000000..dc1c1c66 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/app.js @@ -0,0 +1,40 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../common'; + +export default { + title: `${common.nginx}Config`, + description: `設定高效能、安全、穩定的 ${common.nginx} 伺服器最簡單的方法。`, + singleColumnMode: '單欄模式', + splitColumnMode: '雙欄模式', + perWebsiteConfig: '網站設定', + addSite: '新增網站', + globalConfig: '全域設定', + setup: '使用設定', + configFiles: '設定檔', + copied: '已複製', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/callouts/contribute.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/callouts/contribute.js new file mode 100644 index 00000000..67f4d518 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/callouts/contribute.js @@ -0,0 +1,30 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + wantToContributeChanges: '👋 想要請求新功能,貢獻更動,或將本工具翻譯成新的語言嗎?', + getInvolvedOnGitHub: '在 GitHub 上共襄盛舉', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/callouts/droplet.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/callouts/droplet.js new file mode 100644 index 00000000..68150963 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/callouts/droplet.js @@ -0,0 +1,30 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + lookingForAPlaceToDeploy: '👋 在尋找部署新設定的地方?', + tryOutDigitalOceansDroplet: '試試 DigitalOcean 推出的 LEMP Droplet,適用於 NGINX。', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/callouts/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/callouts/index.js new file mode 100644 index 00000000..dd68947b --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/callouts/index.js @@ -0,0 +1,30 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import droplet from './droplet'; +import contribute from './contribute'; + +export default { droplet, contribute }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/https.js new file mode 100644 index 00000000..0f12e94f --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/https.js @@ -0,0 +1,48 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableEncryptedSslConnection: `${common.enable}加密的 ${common.ssl} 連線`, + http2: `${common.http}/2`, + enableHttp2Connections: `${common.enable} ${common.http}/2 連線`, + http3: `${common.http}/3`, + enableHttp3Connections: `${common.enable} ${common.http}/3 連線`, + forceHttps: `強制使用 ${common.https}`, + hsts: 'HSTS', + enableStrictTransportSecurity: `${common.enable} HSTS(強制安全傳輸),需要 HTTPS 連線`, + enableIncludeSubDomains: `${common.enable} includeSubDomains 指令,所有子網域須啟用 HTTPS 連線`, + enablePreload: `${common.enable} preload 指令,強制瀏覽器使用 HTTPS 連線`, + certificationType: '憑證類型', + customCertificate: '自訂憑證', + letsEncryptEmail: `${common.letsEncrypt} 電子郵件地址`, + http3IsANonStandardModule: 'HTTP/3 並不是標準的 NGINX 模組,請查閱 ', + http3NginxQuicReadme: 'NGINX QUIC 說明', + http3OrThe: ' 或者 ', + http3CloudflareQuicheProject: 'Cloudflare quiche 專案', + http3ForBuildingNginxWithHttp3: '以了解如何建置支援 HTTP/3 的 NGINX !', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/index.js new file mode 100644 index 00000000..5b2b8177 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/index.js @@ -0,0 +1,38 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import php from './php'; +import presets from './presets'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import routing from './routing'; +import server from './server'; +import restrict from './restrict'; +import onion from './onion'; + +export default { https, logging, php, presets, python, reverseProxy, routing, server, restrict, onion }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/logging.js new file mode 100644 index 00000000..a5260b85 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/logging.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + byDomain: '在此網域', + enableForThisDomain: `為此網域${common.enable}`, + arguments: 'arguments', // TODO: translate + level: 'logging level', // TODO: translate + forRedirects: 'for redirects', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/onion.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/onion.js new file mode 100644 index 00000000..ad1a9251 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/onion.js @@ -0,0 +1,36 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +const onion = '洋蔥'; + +export default { + onion, + onionLocation: `${onion}位置`, + provideAnOnionLocationToSetOnionLocationHeader: '提供一個洋蔥位址,來為您的網站設定 Onion-Location 標頭。', + letsVisitorsKnownOnionServicesIsAvailable: '這可以讓訪客知道您的網站有可用於 Tor 瀏覽器的洋蔥服務版本。', + learnMoreAboutOnionServices: '瞭解有關洋蔥服務的更多資訊', + onionLocationExpectedToEndWithOnion: '洋蔥位址通常以 .onion 結尾。', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/php.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/php.js new file mode 100644 index 00000000..edb9c897 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/php.js @@ -0,0 +1,57 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + phpIsDisabled: `${common.php} 已停用。`, + phpCannotBeEnabledWithReverseProxy: `${common.php} 無法與${common.reverseProxy} 同時啟用。`, + phpCannotBeEnabledWithPython: `${common.php} 無法與 ${common.python} 同時啟用。`, + enablePhp: `${common.enable} ${common.php}`, + wordPressRules: `${common.wordPress} 規則`, + enableWordPressRules: `${common.enable} ${common.wordPress} 專屬規則`, + drupalRules: `${common.drupal} 規則`, + enableDrupalRules: `${common.enable} ${common.drupal} 專屬規則`, + magentoRules: `${common.magento} 規則`, + enableMagentoRules: `${common.enable} ${common.magento} 專屬規則`, + joomlaRules: `${common.joomla} 規則`, + enableJoomlaRules: `${common.enable} ${common.joomla} 專屬規則`, + phpServer: `${common.php} 伺服器`, + phpBackupServer: `${common.php} 備份伺服器`, + tcp: 'TCP', + hhvmSocket: 'HHVM 通訊端', + php70Socket: '7.0 通訊端', + php71Socket: '7.1 通訊端', + php72Socket: '7.2 通訊端', + php73Socket: '7.3 通訊端', + php74Socket: '7.4 通訊端', + php80Socket: '8.0 通訊端', + php81Socket: '8.1 通訊端', + php82Socket: '8.2 通訊端', + phpSocket: 'PHP 通訊端', + custom: '自訂', + disabled: '停用', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/presets.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/presets.js new file mode 100644 index 00000000..b664efa1 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/presets.js @@ -0,0 +1,33 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + presets: '預設', + itLooksLikeYouCustomisedTheConfig: '您似乎調整過此網域的設定。選擇新的預設可能會重置或更改一些您自訂的設定。', + frontend: '前端', + nodeJs: 'Node.js', + singlePageApplication: 'SPA', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/python.js new file mode 100644 index 00000000..ce0c3197 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/python.js @@ -0,0 +1,36 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonIsDisabled: `${common.python} 已停用。`, + pythonCannotBeEnabledWithReverseProxy: `${common.python} 無法與${common.reverseProxy} 同時啟用。`, + pythonCannotBeEnabledWithPhp: `${common.python} 無法與 ${common.php} 同時啟用。`, + enablePython: `${common.enable} ${common.python}`, + djangoRules: `${common.django} 規則`, + enableDjangoRules: `${common.enable} ${common.django} 專屬規則`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/restrict.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/restrict.js new file mode 100644 index 00000000..80f0e54e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/restrict.js @@ -0,0 +1,30 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + disableForThisDomain: '在此網站上停用', + responseCode: '響應程式碼', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/reverse_proxy.js new file mode 100644 index 00000000..14adbf08 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/reverse_proxy.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + reverseProxyIsDisabled: `${common.reverseProxy} 已停用。`, + reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} 在啟用 ${common.php} 時無法啟用。`, + reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} 在啟用 ${common.python} 時無法啟用。`, + enableReverseProxy: `${common.enable}${common.reverseProxyLower}`, + proxyHostHeader: 'Proxy Host header', // TODO: translate +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/routing.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/routing.js new file mode 100644 index 00000000..3e9fa748 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/routing.js @@ -0,0 +1,35 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + fallbackRouting: '後援路由', + fallbackRoutingPhpPath: `後援路由 ${common.php} 路徑`, + legacyPhpRouting: `傳統 ${common.php} 路由`, + enableLegacyRouting: `${common.enable}傳統路由`, + routing: '路由設定', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/server.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/server.js new file mode 100644 index 00000000..ae32eec5 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/domain_sections/server.js @@ -0,0 +1,37 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + domain: '網域', + documentRoot: '檔案根目錄', + oneOrMoreOtherDomainsAreAlsoNamed: '發現了重複的網域', + thisWillCauseIssuesWithConfigGeneration: '產生設定時將發生錯誤。', + wwwSubdomain: 'www 子網域', + cdnSubdomain: 'CDN 子網域', + redirectSubdomains: '重新導向子網域', + server: '服務', + listen: '監聽', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/footer.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/footer.js new file mode 100644 index 00000000..4efcaf9e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/footer.js @@ -0,0 +1,39 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + backToTop: '返回頁首', + thisToolIs: '本工具', + openSourceOnGitHub: '於 GitHub 上開源', + underThe: '並採用', + mit: 'MIT', + license: '授權條款!', + weWelcomeFeedbackAndContributions: '我們歡迎您提供回饋和貢獻。', + originallyCreatedBy: '初始作者', + balintSzekeres: 'Bálint Szekeres', + maintainedBy: '維護者', + digitalOcean: 'DigitalOcean', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/docker.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/docker.js new file mode 100644 index 00000000..c41c9a25 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/docker.js @@ -0,0 +1,41 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const docker = 'Docker'; +const dockerfile = 'Dockerfile'; + +export default { + docker, + dockerfile, + dockerCompose: `${docker} Compose`, + applyDockerTweaks: `套用 ${docker} 調校`, + applyDockerTweaksForNginx: `套用在 ${docker} 中執行 ${common.nginx} 所需的設定調校`, + applyDockerTweaksExplainer: `將 ${common.nginx} 使用者設為 nginx,將 pid 設為/var/run/nginx.pid`, + includeDockerfile: `產生 ${dockerfile} 以使用 ${docker} 來執行 ${common.nginx}`, + includeDockerCompose: `產生 docker-compose 以使用 docker-compose 來執行 ${common.nginx}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/https.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/https.js new file mode 100644 index 00000000..fa4a043f --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/https.js @@ -0,0 +1,52 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const mozilla = 'Mozilla'; +const ipv4 = 'IPv4'; +const ipv6 = 'IPv6'; + +export default { + sslProfile: `${common.ssl} 設定檔`, + httpsMustBeEnabledOnOneSite: `必須在至少一個網站上啟用 ${common.https} 才能調整全域 ${common.https} 設定。`, + portReuse: '連接埠複用', + enableReuseOfPort: `${common.enable}連接埠複用來為每個 worker 產生監聽通訊端`, + ocspDnsResolvers: 'OCSP DNS 解析器', + cloudflareResolver: 'Cloudflare 解析器', + googlePublicDns: 'Google 公共 DNS', + openDns: 'OpenDNS', + quad9: 'Quad9', + verisign: 'Verisign', + letsEncryptWebroot: `${common.letsEncrypt} Web 根目錄`, + letsEncryptCertRoot: `${common.letsEncrypt} 憑證目錄`, + mozillaModern: `${mozilla} Modern`, + mozillaIntermediate: `${mozilla} Intermediate`, + mozillaOld: `${mozilla} Old`, + ipv4Only: `僅 ${ipv4}`, + ipv6Only: `僅 ${ipv6}`, + ipv4AndIpv6: `${ipv4} & ${ipv6}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/index.js new file mode 100644 index 00000000..7653a47e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/index.js @@ -0,0 +1,37 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import https from './https'; +import logging from './logging'; +import nginx from './nginx'; +import performance from './performance'; +import python from './python'; +import reverseProxy from './reverse_proxy'; +import security from './security'; +import tools from './tools'; +import docker from './docker'; + +export default { https, logging, nginx, performance, python, reverseProxy, security, tools, docker }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/logging.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/logging.js new file mode 100644 index 00000000..bb4c064c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/logging.js @@ -0,0 +1,42 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + enableFileNotFoundErrorLogging: `${common.enable}「找不到檔案」錯誤日誌:`, + logformat: 'log_format', + level: 'logging level', // TODO: translate + enableCloudflare: '將 Cloudflare 請求標頭加入預設日誌格式', + cfRay: 'CF-Ray', + cfConnectingIp: 'CF-Connecting-IP', + xForwardedFor: 'X-Forwarded-For', + xForwardedProto: 'X-Forwarded-Proto', + trueClientIp: 'True-Client-IP', + cfIpCountry: 'CF-IPCountry', + cfVisitor: 'CF-Visitor', + cdnLoop: 'CDN-Loop', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/nginx.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/nginx.js new file mode 100644 index 00000000..d21e4cb7 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/nginx.js @@ -0,0 +1,32 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + nginxConfigDirectory: `${common.nginx} 設定目錄`, + mb: 'MB', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/performance.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/performance.js new file mode 100644 index 00000000..0db7ae7d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/performance.js @@ -0,0 +1,44 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + disableHtmlCaching: 'Disable HTML caching', // TODO: translate + enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate + gzipCompression: 'Gzip 壓縮', + enableGzipCompression: `${common.enable} Gzip 壓縮`, + brotliCompression: 'Brotli 壓縮', + enableBrotliCompression: `${common.enable} brotli 壓縮`, + brotliIsANonStandardModule: 'Brotli 不是標準的 NGINX 模組,請參考 ', + brotliGoogleNgxBrotliProject: 'Google 的 ngx_brotli 專案', + brotliForBuildingNginxWithBrotli: ' 來了解如何建置支援 Brotli 的 NGINX!', + expirationForAssets: '資源有效期', + expirationForMedia: '媒體資源有效期', + expirationForSvgs: 'SVG 有效期', + expirationForFonts: '字體有效期', + performance: '效能', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/python.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/python.js new file mode 100644 index 00000000..8c683f54 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/python.js @@ -0,0 +1,32 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + pythonServer: `${common.python} 服務`, + pythonMustBeEnabledOnOneSite: `必須在至少一個網站上啟用 ${common.python} 才能調整全域 ${common.python} 設定。`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/reverse_proxy.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/reverse_proxy.js new file mode 100644 index 00000000..ed49c8d0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/reverse_proxy.js @@ -0,0 +1,36 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const legacyXForwarded = '傳統 X-Forwarded-* 標頭'; + +export default { + reverseProxyMustBeEnabledOnOneSite: `必須在至少一個網站上啟用${common.reverseProxy} 才能調整全域${common.reverseProxy} 設定。`, + seconds: '秒', + passOn: `轉發${legacyXForwarded}`, + remove: `主動刪除${legacyXForwarded}`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/security.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/security.js new file mode 100644 index 00000000..5a1df085 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/security.js @@ -0,0 +1,32 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `使用 ${common.wordPress} 時,通常需在 CSP 中加入 script-src 'self' 'unsafe-inline' 'unsafe-eval';,以使管理面板正常運作。`, + security: '安全性', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/tools.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/tools.js new file mode 100644 index 00000000..e581305f --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/global_sections/tools.js @@ -0,0 +1,53 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + modularizedStructure: '模組化結構', + enableModularizedConfigFiles: `${common.enable}模組化的設定檔案`, + symlinkVhost: '符號連結 vhost', + enableSymLinksFrom: `${common.enable}符號連結`, + to: '到', + shareConfiguration: '分享設定', + resetConfiguration: '重置設定', + resetGlobalConfig: '重置全域設定', + resetAllDomains: '重置所有網域', + removeAllDomains: '移除所有網域', + resetAllDomainsConfig: '重置所有網域', + resetDomainConfig: '重置網域設定', + removeDomain: '移除網域', + yesImSure: '是,我確定', + noCancel: '取消', + tools: '工具', + resetGlobalConfigBody: '您確定要重置全域設定中的所有設定嗎?', + resetAllDomainsConfigBody: '您確定要重置所有網域的設定嗎?', + removeAllDomainsBody: '您確定要移除所有網域的設定嗎?', + areYouSureYouWantToResetAllConfigurationOptionsForThe: '您確定要重置', + domain: '網域的所有設定嗎?', + areYouSureYouWantToRemoveThe: '您確定要移除', + domainConfiguration: '的網域設定嗎?', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/index.js new file mode 100644 index 00000000..d9467454 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/index.js @@ -0,0 +1,35 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import app from './app'; +import setup from './setup'; +import footer from './footer'; +import domainSections from './domain_sections'; +import globalSections from './global_sections'; +import setupSections from './setup_sections'; +import callouts from './callouts'; + +export default { app, setup, footer, domainSections, globalSections, setupSections, callouts }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup.js new file mode 100644 index 00000000..351693e0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup.js @@ -0,0 +1,30 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default { + downloadConfig: '下載配置', + copyBase64: '複製 Base64', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/certbot.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/certbot.js new file mode 100644 index 00000000..8e62d32e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/certbot.js @@ -0,0 +1,39 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +const certbot = 'Certbot'; + +export default { + commentOutSslDirectivesInConfiguration: `註解掉設定中的 ${common.ssl} 相關指令:`, + reloadYourNginxServer: `重新載入您的 ${common.nginx} 伺服器:`, + obtainSslCertificatesFromLetsEncrypt: `使用 ${certbot} 從 ${common.letsEncrypt} 取得 ${common.ssl} 憑證:`, + uncommentSslDirectivesInConfiguration: `在設定中取消註解 ${common.ssl} 相關指令:`, + configureCertbotToReloadNginxOnCertificateRenewal: `設定 ${certbot},當 ${common.nginx} 成功更新憑證時重新載入:`, + certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} 無須設定。`, + certbot, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/download.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/download.js new file mode 100644 index 00000000..e726f8e3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/download.js @@ -0,0 +1,40 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + downloadTheGeneratedConfig: '下載產生的設定:', + andUploadItToYourServers: '然後上傳到您的伺服器的', + directory: '目錄。', + or: '或', + copyBase64StringOfCompressedConfig: '複製壓縮過的設定的 base64 字串', + pasteItInYourServersCommandLineAndExecute: ',將其貼到伺服器的命令列並執行。', + navigateToYourNginxConfigurationDirectoryOnYourServer: `前往您的 ${common.nginx} 伺服器的設定資料夾:`, + createABackupOfYourCurrentNginxConfiguration: `建立${common.nginx} 目前設定的備份:`, + extractTheNewCompressedConfigurationArchiveUsingTar: '使用 tar 解壓縮新的設定:', + download: '下載', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/go_live.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/go_live.js new file mode 100644 index 00000000..f4efdde1 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/go_live.js @@ -0,0 +1,33 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + letsGoLive: '好戲上場!', + reloadNginxToLoadInYourNewConfiguration: `重新載入 ${common.nginx} 以套用新設定:`, + goLive: '上線!', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/index.js new file mode 100644 index 00000000..378a5cf3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/index.js @@ -0,0 +1,32 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import certbot from './certbot'; +import download from './download'; +import goLive from './go_live'; +import ssl from './ssl'; + +export default { certbot, download, goLive, ssl }; diff --git a/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/ssl.js b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/ssl.js new file mode 100644 index 00000000..bf7d4488 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/i18n/zh-tw/templates/setup_sections/ssl.js @@ -0,0 +1,34 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import common from '../../common'; + +export default { + generateDiffieHellmanKeysByRunningThisCommandOnYourServer: '在您的伺服器上執行此命令來產生迪菲-赫爾曼密鑰:', + createACommonAcmeChallengeDirectoryForLetsEncrypt: `建立一個通用的 ACME-challenge 目錄(用於 ${common.letsEncrypt}):`, + noAdditionalStepsAreNeededToSetUpSslForNginx: `您的 ${common.nginx} 設定已完成 ${common.ssl} 設定,無須任何操作。`, + sslInit: `${common.ssl} 初始化`, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/mount.js b/nginx/nginxconfig.io/src/nginxconfig/mount.js new file mode 100644 index 00000000..483fb39c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/mount.js @@ -0,0 +1,40 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +// Load in the app +import './scss/style.scss'; +import 'vue-select/dist/vue-select.css'; +import { createApp } from 'vue'; +import './util/prism_bundle'; +import { getI18n } from './i18n/setup'; +import App from './templates/app'; + +// Load the i18n languages and run the app +getI18n().then(i18n => { + const app = createApp(App); + app.use(i18n); + app.mount('#app'); +}); diff --git a/nginx/nginxconfig.io/src/nginxconfig/scss/_callout.scss b/nginx/nginxconfig.io/src/nginxconfig/scss/_callout.scss new file mode 100644 index 00000000..a6c5fa95 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/scss/_callout.scss @@ -0,0 +1,100 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +.callout { + background: $callout; + border-radius: $border-radius; + margin: 2rem .5rem 1rem; + padding: 1.875rem 1.875rem 1.5rem; + transition: opacity $transition; + + &.floating { + bottom: 0; + box-shadow: inset 0 0 0 $border-size $border; + max-width: calc(100% - 1rem); + position: fixed; + right: 0; + width: 22rem; + z-index: 100; + + .close { + display: flex; + flex-flow: row nowrap; + margin: 0 0 1.25rem; + + p { + flex-grow: 1; + margin: 0 .5rem 0 0; + } + + a { + color: $muted; + margin: 0 .5rem; + text-decoration: none; + transition: color $transition; + + &:hover { + color: $text; + } + } + } + + p { + @include font-regular; + } + + .button { + display: block; + height: auto; + line-height: 1.5rem; + min-height: 3rem; + padding: .75rem 0; + white-space: normal; + } + } + + p { + @include font-medium; + + font-size: 15px; + margin: 0; + text-align: left; + + a { + border-bottom: $border-size dotted $primary; + padding: 0 0 $border-size; + text-decoration: none; + + &:hover { + border-bottom-color: $primary-hover; + } + + + i { + margin: 0 0 0 .25rem; + } + } + } +} diff --git a/nginx/nginxconfig.io/src/nginxconfig/scss/_code.scss b/nginx/nginxconfig.io/src/nginxconfig/scss/_code.scss new file mode 100644 index 00000000..03bb6954 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/scss/_code.scss @@ -0,0 +1,73 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +pre { + &[class*="language-"] { + padding: .5rem 1rem; + + code { + &[class*="language-"] { + &, + .token { + font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; + font-size: 13.6px; + font-weight: normal; + line-height: 1.4em; + } + + // Fix Bulma & DO Prism styles interfering with default Prism + .token { + &.number, + &.tag, + &.entity, + &.operator, + &.url { + background: transparent; + border-radius: initial; + display: initial; + font-size: inherit; + margin: initial; + padding: initial; + text-align: initial; + vertical-align: initial; + } + } + } + } + } +} + +.code-toolbar { + > .toolbar { + right: calc(.2em + 16px); + } +} + +mark { + background: rgba($highlight, .45); + color: inherit; + display: inline-block; +} diff --git a/nginx/nginxconfig.io/src/nginxconfig/scss/_fields.scss b/nginx/nginxconfig.io/src/nginxconfig/scss/_fields.scss new file mode 100644 index 00000000..8ff4c24e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/scss/_fields.scss @@ -0,0 +1,229 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +.field-row { + display: flex; + flex-flow: row wrap; + margin: 0 -.5rem; + + .field { + flex-grow: 1; + margin: 0 .5rem; + text-align: left; + } + + + .field-row, + + .field { + margin-top: 1rem; + } +} + +.field { + &.is-horizontal { + align-items: center; + + &.is-aligned-top { + align-items: flex-start; + + > .field-label { + &.has-margin-top { + margin-top: .75rem; + } + + &.has-small-margin-top { + margin-top: .25rem; + } + } + + > p { + @include font-medium; + + color: $dark-grey; + font-size: 14px; + margin: 0 .5rem; + } + } + + + .control { + margin-top: .5rem; + } + } + + &.is-grouped { + > .control { + &:last-child { + margin: .25rem 0 0; + } + + &:not(:last-child) { + margin: .25rem .75rem 0 0; + } + } + } + + .is-changed { + input { + &:not(.vs__search) { // stylelint-disable-line selector-class-pattern + &, + &:focus { + background: rgba($highlight, .35); + } + } + } + + .checkbox, + .radio, + .text { + background: rgba($highlight, .35); + } + + label { + &.text { + padding: .25rem .5rem; + } + } + + .v-select { + .vs__dropdown-toggle { // stylelint-disable-line selector-class-pattern + background: rgba($highlight, .35); + } + } + } + + label { + @include font-medium; + + color: $dark-blue; + font-size: 1rem; + + &.text { + border-radius: $border-radius; + color: $dark-grey; + display: inline-block; + font-size: 14px; + padding: 0 .5rem; + + &.message { + padding: 0; + + .message-body { + display: inline-block; + } + } + + .fa-external-link-alt { + margin: 0 0 0 .25rem; + } + } + } + + .button { + &.is-static { + background: $panel; + border: 1px solid $border; + color: $dark-grey; + padding: 0 ($margin * 1.5); + } + + &.is-tiny { + font-size: 14px; + height: auto; + line-height: normal; + margin: .2rem .25rem; + padding: ($margin * .5) ($margin * .75); + } + } + + .control { + &:not(.is-expanded) { + + .control { + &:not(.is-expanded) { + margin-top: .25rem; + } + } + } + + input.is-danger { + border-color: $danger; + } + } +} + +.field-body { + &.is-vertical { + flex-direction: column; + + > .field { + &:not(:last-child) { + margin-bottom: .75rem; + } + } + } +} + +.checkbox, +.radio { + border-radius: $border-radius; + padding: .25rem .5rem; + + .pretty { + line-height: 1.25; + white-space: initial; + + &.p-icon { + font-size: 18px; + margin: 0; + + .state { + .icon { + top: 50%; + transform: translateY(-50%); + + &::before { + color: $panel; + font-size: 14px; + } + } + + label { + @include font-medium; + + color: $dark-grey; + font-size: 14px; + padding-left: calc(#{$margin * .5} + 1.5em); + text-indent: initial; + + &::before, + &::after { + font-size: 18px; + top: 50%; + transform: translateY(-50%); + } + } + } + } + } +} diff --git a/nginx/nginxconfig.io/src/nginxconfig/scss/_files.scss b/nginx/nginxconfig.io/src/nginxconfig/scss/_files.scss new file mode 100644 index 00000000..35499395 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/scss/_files.scss @@ -0,0 +1,31 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +.files { + h3 { + overflow-wrap: break-word; + } +} diff --git a/nginx/nginxconfig.io/src/nginxconfig/scss/_footer.scss b/nginx/nginxconfig.io/src/nginxconfig/scss/_footer.scss new file mode 100644 index 00000000..e15d0976 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/scss/_footer.scss @@ -0,0 +1,43 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +.footer { + .container { + p { + &:not(:first-child) { + + p { + margin-top: 0; + } + } + + i { + &[class^="fa"] { + margin: 0 0 0 .25rem; + } + } + } + } +} diff --git a/nginx/nginxconfig.io/src/nginxconfig/scss/_header.scss b/nginx/nginxconfig.io/src/nginxconfig/scss/_header.scss new file mode 100644 index 00000000..0de6bbf3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/scss/_header.scss @@ -0,0 +1,51 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +.header { + padding: ($margin * 2) $margin ($margin * 1.5); + + @media (min-width: $breakpoint) { + padding: ($margin * 3.75) 0 ($margin * .5); + } + + .container { + h3 { + @include font-medium; + } + + form { + .input-container { + margin: 0; + } + + .buttons { + > * { + margin: 0 0 1rem; + } + } + } + } +} diff --git a/nginx/nginxconfig.io/src/nginxconfig/scss/_modals.scss b/nginx/nginxconfig.io/src/nginxconfig/scss/_modals.scss new file mode 100644 index 00000000..87961299 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/scss/_modals.scss @@ -0,0 +1,37 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +.modal { + .modal-card { + text-align: left; + + .button { + + .button { + margin: 0 0 0 .5rem; + } + } + } +} diff --git a/nginx/nginxconfig.io/src/nginxconfig/scss/_panel.scss b/nginx/nginxconfig.io/src/nginxconfig/scss/_panel.scss new file mode 100644 index 00000000..5a8bf60c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/scss/_panel.scss @@ -0,0 +1,96 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +.panel { + margin-top: 0; + max-width: calc(100% - 1rem); + padding: 1.5rem 0 2rem; + text-align: left; + width: calc(100% - 1rem); + + // The presets panel has a custom header with a dropdown indicator + &.presets { + .header-group, + .buttons-group { + display: flex; + flex-flow: row wrap; + justify-content: space-between; + } + + .header-group { + h3 { + margin: 0; + } + + .button { + &.is-tiny { + font-size: 20px; + } + } + } + + .message, + .buttons-group { + margin: 1rem 0 0; + } + + .buttons-group { + align-items: center; + + .button { + margin: 0 .25rem .5rem; + } + } + } + + .container { + padding: 0 1.5rem; + } + + .tabs { + ul { + padding: 0 1rem; + } + } + + // Custom navigation buttons bottom right of the panels + .navigation-buttons { + align-items: center; + display: flex; + flex-direction: row; + justify-content: flex-end; + margin: 1.5rem 1.5rem 0; + + .button { + margin-left: .5rem; + + i + span, + span + i { + margin: 0 0 0 .5rem; + } + } + } +} diff --git a/nginx/nginxconfig.io/src/nginxconfig/scss/_setup.scss b/nginx/nginxconfig.io/src/nginxconfig/scss/_setup.scss new file mode 100644 index 00000000..a6349bcd --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/scss/_setup.scss @@ -0,0 +1,50 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +.setup { + .panel { + p { + color: $dark-blue; + overflow-wrap: break-word; + + a { + text-decoration: none; + } + } + + ol { + margin: 0 1rem; + + li { + margin: 0 0 1.5rem; + } + } + } + + .buttons { + margin: 1rem 0; + } +} diff --git a/nginx/nginxconfig.io/src/nginxconfig/scss/_tabs.scss b/nginx/nginxconfig.io/src/nginxconfig/scss/_tabs.scss new file mode 100644 index 00000000..9a8d2fb0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/scss/_tabs.scss @@ -0,0 +1,121 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +.tabs { + ul { + li { + display: flex; + flex-flow: row nowrap; + + &:hover, + &:focus { + a { + &::after { + background: $dark-blue; + } + } + } + + // Light blue color if the user has gone past a tab + &.is-before { + a { + color: mix($dark-grey, $primary); + + &::after { + background: rgba($primary, .5); + } + + &:hover { + color: $dark-blue; + + &::after { + background: $dark-blue; + } + } + } + } + + // If a user has changed something in the tab, we'll make the text dark always + &.is-changed { + a { + color: $dark-blue; + } + } + + a { + // Support having a remove button inline with the normal tab text + &.domain { + flex-grow: 1; + padding-right: .25rem; + + &::after { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + } + } + + &.remove { + padding-left: .25rem; + transition: color $transition; + + &::after { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } + + &:hover, + &:focus { + color: $danger; + + &::after { + background: $danger; + } + } + + i { + font-size: .75em; + margin: 0; + } + } + + i { + // Add domain button + &.fa-plus { + font-size: .75em; + margin: 0 .35rem 0 0; + } + + // Warning icon + &.fa-exclamation-triangle { + color: $warning-hover; + font-size: .9em; + margin: 0 0 .1rem .35rem; + } + } + } + } + } +} diff --git a/nginx/nginxconfig.io/src/nginxconfig/scss/_vue-select.scss b/nginx/nginxconfig.io/src/nginxconfig/scss/_vue-select.scss new file mode 100644 index 00000000..940c99ac --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/scss/_vue-select.scss @@ -0,0 +1,112 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +// stylelint-disable selector-class-pattern +.v-select { + --vs-border-color: #{$border}; + --vs-border-radius: #{$border-radius}; + --vs-dropdown-box-shadow: 0 2px 4px #{rgba($dark-blue, .06)}; + --vs-dropdown-option--active-bg: #{$primary}; // stylelint-disable-line custom-property-pattern + + &.vs--open { + > ul { + opacity: 1; + } + + .vs__dropdown-toggle { + border-color: $primary; + box-shadow: 0 0 2px rgba($success, .5); + + .vs__selected { + height: $height; + position: unset; + top: .75em; + } + + .vs__search { + position: absolute; + width: 100%; + } + } + } + + > ul { + display: block !important; + margin: 0; + opacity: 0; + transition: opacity $transition; + } + + .vs__dropdown-toggle { + box-shadow: none; + padding: 0 16px; + transition: border $transition, box-shadow $transition; + + .vs__selected-options { + padding: 0; + + .vs__selected { + margin: 0; + padding: 0; + transition: opacity $transition; + + .has-icon { + align-items: center; + display: flex; + + .icon { + color: $dark-grey; + font-size: 1.25rem; + margin: 0 .5rem 0 0; + } + } + } + + .vs__search { + &, + &:focus { + background: none; + border: 0; + box-shadow: none; + margin: 0; + padding: 0; + width: 0; + } + } + } + + .vs__actions { + padding: 0 0 0 .25rem; + } + } + + .vs__dropdown-menu { + .vs__dropdown-option { + padding: .25rem 1.25rem; + white-space: normal; + } + } +} diff --git a/nginx/nginxconfig.io/src/nginxconfig/scss/style.scss b/nginx/nginxconfig.io/src/nginxconfig/scss/style.scss new file mode 100644 index 00000000..13a2aa80 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/scss/style.scss @@ -0,0 +1,53 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +$header: #0071fe; +$highlight: #f2c94c; +$callout: #f3f5f9; + +@import "~do-bulma/src/style"; + +.do-bulma { + @import "../../../build/prism"; + + $pretty--color-dark: $primary; // stylelint-disable-line scss/dollar-variable-pattern + $pretty--color-default: $primary; // stylelint-disable-line scss/dollar-variable-pattern + + @import "~pretty-checkbox/src/pretty-checkbox"; + + // Local imports + @import "header"; + @import "tabs"; + @import "panel"; + @import "fields"; + @import "vue-select"; + @import "modals"; + @import "callout"; + @import "setup"; + @import "code"; + @import "files"; + @import "footer"; +} diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/app.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/app.vue new file mode 100644 index 00000000..6ef9d1e3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/app.vue @@ -0,0 +1,433 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/callouts/contribute.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/callouts/contribute.vue new file mode 100644 index 00000000..f060ccdf --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/callouts/contribute.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/callouts/droplet.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/callouts/droplet.vue new file mode 100644 index 00000000..7ab5fb12 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/callouts/droplet.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/domain.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/domain.vue new file mode 100644 index 00000000..efd0f6f5 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/domain.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/https.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/https.vue new file mode 100644 index 00000000..6bf8e131 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/https.vue @@ -0,0 +1,419 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/index.js new file mode 100644 index 00000000..b808f78c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/index.js @@ -0,0 +1,37 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import Server from './server'; +import HTTPS from './https'; +import PHP from './php'; +import Python from './python'; +import ReverseProxy from './reverse_proxy'; +import Routing from './routing'; +import Logging from './logging'; +import Restrict from './restrict'; +import Onion from './onion'; + +export default [ Server, HTTPS, PHP, Python, ReverseProxy, Routing, Logging, Restrict, Onion ]; diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/logging.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/logging.vue new file mode 100644 index 00000000..f0770d6e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/logging.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/onion.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/onion.vue new file mode 100644 index 00000000..3ac5d54a --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/onion.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/php.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/php.vue new file mode 100644 index 00000000..b4d781e5 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/php.vue @@ -0,0 +1,383 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/presets.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/presets.vue new file mode 100644 index 00000000..8acd126d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/presets.vue @@ -0,0 +1,288 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/python.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/python.vue new file mode 100644 index 00000000..c0496389 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/python.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/restrict.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/restrict.vue new file mode 100644 index 00000000..a2c0e226 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/restrict.vue @@ -0,0 +1,284 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/reverse_proxy.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/reverse_proxy.vue new file mode 100644 index 00000000..05ccfd8c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/reverse_proxy.vue @@ -0,0 +1,197 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/routing.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/routing.vue new file mode 100644 index 00000000..64ea65c4 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/routing.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/server.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/server.vue new file mode 100644 index 00000000..c13073b5 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/domain_sections/server.vue @@ -0,0 +1,256 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/footer.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/footer.vue new file mode 100644 index 00000000..ab4a8bc9 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/footer.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/global.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/global.vue new file mode 100644 index 00000000..2d348a8c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/global.vue @@ -0,0 +1,160 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/docker.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/docker.vue new file mode 100644 index 00000000..2406dec0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/docker.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/https.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/https.vue new file mode 100644 index 00000000..c436c454 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/https.vue @@ -0,0 +1,395 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/index.js new file mode 100644 index 00000000..c2cbc4d1 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/index.js @@ -0,0 +1,37 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import HTTPS from './https'; +import Security from './security'; +import Python from './python'; +import ReverseProxy from './reverse_proxy'; +import Performance from './performance'; +import Logging from './logging'; +import NGINX from './nginx'; +import Docker from './docker'; +import Tools from './tools'; + +export default [ HTTPS, Security, Python, ReverseProxy, Performance, Logging, NGINX, Docker, Tools ]; diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/logging.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/logging.vue new file mode 100644 index 00000000..c98106f8 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/logging.vue @@ -0,0 +1,286 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/nginx.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/nginx.vue new file mode 100644 index 00000000..0834cebd --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/nginx.vue @@ -0,0 +1,269 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/performance.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/performance.vue new file mode 100644 index 00000000..04ed37b8 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/performance.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/python.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/python.vue new file mode 100644 index 00000000..67acf3cc --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/python.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/reverse_proxy.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/reverse_proxy.vue new file mode 100644 index 00000000..3a330478 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/reverse_proxy.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/security.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/security.vue new file mode 100644 index 00000000..694b222d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/security.vue @@ -0,0 +1,246 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/tools.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/tools.vue new file mode 100644 index 00000000..98643df0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/global_sections/tools.vue @@ -0,0 +1,380 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/inputs/checkbox.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/inputs/checkbox.vue new file mode 100644 index 00000000..f5a19de6 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/inputs/checkbox.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/inputs/radio.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/inputs/radio.vue new file mode 100644 index 00000000..e198cb73 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/inputs/radio.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/prism/bash.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/prism/bash.vue new file mode 100644 index 00000000..64f5f0ac --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/prism/bash.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/prism/docker.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/prism/docker.vue new file mode 100644 index 00000000..dff7487e --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/prism/docker.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/prism/nginx.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/prism/nginx.vue new file mode 100644 index 00000000..32815064 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/prism/nginx.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/prism/yaml.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/prism/yaml.vue new file mode 100644 index 00000000..6996de3d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/prism/yaml.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/setup.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/setup.vue new file mode 100644 index 00000000..c9be8a1c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/setup.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/certbot.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/certbot.vue new file mode 100644 index 00000000..3d9ff607 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/certbot.vue @@ -0,0 +1,180 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/download.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/download.vue new file mode 100644 index 00000000..a64d49fe --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/download.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/go_live.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/go_live.vue new file mode 100644 index 00000000..ef5cd6a6 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/go_live.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/index.js b/nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/index.js new file mode 100644 index 00000000..04bd52b3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/index.js @@ -0,0 +1,32 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import Download from './download'; +import SSL from './ssl'; +import Certbot from './certbot'; +import GoLive from './go_live'; + +export default [ Download, SSL, Certbot, GoLive ]; diff --git a/nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/ssl.vue b/nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/ssl.vue new file mode 100644 index 00000000..70df0925 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/templates/setup_sections/ssl.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/analytics.js b/nginx/nginxconfig.io/src/nginxconfig/util/analytics.js new file mode 100644 index 00000000..0ada5fca --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/analytics.js @@ -0,0 +1,308 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import { info } from './log'; + +export default ({ category, action, label, value, nonInteraction }) => { + info('Analytics event:', { category, action, label, value, nonInteraction }); + + /*try { + // Google Analytics + window.ga('send', 'event', { + eventCategory: category, + eventAction: action, + eventLabel: label, + eventValue: value, + nonInteraction, + }); + } catch (_) { + // If analytics fail, don't block anything else + }*/ + + try { + // Google Tag Manager + window.dataLayer = window.dataLayer || []; + window.dataLayer.push({ + event: 'nginx_tool', + category, + action, + label, + value, + nonInteraction, + }); + } catch (_) { + // If analytics fail, don't block anything else + } + + try { + // Segment + window.analytics.track('Web Interaction', { + category, + action, + label, + value, + nonInteraction, + }); + } catch (_) { + // If analytics fail, don't block anything else + } +}; + +/* +All analytics events in app: + +# Initial language set (from browser or query param) + +File: app.vue +Category: 'Language' +Action: 'Set' +Label: language pack name +Non-interaction: true + +# User manually changing tool language + +File: app.vue +Category: 'Language' +Action: 'Set' +Label: language pack name +Non-interaction: false + +# Initial domains set (from query params) + +File: app.vue +Category: 'Site' +Action: 'Added' +Value: total number of sites active in tool +Non-interaction: true + +# User adding a domain + +File: app.vue +Category: 'Site' +Action: 'Added' +Value: total number of sites active in tool +Non-interaction: false + +# User removing a domain + +File: app.vue +Category: 'Site' +Action: 'Removed' +Label: domain name being removed +Value: total number of sites active in tool after removal + +# Initial split column mode (will always be disabled) + +File: app.vue +Category: 'Split column' +Action: 'Disabled' +Non-interaction: true + +# User changing the column mode + +File: app.vue +Category: 'Split column' +Action: 'Disabled' / 'Enabled' +Non-interaction: false + +# User applying a preset + +File: domain_sections/presets.vue +Category: 'Preset' +Action: 'Applied' +Label: preset internal name + +# User applying a preset with previous customisations + +File: domain_sections/presets.vue +Category: 'Preset' +Action: 'Overwritten' +Label: preset internal name + +# User resetting global settings + +File: global_sections/tools.vue +Category: 'Tools' +Action: 'Global settings reset' + +# User resetting a domain + +File: global_sections/tools.vue +Category: 'Tools' +Action: 'Site reset' +Label: domain name being reset + +# User removing a domain in the tools tab + +Note: This will also trigger the regular site removal event in app.vue +File: global_sections/tools.vue +Category: 'Tools' +Action: 'Removed site' +Label: domain name being removed + +# User resetting all domains + +File: global_sections/tools.vue +Category: 'Tools' +Action: 'All sites reset' +Label: comma-separated list of domain names being reset +Value: total number of domains being reset + +# User removing all domains + +Note: This will also trigger the regular site removal event in app.vue for each domain removed +File: global_sections/tools.vue +Category: 'Tools' +Action: 'All sites removed' +Label: comma-separated list of domain names being removed +Value: total number of domains being removed + +# User clicking a tab in global settings + +File: global.vue +Category: 'Global' +Action: 'Tab clicked' +Label: from tab, to tab + +# User clicking back in global settings + +File: global.vue +Category: 'Global' +Action: 'Back clicked' +Label: from tab, to tab + +# User clicking next in global settings + +File: global.vue +Category: 'Global' +Action: 'Next clicked' +Label: from tab, to tab + +# User clicking a tab in domain settings + +File: domain.vue +Category: 'Site' +Action: 'Tab clicked' +Label: from tab, to tab + +# User clicking back in domain settings + +File: domain.vue +Category: 'Site' +Action: 'Back clicked' +Label: from tab, to tab + +# User clicking next in domain settings + +File: domain.vue +Category: 'Site' +Action: 'Next clicked' +Label: from tab, to tab + +# User clicking a tab in setup + +File: setup.vue +Category: 'Setup' +Action: 'Tab clicked' +Label: from tab, to tab + +# User clicking back in setup + +File: setup.vue +Category: 'Setup' +Action: 'Back clicked' +Label: from tab, to tab + +# User clicking next in setup + +File: setup.vue +Category: 'Setup' +Action: 'Next clicked' +Label: from tab, to tab + +# User downloading the config + +File: setup.vue +Category: 'Setup' +Action: 'Downloaded tar file' +Label: name of the tar file (incl. domain names) +Value: total number of active domains + +# User copying the base64 config + +File: setup.vue +Category: 'Setup' +Action: 'Copied base64 tar' +Label: name of the tar file (incl. domain names) +Value: total number of active domains + +# User copying a code snippet in setup + +File: setup.vue +Category: 'Setup' +Action: 'Code snippet copied' +Label: tab name: a summary of the code snippet + +# User copying a config file + +File: app.vue +Category: 'Config files' +Action: 'Code snippet copied' +Label: name of file without nginx directory + +# Droplet callout is rendered + +File: callouts/droplet.vue +Category: 'Droplet callout' +Action: 'Visible' +Non-interaction: true + +# User clicks on droplet callout + +File: callouts/droplet.vue +Category: 'Droplet callout' +Action: 'Clicked' + +# Contribute callout is rendered (on scroll) + +File: callouts/contribute.vue +Category: 'Contribute callout' +Action: 'Visible' +Non-interaction: true + +# User clicks on contribute callout + +File: callouts/contribute.vue +Category: 'Contribute callout' +Action: 'Clicked' + +# User closes the contribute callout + +File: callouts/contribute.vue +Category: 'Contribute callout' +Action: 'Closed' + +*/ diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/angular_backwards_compatibility.js b/nginx/nginxconfig.io/src/nginxconfig/util/angular_backwards_compatibility.js new file mode 100644 index 00000000..117d6fd3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/angular_backwards_compatibility.js @@ -0,0 +1,174 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import isObject from './is_object'; + +const oldBool = val => val.toString().trim() === '' ? true : val; + +const globalMap = { + ssl_profile: ['https', 'sslProfile'], + resolver_cloudflare: ['https', 'ocspCloudflare', oldBool], + resolver_google: ['https', 'ocspGoogle', oldBool], + resolver_opendns: ['https', 'ocspOpenDns', oldBool], + directory_letsencrypt: ['https', 'letsEncryptRoot'], + + referrer_policy: ['security', 'referrerPolicy'], + content_security_policy: ['security', 'contentSecurityPolicy'], + server_tokens: ['security', 'serverTokens', oldBool], + limit_req: ['security', 'limitReq', oldBool], + + php_server: ['php', 'phpServer'], + php_server_backup: ['php', 'phpBackupServer'], + + python_server: ['python', 'pythonServer'], + + gzip: ['performance', 'gzipCompression', oldBool], + brotli: ['performance', 'brotliCompression', oldBool], + expires_assets: ['performance', 'assetsExpiration'], + expires_media: ['performance', 'mediaExpiration'], + expires_svg: ['performance', 'svgExpiration'], + expires_fonts: ['performance', 'fontsExpiration'], + + access_log: ['logging', 'accessLog'], + error_log: ['logging', 'errorLog'], + log_not_found: ['logging', 'logNotFound', oldBool], + + directory_nginx: ['nginx', 'nginxConfigDirectory'], + worker_processes: ['nginx', 'workerProcesses'], + user: ['nginx', 'user'], + pid: ['nginx', 'pid'], + client_max_body_size: ['nginx', 'clientMaxBodySize'], + + file_structure: ['tools', 'modularizedStructure', val => val.toLowerCase().trim() === 'modularized'], + symlink: ['tools', 'symlinkVhost', oldBool], +}; + +const domainMap = { + domain: ['server', 'domain'], + path: ['server', 'path'], + document_root: ['server', 'documentRoot'], + non_www: ['server', 'wwwSubdomain', val => !oldBool(val)], + cdn: ['server', 'cdnSubdomain', oldBool], + redirect: ['server', 'redirectSubdomains', oldBool], + ipv4: ['server', 'listenIpv4'], + ipv6: ['server', 'listenIpv6'], + + https: ['https', 'https', oldBool], + http2: ['https', 'http2', oldBool], + force_https: ['https', 'forceHttps', oldBool], + hsts: ['https', 'hsts', oldBool], + hsts_subdomains: ['https', 'hstsSubdomains', oldBool], + hsts_preload: ['https', 'hstsPreload', oldBool], + cert_type: ['https', 'certType', val => val.toLowerCase().trim() === 'custom' ? 'custom' : 'letsEncrypt'], + email: ['https', 'letsEncryptEmail'], + ssl_certificate: ['https', 'sslCertificate'], + ssl_certificate_key: ['https', 'sslCertificateKey'], + + php: ['php', 'php', oldBool], + wordpress: ['php', 'wordPressRules', oldBool], + drupal: ['php', 'drupalRules', oldBool], + magento: ['php', 'magentoRules', oldBool], + + python: ['python', 'python', oldBool], + django: ['python', 'djangoRules', oldBool], + + proxy: ['reverseProxy', 'reverseProxy', oldBool], + proxy_path: ['reverseProxy', 'path'], + proxy_pass: ['reverseProxy', 'proxyPass'], + + root: ['routing', 'root', oldBool], + index: ['routing', 'index'], + fallback_html: ['routing', 'fallbackHtml', oldBool], + fallback_php: ['routing', 'fallbackPhp', oldBool], + fallback_php_path: ['routing', 'fallbackPhpPath'], + php_legacy_routing: ['routing', 'legacyPhpRouting', oldBool], + + access_log_domain: ['logging', 'accessLog', oldBool], + error_log_domain: ['logging', 'errorLog', oldBool], +}; + +// Handle converting the old query format from nginxconfig.io-angular to our new query params +export default data => { + // Hold any mapped global data + const mappedGlobal = {}; + + // Handle converting global settings & storing domains + for (const key in data) { + if (!Object.prototype.hasOwnProperty.call(data, key)) continue; + + // Map old global settings to their new ones + if (key in globalMap && !isObject(data[key])) { + const map = globalMap[key]; + + mappedGlobal[map[0]] = mappedGlobal[map[0]] || {}; + mappedGlobal[map[0]][map[1]] = map.length < 3 ? data[key] : map[2](data[key]); + continue; + } + + // If not a global setting and if this is an integer + // Then, this is probably an old domain, so we'll try to convert it as such + if (!isNaN(parseInt(key))) { + data.domains = isObject(data.domains) ? data.domains : {}; + data.domains[key] = data[key]; + } + } + + // Overwrite mapped global data + data.global = {...(data.global || {}), ...mappedGlobal}; + + // Handle converting domain settings + if ('domains' in data && isObject(data.domains)) { + for (const key in data.domains) { + // Don't include inherited props + if (!Object.prototype.hasOwnProperty.call(data.domains, key)) continue; + + // Check this is an object + if (!isObject(data.domains[key])) continue; + + // Hold any mapped data + const mappedData = {}; + + // Handle converting old domain settings to new ones + for (const key2 in data.domains[key]) { + // Don't include inherited props + if (!Object.prototype.hasOwnProperty.call(data.domains[key], key2)) continue; + + // Don't convert objects + if (isObject(data.domains[key][key2])) continue; + + // Map old settings to their new ones + if (key2 in domainMap) { + const map = domainMap[key2]; + mappedData[map[0]] = mappedData[map[0]] || {}; + mappedData[map[0]][map[1]] = map.length < 3 ? data.domains[key][key2] : map[2](data.domains[key][key2]); + } + } + + // Overwrite mapped properties + data.domains[key] = {...data.domains[key], ...mappedData}; + } + } +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/browser_language.js b/nginx/nginxconfig.io/src/nginxconfig/util/browser_language.js new file mode 100644 index 00000000..b0b5e722 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/browser_language.js @@ -0,0 +1,59 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import { fromSep } from './language_packs'; + +export default availablePacks => { + if (typeof window === 'object' && typeof window.navigator === 'object') { + const userLocales = new Set(); + + // Get the user languages + if (Array.isArray(window.navigator.languages)) + window.navigator.languages.forEach(locale => userLocales.add(locale)); + if (typeof window.navigator.language === 'string') + userLocales.add(window.navigator.language); + if (Intl && 'DateTimeFormat' in Intl) + if (Intl.DateTimeFormat().resolvedOptions().locale !== 'und') + userLocales.add(Intl.DateTimeFormat().resolvedOptions().locale); + + // Try to find an exact region/language match + const exactMatch = [...userLocales.values()].find(locale => availablePacks.includes(fromSep(locale, '-'))); + if (exactMatch) return fromSep(exactMatch, '-'); + + // Build a map of languages to pack + const i18nPackLanguages = availablePacks.reduce((map, pack) => { + const lang = pack.match(/^[a-z]+/)[0]; + if (!(lang in map)) map[lang] = pack; + return map; + }, {}); + + // Try to match a user language to a pack language + const langMatch = [...userLocales.values()].find(x => Object.keys(i18nPackLanguages).includes(x.split('-')[0].toLowerCase())); + if (langMatch) return i18nPackLanguages[langMatch.split('-')[0].toLowerCase()]; + + return false; + } +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/camel_to_snake.js b/nginx/nginxconfig.io/src/nginxconfig/util/camel_to_snake.js new file mode 100644 index 00000000..c8e6c759 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/camel_to_snake.js @@ -0,0 +1,27 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default str => str.replace(/[\w]([A-Z])/g, m => `${m[0]}_${m[1]}`).toLowerCase(); diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/common_hsts.js b/nginx/nginxconfig.io/src/nginxconfig/util/common_hsts.js new file mode 100644 index 00000000..afaacaef --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/common_hsts.js @@ -0,0 +1,37 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default domains => { + return domains.every(d => d.https.hsts.computed) + && ( + domains.every(d => d.https.hstsSubdomains.computed) + || domains.every(d => !d.https.hstsSubdomains.computed) + ) + && ( + domains.every(d => d.https.hstsPreload.computed) + || domains.every(d => !d.https.hstsPreload.computed) + ); +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/computed_from_defaults.js b/nginx/nginxconfig.io/src/nginxconfig/util/computed_from_defaults.js new file mode 100644 index 00000000..9bc7a03d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/computed_from_defaults.js @@ -0,0 +1,66 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import isChanged from './is_changed'; + +export default (defaults, cat, isInteraction = true) => { + return Object.keys(defaults).reduce((prev, key) => { + prev[key] = { + get() { + return this.$props.data[key].value; + }, + set (value) { + // Save user interaction if value changed + if (isInteraction + && this.$parent + && 'data' in this.$parent.$props + && 'hasUserInteraction' in this.$parent.$props.data + && !this.$parent.$props.data.hasUserInteraction + && this.$props.data[key].value !== value) + this.$parent.$props.data.hasUserInteraction = true; + + this.$props.data[key].value = value; + this.$props.data[key].computed = value; + }, + }; + prev[key + 'Default'] = { + get() { + return this.$props.data[key].default; + }, + }; + prev[key + 'Enabled'] = { + get() { + return this.$props.data[key].enabled; + }, + }; + prev[key + 'Changed'] = { + get() { + return isChanged(this.$props.data[key], cat, key); + }, + }; + return prev; + }, {}); +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/deep_merge.js b/nginx/nginxconfig.io/src/nginxconfig/util/deep_merge.js new file mode 100644 index 00000000..868ef2b0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/deep_merge.js @@ -0,0 +1,38 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default (target, source) => { + const merge = (target, source) => { + Object.keys(source).forEach((key) => { + if (source[key] && typeof source[key] === 'object') { + merge(target[key] = target[key] || {}, source[key]); + return; + } + target[key] = source[key]; + }); + }; + merge(target, source); +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/defaults.js b/nginx/nginxconfig.io/src/nginxconfig/util/defaults.js new file mode 100644 index 00000000..a2dfe98a --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/defaults.js @@ -0,0 +1,27 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export const serverDomainDefault = 'example.com'; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/delegated_from_defaults.js b/nginx/nginxconfig.io/src/nginxconfig/util/delegated_from_defaults.js new file mode 100644 index 00000000..4179922c --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/delegated_from_defaults.js @@ -0,0 +1,36 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default (defaults) => { + return Object.keys(defaults).reduce((prev, key) => { + prev[key] = { + value: defaults[key].default, + computed: defaults[key].default, + ...defaults[key], + }; + return prev; + }, {}); +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/export_data.js b/nginx/nginxconfig.io/src/nginxconfig/util/export_data.js new file mode 100644 index 00000000..405be4e5 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/export_data.js @@ -0,0 +1,73 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +const categoriesExport = (categories) => { + const categoriesData = {}; + + // Work through each category + for (const category in categories) { + // Ignore presets + if (category === 'presets') continue; + const categoryData = {}; + + // Go over each property in the category + for (const property in categories[category]) { + + // If the user input differs from the default, they changed it, so we save it + const propertyData = categories[category][property]; + if (propertyData.value !== propertyData.default) { + categoryData[property] = propertyData.value; + } + } + + // If there were any property changes, save the category + if (Object.keys(categoryData).length) { + categoriesData[category] = categoryData; + } + } + + return categoriesData; +}; + +export default (domains, global) => { + const exportData = {}; + + // Handle domains + // Always save changes, even if none, so we can replicate the correct number of domains + exportData.domains = domains.map(domain => categoriesExport(domain[0])).reduce((prev, current, index) => { + prev[index] = current; + return prev; + }, {}); + + // Handle global + // If there were any category changes, save global changes + const globalData = categoriesExport(global); + if (Object.keys(globalData).length) { + exportData.global = globalData; + } + + return exportData; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/get_ssl_certificate.js b/nginx/nginxconfig.io/src/nginxconfig/util/get_ssl_certificate.js new file mode 100644 index 00000000..e6924ed0 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/get_ssl_certificate.js @@ -0,0 +1,45 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export const getSslCertificate = (domain, global) => { + if (domain.https.certType.computed === 'letsEncrypt') + return `${global.https.letsEncryptCertRoot.computed.replace(/\/+$/, '')}/${domain.server.domain.computed}/fullchain.pem`; + + if (domain.https.sslCertificate.computed) + return domain.https.sslCertificate.computed; + + return `${global.nginx.nginxConfigDirectory.computed.replace(/\/+$/, '')}/ssl/${domain.server.domain.computed}.crt`; +}; + +export const getSslCertificateKey = (domain, global) => { + if (domain.https.certType.computed === 'letsEncrypt') + return `${global.https.letsEncryptCertRoot.computed.replace(/\/+$/, '')}/${domain.server.domain.computed}/privkey.pem`; + + if (domain.https.sslCertificateKey.computed) + return domain.https.sslCertificateKey.computed; + + return `${global.nginx.nginxConfigDirectory.computed.replace(/\/+$/, '')}/ssl/${domain.server.domain.computed}.key`; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/import_data.js b/nginx/nginxconfig.io/src/nginxconfig/util/import_data.js new file mode 100644 index 00000000..79e402ea --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/import_data.js @@ -0,0 +1,127 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import qs from 'qs'; +import clone from 'clone'; +import Domain from '../templates/domain'; +import isObject from './is_object'; +import angularBackwardsCompatibility from './angular_backwards_compatibility'; +import vueBackwardsCompatibility from './vue_backwards_compatibility'; + +const applyCategories = (categories, target) => { + // Work through each potential category + for (const category in categories) { + // Avoid inheritance + if (!Object.prototype.hasOwnProperty.call(categories, category)) continue; + + // Ignore presets + if (category === 'presets') continue; + + // Check this is a real category + if (!(category in target)) continue; + + // Check this is an object + if (!isObject(categories[category])) continue; + + // Work through each potential setting in this category + for (const key in categories[category]) { + // Avoid inheritance + if (!Object.prototype.hasOwnProperty.call(categories[category], key)) continue; + + // Check this is a real key + if (!(key in target[category])) continue; + + // Apply the value + target[category][key].value = categories[category][key]; + target[category][key].computed = categories[category][key]; + } + } +}; + +export default (query, domains, global, nextTick) => new Promise(resolve => { + const data = qs.parse(query, { + ignoreQueryPrefix: true, + allowDots: true, + parseArrays: false, + decoder(value) { + value = decodeURIComponent(value); + + // If it's a set of digits, parse it as a float + if (/^(\d+|\d*\.\d+)$/.test(value)) return parseFloat(value); + + // If it matches a keyword, convert it + let keywords = { + true: true, + false: false, + null: null, + undefined: undefined, + }; + if (value in keywords) return keywords[value]; + + // Otherwise, leave it as is + return value; + }, + }); + + // Handle converting nginxconfig.io-angular params to the current version + angularBackwardsCompatibility(data); + + // Handle converting vue params to the current version + vueBackwardsCompatibility(data); + + // Handle domains + if ('domains' in data && isObject(data.domains)) { + // Work through all valid integer keys in the object + const keys = Object.keys(data.domains).map(x => parseInt(x)).filter(x => !isNaN(x)); + for (let i = 0; i < Math.max(...keys) + 1; i++) { + // If the key doesn't exist or this isn't a valid object, assume it was an untouched example domain + if (!keys.includes(i) || !isObject(data.domains[i])) { + domains.push(clone(Domain.delegated)); + continue; + } + + // Create a new domain (assume it has had custom user settings) + // Push transforms the object to a proxy, so re-fetch the proxy from the array + const domainImported = domains[domains.push(clone(Domain.delegated)) - 1]; + domainImported.hasUserInteraction = true; + + // Apply the initial values on the next Vue tick, once the watchers are ready + nextTick(() => applyCategories(data.domains[i], domainImported)); + } + } else { + // If no configured domains, add a single default + domains.push(clone(Domain.delegated)); + } + + // Handle global settings + if ('global' in data) { + // If this is an object, apply any potential data + if (isObject(data.global)) applyCategories(data.global, global); + } + + // Resolve after everything has updated + nextTick(() => nextTick(() => resolve(data))); +}); diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/is_changed.js b/nginx/nginxconfig.io/src/nginxconfig/util/is_changed.js new file mode 100644 index 00000000..60658279 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/is_changed.js @@ -0,0 +1,32 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default (prop, cat, key) => { + // Show as changed when enabled & not default + // Show php as changed when completely disabled (by reverse proxy or python) + return (prop.enabled && prop.value !== prop.default) + || (cat === 'php' && key === 'php' && prop.computed !== prop.default); +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/is_object.js b/nginx/nginxconfig.io/src/nginxconfig/util/is_object.js new file mode 100644 index 00000000..42830e86 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/is_object.js @@ -0,0 +1,27 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default obj => Object.prototype.toString.call(obj) === '[object Object]'; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/language_packs.js b/nginx/nginxconfig.io/src/nginxconfig/util/language_packs.js new file mode 100644 index 00000000..41ff37c4 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/language_packs.js @@ -0,0 +1,52 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export const defaultPack = 'en'; + +export { default as defaultPackData } from '../i18n/en'; + +export const toSep = (pack, sep) => pack + .match(/^([a-z]+)([A-Z]*)$/) + .slice(1) + .map(x => x.toLowerCase()) + .filter(x => !!x) + .join(sep); + +export const fromSep = (pack, sep) => pack.split(sep, 2)[0].toLowerCase() + (pack.split(sep, 2)[1] || '').toUpperCase(); + +// Export a static array of all language packs +export const availablePacks = Object.freeze([ + 'de', + 'en', + 'es', + 'fr', + 'ja', + 'pl', + 'ptBR', + 'ru', + 'zhCN', + 'zhTW', +]); diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/log.js b/nginx/nginxconfig.io/src/nginxconfig/util/log.js new file mode 100644 index 00000000..ad96cce5 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/log.js @@ -0,0 +1,31 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export const info = process.env.NODE_ENV !== 'production' ? console.info.bind(console) : () => {}; +export const log = process.env.NODE_ENV !== 'production' ? console.log.bind(console) : () => {}; + +export const warn = console.warn.bind(console); +export const error = console.error.bind(console); diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/logging.js b/nginx/nginxconfig.io/src/nginxconfig/util/logging.js new file mode 100644 index 00000000..bdf0e340 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/logging.js @@ -0,0 +1,55 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export const accessLogPathDefault = '/var/log/nginx/access.log'; +export const accessLogParamsDefault = 'buffer=512k flush=1m'; + +export const errorLogPathDefault = '/var/log/nginx/error.log'; +export const errorLogPathDisabled = '/dev/null'; +export const errorLogLevelDefault = 'warn'; +export const errorLogLevelOptions = Object.freeze(['debug', 'info', 'notice', 'warn', 'error', 'crit', 'alert', 'emerg']); +export const errorLogLevelDisabled = 'none'; + +export const getDomainAccessLog = (domain, global) => { + let path = domain.logging.accessLogPath.computed.trim(); + if (!path) { + path = accessLogPathDefault; + } + + return path + + (global.logging.cloudflare.computed ? ' cloudflare' : ' combined') + + (domain.logging.accessLogParameters.computed.trim() ? ` ${domain.logging.accessLogParameters.computed.trim()}`: ''); +}; + +export const getDomainErrorLog = (domain) => { + let path = domain.logging.errorLogPath.computed.trim(); + if (!path) { + path = errorLogPathDefault; + } + + const errorLogLevel = errorLogLevelOptions.includes(domain.logging.errorLogLevel.computed) ? ` ${domain.logging.errorLogLevel.computed}` : ''; + return `${path}${errorLogLevel}`; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/php_path.js b/nginx/nginxconfig.io/src/nginxconfig/util/php_path.js new file mode 100644 index 00000000..8ade1d42 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/php_path.js @@ -0,0 +1,31 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default (domain, backup = false) => { + const key = `php${backup ? 'Backup' : ''}Server`; + if (domain.php[key].computed === 'custom') return domain.php[`${key}Custom`].computed; + return (domain.php[key].computed[0] === '/' ? 'unix:' : '') + domain.php[key].computed; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/php_upstream.js b/nginx/nginxconfig.io/src/nginxconfig/util/php_upstream.js new file mode 100644 index 00000000..16bc9b7d --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/php_upstream.js @@ -0,0 +1,27 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default (domain) => `php_${domain.server.domain.computed.replace(/\./g, '_')}`; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/prism_bundle.js b/nginx/nginxconfig.io/src/nginxconfig/util/prism_bundle.js new file mode 100644 index 00000000..b2c042b1 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/prism_bundle.js @@ -0,0 +1,82 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import Clipboard from 'clipboard'; +import Prism from 'prismjs'; +import 'prismjs/components/prism-nginx'; +import 'prismjs/components/prism-bash'; +import 'prismjs/plugins/keep-markup/prism-keep-markup'; +import 'prismjs/plugins/toolbar/prism-toolbar'; +import 'prismjs/plugins/toolbar/prism-toolbar.css'; + +import { warn } from './log'; + +// Custom copy to clipboard (based on the Prism one) +const copyToClipboard = () => { + if (!Prism.plugins.toolbar) { + warn('Copy to Clipboard loaded before Toolbar.'); + return; + } + + Prism.plugins.toolbar.registerButton('copy-to-clipboard', env => { + const linkCopy = document.createElement('button'); + linkCopy.textContent = 'Copy'; + + const element = env.element; + const clip = new Clipboard(linkCopy, { + 'text': () => element.textContent, + }); + + const resetText = () => { + setTimeout(() => { + linkCopy.textContent = 'Copy'; + }, 5000); + }; + + const emitEvent = () => { + linkCopy.dispatchEvent(new CustomEvent('copied', { + bubbles: true, + detail: { text: element.textContent }, + })); + }; + + clip.on('success', () => { + linkCopy.textContent = 'Copied!'; + emitEvent(); + resetText(); + }); + + clip.on('error', () => { + const isMac = navigator.platform.includes('Mac'); + linkCopy.textContent = `Press ${isMac ? 'Cmd' : 'Ctrl'}+C to copy`; + resetText(); + }); + + return linkCopy; + }); +}; + +copyToClipboard(); diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/share_query.js b/nginx/nginxconfig.io/src/nginxconfig/util/share_query.js new file mode 100644 index 00000000..07e2fbf3 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/share_query.js @@ -0,0 +1,34 @@ +/* +Copyright 2021 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import qs from 'qs'; +import exportData from './export_data'; + +export default (domains, global) => { + const data = exportData(domains, global); + const query = qs.stringify(data, { allowDots: true }); + return `${query.length > 1000 ? '#' : ''}${query.length ? '?' : ''}${query}`; +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/snake_to_camel.js b/nginx/nginxconfig.io/src/nginxconfig/util/snake_to_camel.js new file mode 100644 index 00000000..f7496ca7 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/snake_to_camel.js @@ -0,0 +1,27 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export default str => str.replace(/_(\w)/g, m => `${m[0].replace('_', '')}${m[1].toUpperCase()}`); diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/ssl_profiles.js b/nginx/nginxconfig.io/src/nginxconfig/util/ssl_profiles.js new file mode 100644 index 00000000..02229ad7 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/ssl_profiles.js @@ -0,0 +1,109 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +// https://github.com/mozilla/ssl-config-generator/blob/master/src/static/guidelines/5.0.json +export default { + modern: { + name: 'Mozilla Modern', + protocols: [ + 'TLSv1.3', + ], + ciphers: [ + // 'TLS_AES_256_GCM_SHA384', + // 'TLS_AES_128_GCM_SHA256', + // 'TLS_CHACHA20_POLY1305_SHA256', + ], + server_preferred_order: false, + dh_param_size: false, + oldest_clients: ['Firefox 63', 'Android 10.0', 'Chrome 70', 'Edge 75', 'Java 11', 'OpenSSL 1.1.1', 'Opera 57', 'Safari 12.1'], + }, + intermediate: { + name: 'Mozilla Intermediate', + protocols: [ + 'TLSv1.2', + 'TLSv1.3', + ], + ciphers: [ + // 'TLS_AES_256_GCM_SHA384', + // 'TLS_AES_128_GCM_SHA256', + // 'TLS_CHACHA20_POLY1305_SHA256', + 'ECDHE-ECDSA-AES128-GCM-SHA256', + 'ECDHE-RSA-AES128-GCM-SHA256', + 'ECDHE-ECDSA-AES256-GCM-SHA384', + 'ECDHE-RSA-AES256-GCM-SHA384', + 'ECDHE-ECDSA-CHACHA20-POLY1305', + 'ECDHE-RSA-CHACHA20-POLY1305', + 'DHE-RSA-AES128-GCM-SHA256', + 'DHE-RSA-AES256-GCM-SHA384', + ], + server_preferred_order: false, + dh_param_size: 2048, + oldest_clients: ['Firefox 27', 'Android 4.4.2', 'Chrome 31', 'Edge', 'IE 11 on Windows 7', 'Java 8u31', 'OpenSSL 1.0.1', 'Opera 20', 'Safari 9'], + }, + old: { + name: 'Mozilla Old', + protocols: [ + 'TLSv1', + 'TLSv1.1', + 'TLSv1.2', + 'TLSv1.3', + ], + ciphers: [ + // 'TLS_AES_256_GCM_SHA384', + // 'TLS_AES_128_GCM_SHA256', + // 'TLS_CHACHA20_POLY1305_SHA256', + 'ECDHE-ECDSA-AES128-GCM-SHA256', + 'ECDHE-RSA-AES128-GCM-SHA256', + 'ECDHE-ECDSA-AES256-GCM-SHA384', + 'ECDHE-RSA-AES256-GCM-SHA384', + 'ECDHE-ECDSA-CHACHA20-POLY1305', + 'ECDHE-RSA-CHACHA20-POLY1305', + 'DHE-RSA-AES128-GCM-SHA256', + 'DHE-RSA-AES256-GCM-SHA384', + 'DHE-RSA-CHACHA20-POLY1305', + 'ECDHE-ECDSA-AES128-SHA256', + 'ECDHE-RSA-AES128-SHA256', + 'ECDHE-ECDSA-AES128-SHA', + 'ECDHE-RSA-AES128-SHA', + 'ECDHE-ECDSA-AES256-SHA384', + 'ECDHE-RSA-AES256-SHA384', + 'ECDHE-ECDSA-AES256-SHA', + 'ECDHE-RSA-AES256-SHA', + 'DHE-RSA-AES128-SHA256', + 'DHE-RSA-AES256-SHA256', + 'AES128-GCM-SHA256', + 'AES256-GCM-SHA384', + 'AES128-SHA256', + 'AES256-SHA256', + 'AES128-SHA', + 'AES256-SHA', + 'DES-CBC3-SHA', + ], + server_preferred_order: true, + dh_param_size: 1024, + oldest_clients: ['Firefox 1', 'Android 2.3', 'Chrome 1', 'Edge 12', 'IE8 on Windows XP', 'Java 6', 'OpenSSL 0.9.8', 'Opera 5', 'Safari 1'], + }, +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/types_extensions.js b/nginx/nginxconfig.io/src/nginxconfig/util/types_extensions.js new file mode 100644 index 00000000..9682e66a --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/types_extensions.js @@ -0,0 +1,41 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +export const gzipTypes = 'text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml'; + +export const extensions = { + assets: 'css(\\.map)?|js(\\.map)?', + fonts: 'ttf|ttc|otf|eot|woff2?', + svg: 'svgz?', + images: 'jpe?g|png|gif|ico|cur|heic|webp|tiff?', + audio: 'mp3|m4a|aac|ogg|midi?|wav', + video: 'mp4|mov|webm|mpe?g|avi|ogv|flv|wmv', + docs: 'pdf|' + + 'docx?|dotx?|docm|dotm|' + + 'xlsx?|xltx?|xlsm|xltm|' + + 'pptx?|potx?|pptm|potm|ppsx?', + html: 'html?', +}; diff --git a/nginx/nginxconfig.io/src/nginxconfig/util/vue_backwards_compatibility.js b/nginx/nginxconfig.io/src/nginxconfig/util/vue_backwards_compatibility.js new file mode 100644 index 00000000..9996ace2 --- /dev/null +++ b/nginx/nginxconfig.io/src/nginxconfig/util/vue_backwards_compatibility.js @@ -0,0 +1,138 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import isObject from './is_object'; +import deepMerge from './deep_merge'; +import { accessLogPathDefault, accessLogParamsDefault, errorLogPathDefault, errorLogPathDisabled, errorLogLevelDefault } from './logging'; +import { serverDomainDefault } from './defaults'; + +// Migrate old logging settings to new ones +const migrateLogging = data => { + if (Object.keys(data).length === 0) return; + + const globalLogging = 'logging' in data.global && isObject(data.global.logging) ? data.global.logging : {}; + + // global access_log + const [globalAccessLogPath, ...globalAccessLogParameters] = (globalLogging.accessLog || accessLogPathDefault).split(' '); + const globalAccessLogEnabled = + !('accessLog' in globalLogging) || // accessLog was enabled by default and might not appear at all + (globalAccessLogPath !== '' && globalAccessLogPath !== 'off'); // *or* someone turned it off explicitly + + // global error_log + const [globalErrorLogPath, ...globalErrorLogLevel] = (globalLogging.errorLog || `${errorLogPathDefault} ${errorLogLevelDefault}`).split(' '); + const globalErrorLogEnabled = + !('errorLog' in globalLogging) || // errorLog was enabled by default and might not appear at all + (globalErrorLogPath !== '' && globalErrorLogPath !== errorLogPathDisabled); // *or* someone turned it off explicitly + + // set global access_log / error_log files for every domain UNLESS it was explicitly + // enabled for the domain + for (const key in data.domains) { + if (!Object.prototype.hasOwnProperty.call(data.domains, key)) continue; + + const perDomainServer = { + domain: serverDomainDefault, + ...('server' in data.domains[key] && isObject(data.domains[key].server) ? data.domains[key].server : {}), + }; + const perDomainLogging = 'logging' in data.domains[key] && isObject(data.domains[key].logging) ? data.domains[key].logging : {}; + + // access_log + let accessLogEnabled = globalAccessLogEnabled, + accessLogPath = globalAccessLogPath; + const accessLogParameters = globalAccessLogParameters.join(' ') || accessLogParamsDefault; + + const perDomainAccessLogEnabled = !!perDomainLogging.accessLog; + if (perDomainAccessLogEnabled) { + accessLogEnabled = true; + accessLogPath = accessLogPath.replace(/([^/]+)\.log$/, `${perDomainServer.domain}.$1.log`); + } + + // error_log + let errorLogEnabled = globalErrorLogEnabled, + errorLogPath = globalErrorLogPath; + const errorLogLevel = globalErrorLogLevel.join(' ') || errorLogLevelDefault; + + const perDomainErrorLogEnabled = !!perDomainLogging.errorLog; + if (perDomainErrorLogEnabled) { + errorLogEnabled = true; + errorLogPath = errorLogPath.replace(/([^/]+)\.log$/, `${perDomainServer.domain}.$1.log`); + } + + data.domains[key].logging = { + accessLogEnabled, + accessLogPath, + accessLogParameters, + errorLogEnabled, + errorLogPath, + errorLogLevel, + ...perDomainLogging, + }; + } +}; + +// Handle converting the old query format to our new query params +export default data => { + // Handle converting old domain settings to new ones + if ('global' in data && isObject(data.global)) { + // Handle specifics global data + const mappedData = { + php: {}, + }; + + // Keys to map + const keysToMap = { + php: [ + 'phpServer', + 'phpServerCustom', + 'phpBackupServer', + 'phpBackupServerCustom', + ], + }; + + for (const key in data.global) { + if (!Object.prototype.hasOwnProperty.call(data.global, key)) continue; + + // Skip if key doesn't need to be mapped + if (!Object.prototype.hasOwnProperty.call(keysToMap, key)) continue; + + for (const key2 in data.global[key]) { + if (!Object.prototype.hasOwnProperty.call(data.global[key], key2)) continue; + + if (keysToMap[key].includes(key2)) { + mappedData[key][key2] = data.global[key][key2]; + } + } + } + + for (const key in data.domains) { + if (!Object.prototype.hasOwnProperty.call(data.domains, key)) continue; + + // Deep merge the mapped data + deepMerge(data.domains[key], mappedData); + } + } + + migrateLogging(data); +}; diff --git a/nginx/nginxconfig.io/src/static/banner.png b/nginx/nginxconfig.io/src/static/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..cd39eefb1ca13182489e9fb3e3ac6abbbf79b361 GIT binary patch literal 230532 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ɤx+g!bFAot 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%0DC}$zZ}pAZqh#pb+Ol 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%0DG@v4H4+eJfM2)fLQWXC=Vm=uLv64OL>&7eeHwp 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⪙5`v9p!4v^3j*ZqvFh~)JCa;Z* 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 + + + + + + + + + + + + + + + + + diff --git a/nginx/nginxconfig.io/src/static/nginx.png b/nginx/nginxconfig.io/src/static/nginx.png new file mode 100644 index 0000000000000000000000000000000000000000..209747b03a5a9fc7eee9e73a76fdbd01f7a2ff11 GIT binary patch literal 328581 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�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 u&$@r`UbZvFTSV~i + + + nginx + Created with Sketch. + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/nginx/nginxconfig.io/src/static/robots.txt b/nginx/nginxconfig.io/src/static/robots.txt new file mode 100644 index 00000000..1f53798b --- /dev/null +++ b/nginx/nginxconfig.io/src/static/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / diff --git a/nginx/nginxconfig.io/test/testBrowserLanguage.js b/nginx/nginxconfig.io/test/testBrowserLanguage.js new file mode 100644 index 00000000..80ca73fc --- /dev/null +++ b/nginx/nginxconfig.io/test/testBrowserLanguage.js @@ -0,0 +1,171 @@ +/* +Copyright 2020 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import browserLanguage from '../src/nginxconfig/util/browser_language'; + +class MockLocales { + static languages = []; + + static language = null; + + static IntlBackup = null; + + static navigator = null; + + static setNavigatorLanguages(langs) { + MockLocales.languages = langs; + return this; + } + + static setNavigatorLanguage(lang) { + MockLocales.language = lang; + return this; + } + + static setDateTimeLocale(locale) { + MockLocales.IntlBackup = Intl; + if (!locale) { + // eslint-disable-next-line no-global-assign + Intl = undefined; + return this; + } + + const newDateTimeFormat = new Intl.DateTimeFormat(locale); + // eslint-disable-next-line no-global-assign + Intl = { + DateTimeFormat() { + return newDateTimeFormat; + }, + }; + return this; + } + + static restoreDateTimeLocale() { + // eslint-disable-next-line no-global-assign + Intl = MockLocales.IntlBackup; + MockLocales.IntlBackup = null; + return this; + } + + static setNavigator(navigator) { + MockLocales.navigator = window.navigator; + window.navigator = navigator; + return this; + } + + static restoreNavigator() { + window.navigator = MockLocales.navigator; + MockLocales.navigator = null; + return this; + } +} + +Object.defineProperty(window.navigator, 'languages', { get: () => { + return MockLocales.languages || []; +}}); + +Object.defineProperty(window.navigator, 'language', { get: () => { + return MockLocales.language || null; +}}); + + +describe('browserLanguage', () => { + test('Selects the first available exact match for language/region', () => { + MockLocales.setDateTimeLocale(undefined); + + MockLocales.setNavigatorLanguages(['zh-CN', 'zh','en-US','en']); + expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('zhCN'); + + MockLocales.setNavigatorLanguages(['zh-TW','zh','en-US','en']); + expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('zhTW'); + + MockLocales.setNavigatorLanguages(['zh', 'en-US', 'en']); + expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en'); + + MockLocales.restoreDateTimeLocale(); + }); + + test('Selects the first available language match based on language/region',() => { + MockLocales.setDateTimeLocale(undefined); + + MockLocales.setNavigatorLanguages(['ja-JP', 'ja', 'en-US']); + expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en'); + + MockLocales.restoreDateTimeLocale(); + }); + + test('Selects the first available language match based on language alone',() => { + MockLocales.setDateTimeLocale(undefined); + + MockLocales.setNavigatorLanguages(['ja-JP', 'ja', 'zh']); + expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('zhCN'); + + MockLocales.restoreDateTimeLocale(); + }); + + test('Returns false when there is no available match',() => { + MockLocales.setDateTimeLocale(undefined); + + MockLocales.setNavigatorLanguages(['ja-JP','ja']); + expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toBeFalsy(); + + MockLocales.restoreDateTimeLocale(); + }); + + describe('Different sources for user locale', () => { + test('language, languages and and Intl locale are `undefined`',() => { + MockLocales.setNavigatorLanguages(undefined); + MockLocales.setNavigatorLanguage(undefined); + MockLocales.setDateTimeLocale(undefined); + expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toBeFalsy(); + MockLocales.restoreDateTimeLocale(); + }); + + test('language is `en`, languages and Intl locale are `undefined`',() => { + MockLocales.setNavigatorLanguage('en'); + MockLocales.setNavigatorLanguages(undefined); + MockLocales.setDateTimeLocale(undefined); + expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en'); + MockLocales.restoreDateTimeLocale(); + }); + + test('language and Intl locale are `undefined`, languages is `en-US, en`',() => { + MockLocales.setNavigatorLanguage(undefined); + MockLocales.setNavigatorLanguages(['en-US','en']); + MockLocales.setDateTimeLocale(undefined); + expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en'); + MockLocales.restoreDateTimeLocale(); + }); + + test('navigator is `undefined` and Intl locale is `en-US`',() => { + MockLocales.setNavigator(undefined); + MockLocales.setDateTimeLocale('en-US'); + expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en'); + MockLocales.restoreDateTimeLocale(); + MockLocales.restoreNavigator(); + }); + }); +}); diff --git a/nginx/nginxconfig.io/vue.config.js b/nginx/nginxconfig.io/vue.config.js new file mode 100644 index 00000000..4bcb2f14 --- /dev/null +++ b/nginx/nginxconfig.io/vue.config.js @@ -0,0 +1,78 @@ +/* +Copyright 2022 DigitalOcean + +This code is licensed under the MIT License. +You may obtain a copy of the License at +https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +import webpack from 'webpack'; +import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'; +import DuplicatePackageCheckerPlugin from 'duplicate-package-checker-webpack-plugin'; +import WebpackRequireFrom from 'webpack-require-from'; +import { URL, fileURLToPath } from 'url'; + +export default { + publicPath: './', + outputDir: 'dist', + filenameHashing: false, // Don't hash the output, so we can embed on the DigitalOcean Community + productionSourceMap: false, + devServer: { + historyApiFallback: false, // Don't serve index.html for 404s in dev + }, + configureWebpack: { + node: false, // Disable Node.js polyfills (Buffer etc.) -- This will be default in Webpack 5 + plugins: [ + // Fix dynamic imports from CDN (inject as first entry point before any imports can happen) + { apply: compiler => { + compiler.options.entry.app.import.unshift( + fileURLToPath(new URL('src/nginxconfig/build/webpack-dynamic-import.js', import.meta.url)), + ); + } }, + new WebpackRequireFrom({ methodName: '__webpackDynamicImportURL', suppressErrors: true }), + // Pass the env in for logging + new webpack.EnvironmentPlugin({ NODE_ENV: 'development' }), + // Analyze the bundle + new BundleAnalyzerPlugin({ analyzerMode: 'static', openAnalyzer: false }), + new DuplicatePackageCheckerPlugin(), + ], + }, + chainWebpack: config => { + // Inject resolve-url-loader into the SCSS loader rules (to allow relative fonts in do-bulma to work) + for (const rule of ['vue-modules', 'vue', 'normal-modules', 'normal']) { + config.module.rule('scss') + .oneOf(rule) + .use('resolve-url-loader') + .loader('resolve-url-loader') + .before('sass-loader') + .end() + .use('sass-loader') + .loader('sass-loader') + .tap(options => ({ ...options, sourceMap: true })); + } + + // Use a custom HTML template + config.plugin('html').tap(options => { + options[0].template = fileURLToPath(new URL('build/index.html', import.meta.url)); + return options; + }); + }, +}; -- Gitee